跳转到内容
搜索文档

使用 Terraform 配置泄露凭据检查

最后更新 查看 MarkdownAgent 设置

以下 Terraform 配置示例说明了泄露凭据检查的常见用例。

更多信息请参阅 Terraform Cloudflare provider 文档

如果您使用 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 自定义规则

这篇文档对您有帮助吗?