首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebACL在API网关中的应用

WebACL在API网关中的应用
EN

Stack Overflow用户
提问于 2020-03-31 16:49:59
回答 1查看 2.7K关注 1票数 5

我发现一个错误有问题。我正在尝试将WafACL连接到API部署,并使用以下命令:

代码语言:javascript
复制
aws wafv2 associate-web-acl --web-acl-arn  d3b11jj1-30c6-46ae-8e58-6a90ae69eeaf --resource-arn 'arn:aws:apigateway:us-east-1::/restapis/*api-id*/stages/dev'

调用AssociateWebACL操作时发生错误(WAFInvalidParameterException):错误原因: ARN无效。有效的ARN以arn:开头,并包括用冒号或斜杠分隔的其他信息。字段: RESOURCE_ARN,参数:d3b11j1-30c6-46ae-8e58-6a90ae69eeaf。

我还尝试使用CloudFormation:

代码语言:javascript
复制
AWSTemplateFormatVersion: "2010-09-09"
Description: "DB Management Service"
Resources: 
  WebACLAssociation:
    Type: AWS::WAFv2::WebACLAssociation
    Properties:
      ResourceArn: 'arn:aws:apigateway:us-east-1::/restapis/*api-id*/stages/dev'
      WebACLArn:
        Ref: WebACL
  WebACL:
    Type: AWS::WAFv2::WebACL
    Properties:
      DefaultAction:
        Allow: {}
      Rules:
        - Name: WebACLRule
          Action:
            Block: {}
          Priority: 0
          Statement:
            RateBasedStatement:
              AggregateKeyType: IP
              Limit: 2048
          VisibilityConfig:
            CloudWatchMetricsEnabled: true
            MetricName: Requests
            SampledRequestsEnabled: false
      Scope: REGIONAL
      VisibilityConfig:
        CloudWatchMetricsEnabled: true
        MetricName: WafACL
        SampledRequestsEnabled: true

但在这里我也得到了:

错误原因: ARN无效。有效的ARN以arn:开头,并包括用冒号或斜杠分隔的其他信息。,字段: RESOURCE_ARN。

我不认为阿恩是错误的。我试着用在不同的组合上。

EN

回答 1

Stack Overflow用户

发布于 2020-04-09 17:36:37

Wafv2对于arn有一个不同的方案。Waf v1使用的是一个看起来像UUID的UUID,因为Wafv2使用了一个完全限定的ARN。

代码语言:javascript
复制
aws wafv2 associate-web-acl \
    --web-acl-arn arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
    --resource-arn arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/waf-cli-alb/1ea17125f8b25a2a \
    --region us-west-2

所以在你的情况下它可能看起来

代码语言:javascript
复制
aws wafv2 associate-web-acl --web-acl-arn  arn:aws:wafv2:<region>:<account>:regional/webacl/<webacl name>/d3b11jj1-30c6-46ae-8e58-6a90ae69eeaf --resource-arn 'arn:aws:apigateway:us-east-1::/restapis/*api-id*/stages/dev'

同样,在CFN中,Wafv2有多个返回点,所以您不能做好

代码语言:javascript
复制
WebACLArn: !Ref <webacl>

但你要做的事情是

代码语言:javascript
复制
WebACLArn: !GetAtt <webacl>.Arn

参考文献https://docs.aws.amazon.com/cli/latest/reference/wafv2/associate-web-acl.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60955745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档