← Документация WAF / detections / leaked-credentials
Примеры конфигурации 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.