Skip to content

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

Terraform で漏洩認証情報チェックを設定する

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

次の Terraform 設定例は、漏洩認証情報チェックの一般的なユースケースです。

詳細は、Terraform Cloudflare プロバイダーのドキュメント を参照してください。

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])"
    }
  }
}

別の rule を作成するには、同じ cloudflare_ruleset リソースに新しい rules オブジェクトを追加します。

次の設定は、カスタムルールセットをデプロイします。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 設定例は、Terraform による WAF カスタムルールの設定 を参照してください。

役に立ちましたか?