1

我正在尝试将 Web ACL 关联到 API 网关。我正在使用 WAFv2。我的代码片段如下 -

WAFAssociation:
    Type: 'AWS::WAFv2::WebACLAssociation'
    Properties:
      WebACLArn: 
      - Fn::ImportValue: 
            !Sub "${AWS::Region}-${AWS::AccountId}-APIGateway-WebACL"
      ResourceArn: !Sub
        - "arn:${AWS::Partition}:apigateway:{AWS::Region}::/restapis/{api}/stages/{stageName}"
        - api: !Ref RestApi

我为此参考了https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html并编写了它。我正在尝试在堆栈中部署此资源,但此资源部署总是失败并出现错误"Internal Failure"。我无法找到问题的根本原因。

4

1 回答 1

2

ResourceArn是不正确的。它在少数地方丢失$。请查看以下表格:

  ResourceArn: !Sub
    - "arn:${AWS::Partition}:apigateway:${AWS::Region}::/restapis/${api}/stages/${stageName}"
    - api: !Ref RestApi

另外,请查看文档中的示例

Name: !Sub
  - www.${Domain}
  - { Domain: !Ref RootDomainName }

此外,请确保所有外部组件都正确无误,例如stageNameRestApi

于 2020-05-28T22:29:28.833 回答