AWS WAF Создайте ACL и правило, чтобы разрешить доступ только одной стране для доступа к шлюзу API - PullRequest
2 голосов
/ 10 января 2020

Я хочу создать шаблон формирования облака в формате json, который создает ACL и правило в WAF, чтобы разрешить доступ к шлюзу API только пользователям из США. Пока у меня есть следующий код, но он выдает ошибку («Обнаружено неподдерживаемое свойство Action») в AWS:

        "Type":"AWS::WAF::Rule",
        "Properties":{
            "Name":"APIGeoBlockRule",
            "Priority":0,
            "Action":{
                "Block":{}
            },
            "VisibilityConfig":{
                "SampledRequestsEnabled":true,
                "CloudWatchMetricsEnabled":true,
                "MetricName": "APIGeoBlockRule"
            },
            "Statement":{
                "NotStatement":{
                    "Statement":{
                        "GeoMatchStatement":{
                            "CountryCodes":[
                                "US"
                            ]
                        }
                    }
                }
            }
        }
    } 

Ответы [ 2 ]

1 голос
/ 10 января 2020

После просмотра документации вы пытаетесь создать правило WAFv2 в классе c WAF-ресурсе. Ваш тип ресурса AWS::WAF::Rule - это правило classi c WAF, а структура WAFv2.

Я сам еще не использовал WAFv2, но, глядя на документацию , это должно примерно то, что вы хотите в формате yaml:

Description: Create WebACL example
Resources:
  ExampleWebACL:
    Type: AWS::WAFv2::WebACL
    Properties:
      Name: ExampleWebACL
      Scope: REGIONAL
      Description: This is an example WebACL
      DefaultAction:
        Allow: {}
      Rules:
        - Name: GeoRestrictExample
          Priority: 0
          Action:
            Block: {}
          Statement:
            NotStatement:
              Statement:
                GeoMatchStatement:
                    CountryCodes:
                      - US

Начиная с 13.012020, вы не можете связать ресурс, такой как этап шлюза API, с ACL WAFv2, используя облачную информацию. Вы можете сделать это, используя консоль, sdk, пользовательский ресурс и cli .

0 голосов
/ 17 января 2020

Проблема будет решена, когда Cloudformation реализует WAFv2 (который они рекомендуют использовать сейчас). В конечном итоге нам требуется Cloudformation для поддержки создания и связи (т. Е. С API-шлюзом или балансировщиком нагрузки), чтобы не использовать другие обходные пути, поскольку они не очень переносимы.

Билет GitHub: https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/issues/344

...