【问题标题】:aws cloudformation WAF geo location conditionaws cloudformation WAF 地理位置条件
【发布时间】:2018-04-23 06:12:53
【问题描述】:

尝试创建云形成模板以配置具有地理位置条件的 WAF。还没有找到合适的模板。任何指针将不胜感激。

http://docs.aws.amazon.com/waf/latest/developerguide/web-acl-geo-conditions.html

【问题讨论】:

  • 嗨,欢迎来到堆栈溢出。请参阅How to Ask 链接以获取有关如何提出问题并相应更新您的问题的更多详细信息。
  • 在浏览完您提到的链接后,我不确定自己遗漏了什么。我应该添加其他详细信息吗?

标签: amazon-web-services amazon-cloudformation web-application-firewall


【解决方案1】:

没有相关文档,但可以在 serverless/cloudformation 中创建 Geo Match。

在无服务器中使用了以下内容:

Resources:
  Geos:
    Type: "AWS::WAFRegional::GeoMatchSet"
    Properties:
      Name: geo
      GeoMatchConstraints:
      - Type: "Country"
        Value: "IE"

在cloudformation中翻译成以下内容:

"Geos": {
  "Type": "AWS::WAFRegional::GeoMatchSet",
  "Properties": {
    "Name": "geo",
    "GeoMatchConstraints": [
      {
        "Type": "Country",
        "Value": "IE"
      }
    ]
  }
}

然后可以在创建规则时引用:

(无服务器):

Resources:
  MyRule:
    Type: "AWS::WAFRegional::Rule"
    Properties:
      Name: waf
      Predicates:
      - DataId:
          Ref: "Geos"
        Negated: false
        Type: "GeoMatch"

(云形成):

"MyRule": {
  "Type": "AWS::WAFRegional::Rule",
  "Properties": {
    "Name": "waf",
    "Predicates": [
      {
        "DataId": {
          "Ref": "Geos"
        },
        "Negated": false,
        "Type": "GeoMatch"
      }
    ]
  }
}

【讨论】:

    【解决方案2】:

    恐怕您的问题太含糊,无法寻求有用的答复。 CloudFormation User Guide (pdf) 定义了 许多 不同的 WAF / CloudFront / R53 资源,这些资源将执行各种形式的地理匹配/地理阻止功能。您提供的链接似乎是 Web 访问控制列表 (Web ACL) 的子集 - 请参阅第 2540 页的 AWS::WAF::WebACL。

    我建议您看一下,如果您仍然卡住,请实际描述您要实现的目标。

    请注意,您使用的术语:“地理位置条件”与我知道的 AWS 功能没有直接关系。

    最后,如果您指的是https://aws.amazon.com/about-aws/whats-new/2017/10/aws-waf-now-supports-geographic-match/,那么最新的 Cloudformation 用户指南似乎还没有更新以反映这一点。

    【讨论】:

    【解决方案3】:

    不幸的是,实际答案(截至撰写本文时,2018 年 7 月)是您无法直接在 CloudFormation 中创建地理匹配集。您可以通过 CLI 或 SDK 创建它们,然后在 WAFRule 的 Predicates 属性的 DataId 字段中引用它们。


    通过 CLI 创建具有一个约束的 GeoMatchSet:

    aws waf-regional get-change-token
    aws waf-regional create-geo-match-set --name my-geo-set --change-token <token>
    aws waf-regional get-change-token
    aws waf-regional update-geo-match-set --change-token <new_token> --geo-match-set-id <id> --updates '[ { "Action": "INSERT", "GeoMatchConstraint": { "Type": "Country", "Value": "US" } } ]'
    

    现在在 CloudFormation 中引用 GeoMatchSet id:

        "WebAclGeoRule": {
          "Type": "AWS::WAFRegional::Rule",
          "Properties": {
            ...
            "Predicates": [
              {
                "DataId": "00000000-1111-2222-3333-123412341234" // id from create-geo-match-set
                "Negated": false,
                "Type": "GeoMatch"
              }
            ]
          }
        }
    

    【讨论】:

    • 可惜他们不支持这个!谢谢你的例子
    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2016-12-29
    • 2023-03-29
    • 2021-05-01
    • 2022-06-28
    相关资源
    最近更新 更多