次の Terraform 設定例は、漏洩認証情報の検出の管理、設定、利用の一般的なシナリオを扱います。
詳細は Terraform Cloudflare プロバイダーのドキュメント ↗ を参照してください。
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 フィールドを使うには、漏洩認証情報の検出を有効 にする必要があります。
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 設定例は、Terraform で WAF カスタムルールを設定する を参照してください。