← Документация WAF / managed-rules / check-for-exposed-credentials
Настройка проверок скомпрометированных учётных данных через Terraform
Следующий пример конфигурации Terraform демонстрирует типичный сценарий проверки скомпрометированных учётных данных.
Дополнительную информацию см. в Документация провайдера Cloudflare для Terraform ↗.
Если вы используете Cloudflare API, см. Настройка проверок скомпрометированных учётных данных через API.
Добавление пользовательского правила для проверки скомпрометированных учётных данных
Следующая конфигурация создаёт пользовательский набор правил с одним правилом, которое проверяет скомпрометированные учётные данные.
Проверки скомпрометированных учётных данных можно добавлять только к правилам пользовательского набора (то есть набора правил с kind = "custom").
resource "cloudflare_ruleset" "account_firewall_custom_ruleset_exposed_creds" {
account_id = "<ACCOUNT_ID>"
name = "Custom ruleset checking for exposed credentials"
description = ""
kind = "custom"
phase = "http_request_firewall_custom"
rules {
ref = "check_for_exposed_creds_add_header"
description = "Add header when there is a rule match and exposed credentials are detected"
expression = "http.request.method == \"POST\" && http.request.uri == \"/login.php\""
action = "rewrite"
action_parameters {
headers {
name = "Exposed-Credential-Check"
operation = "set"
value = "1"
}
}
exposed_credential_check {
username_expression = "url_decode(http.request.body.form[\"username\"][0])"
password_expression = "url_decode(http.request.body.form[\"password\"][0])"
}
}
}Чтобы создать ещё одно правило, добавьте новый rules объект в тот же cloudflare_ruleset (ресурс).
Следующая конфигурация развёртывает пользовательский набор правил. Она определяет зависимость от account_firewall_custom_ruleset_exposed_creds (ресурс) и получает ID созданного пользовательского набора правил:
resource "cloudflare_ruleset" "account_firewall_custom_entrypoint" {
account_id = "<ACCOUNT_ID>"
name = "Account-level entry point ruleset for the http_request_firewall_custom phase deploying a custom ruleset checking for exposed credentials"
description = ""
kind = "root"
phase = "http_request_firewall_custom"
depends_on = [cloudflare_ruleset.account_firewall_custom_ruleset_exposed_creds]
rules {
ref = "deploy_custom_ruleset_example_com"
description = "Deploy custom ruleset for example.com"
expression = "(cf.zone.name eq \"example.com\")"
action = "execute"
action_parameters {
id = cloudflare_ruleset.account_firewall_custom_ruleset_exposed_creds.id
}
}
}Дополнительные ресурсы
Дополнительные примеры конфигурации Terraform см. в Настройка пользовательских правил WAF с помощью Terraform.