创建 WAFv2 WebACL 时出错 WAFInvalidParameterException

lou*_*gha 4 amazon-web-services terraform amazon-waf

Error: Error creating WAFv2 WebACL: WAFInvalidParameterException: Error reason: You have used none or multiple values for a field that requires exactly one value., field: RULE_ACTION, parameter: RuleAction(block=null, allow=null, count=null)
{
  RespMetadata: {
    StatusCode: 400,
    RequestID: "24106754-b0db-4497-8e19-e72f8908dc19"
  },
  Field: "RULE_ACTION",
  Message_: "Error reason: You have used none or multiple values for a field that requires exactly one value., field: RULE_ACTION, parameter: RuleAction(block=null, allow=null, count=null)",
  Parameter: "RuleAction(block=null, allow=null, count=null)",
  Reason: "You have used none or multiple values for a field that requires exactly one value."
}

  on .terraform/modules/wafv2/main.tf line 18, in resource "aws_wafv2_web_acl" "main":
  18: resource "aws_wafv2_web_acl" "main" {
Run Code Online (Sandbox Code Playgroud)

我在尝试使用 terraform 部署 WAFV2 时遇到此错误,请提供任何帮助。

以下是 WAFv2 代码的一小部分:

resource "aws_wafv2_web_acl" "main" {
  name        = var.name
  description = "WAFv2 ACL for ${var.name}"

  scope = var.scope

  default_action {
    allow {}
  }

  visibility_config {
    cloudwatch_metrics_enabled = true
    sampled_requests_enabled   = true
    metric_name                = var.name
  }

  dynamic "rule" {
    for_each = var.managed_rules
    content {
      name     = rule.value.name
      priority = rule.value.priority

      override_action {
        dynamic "none" {
          for_each = rule.value.override_action == "none" ? [1] : []
          content {}
        }
Run Code Online (Sandbox Code Playgroud)

我试图找出为什么该错误仍然反映出我的 WAFV2 可能存在问题?

Jas*_*tti 11

发生此错误的原因可能有多种,因此在没有看到完整的 Terraform 的情况下,很难判断发生了什么。

我见过这种情况发生在我的 ACL 包含两条规则的地方: arule_group_reference_statement和 a rate_based_statement

我的问题是规则组参考需要override_action

override_action {
  none {}
}
Run Code Online (Sandbox Code Playgroud)

我没有意识到这一点或者action是必需的,但我在这里发现了这一点:https ://github.com/hashicorp/terraform-provider-aws/issues/14094#issuecomment-655625254