Документация Запланировать пилот

Примеры конфигурации Terraform

Следующие примеры конфигураций Terraform решают типичные сценарии управления, настройки и использования обнаружения утёкших учётных данных.

Дополнительные сведения см. в документация Terraform Cloudflare provider ↗.

Если вы используете Cloudflare API, см. Типичные вызовы API.

Включение обнаружения утекших учетных данных

Используйте cloudflare_leaked_credential_check ресурс, чтобы включить обнаружение утёкших учётных данных для зоны. Например:

resource "cloudflare_leaked_credential_check" "zone_lcc_example" {
	zone_id = var.cloudflare_zone_id
	enabled = true
}

Настройка пользовательского места обнаружения

Используйте cloudflare_leaked_credential_check_rule ресурс, чтобы добавить пользовательское место обнаружения. Например:

resource "cloudflare_leaked_credential_check_rule" "custom_location_example" {
	zone_id = var.cloudflare_zone_id
	username = "lookup_json_string(http.request.body.raw, \"user\")"
	password = "lookup_json_string(http.request.body.raw, \"secret\")"
}

В пользовательских местах обнаружения достаточно указать выражение только для имени пользователя.

Добавьте пользовательское правило, которое запрашивает прохождение проверки для запросов с утекшими учётными данными

В этом примере добавляется пользовательское правило который запрашивает прохождение проверки для запросов с утекшими учётными данными с помощью одного из поля утёкших учётных данных в выражении правила.

Чтобы использовать cf.waf.credential_check.username_and_password_leaked поле необходимо включить обнаружение утёкших учётных данных.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:

  • Zone WAF Write

Настройте cloudflare_ruleset ↗ ресурс:

resource "cloudflare_ruleset" "zone_custom_firewall_leaked_creds" {
  zone_id     = var.cloudflare_zone_id
  name        = "Phase entry point ruleset for custom rules in my zone"
  description = ""
  kind        = "zone"
  phase       = "http_request_firewall_custom"

  rules = [{
    ref         = "challenge_leaked_username_password"
    description = "Challenge requests with a leaked username and password"
    expression  = "(cf.waf.credential_check.username_and_password_leaked)"
    action      = "managed_challenge"
  }]
}
resource "cloudflare_ruleset" "zone_custom_firewall_leaked_creds" {
  zone_id     = var.cloudflare_zone_id
  name        = "Phase entry point ruleset for custom rules in my zone"
  description = ""
  kind        = "zone"
  phase       = "http_request_firewall_custom"

  rules {
    ref         = "challenge_leaked_username_password"
    description = "Challenge requests with a leaked username and password"
    expression  = "(cf.waf.credential_check.username_and_password_leaked)"
    action      = "managed_challenge"
  }
}

Дополнительные ресурсы

Дополнительные примеры настройки Terraform см. в Настройка пользовательских правил WAF с помощью Terraform.

Запросите бесплатный пилот

Запланировать пилот