Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Terraform の設定例

最終更新 Markdown で表示Agent セットアップ

次の 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 フィールドを使うには、漏洩認証情報の検出を有効 にする必要があります。

必要な API トークン権限

次の トークン権限 のうち、少なくとも 1 つが必要です。

  • 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 設定例は、Terraform で WAF カスタムルールを設定する を参照してください。

役に立ちましたか?