正在尝试创建云形成模板以使用地理位置条件配置 WAF。尚找不到合适的模板。任何指示将不胜感激。
http://docs.aws.amazon.com/waf/latest/developerguide/web-acl-geo-conditions.html
不幸的是,实际答案(截至撰写本文时,2018 年 7 月(是您无法直接在 CloudFormation 中创建地理匹配集。您可以通过 CLI 或 SDK 创建它们,然后在 WAFRule Predicates
属性的DataId
字段中引用它们。
通过 CLI 创建一个具有一个约束的地理匹配集:
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"
}
]
}
}
没有这方面的文档,但可以在无服务器/云形成中创建地理匹配。
在无服务器中使用了以下内容:
Resources:
Geos:
Type: "AWS::WAFRegional::GeoMatchSet"
Properties:
Name: geo
GeoMatchConstraints:
- Type: "Country"
Value: "IE"
在云形成中翻译为以下内容:
"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"
}
]
}
}
怕你的问题太模糊了,无法寻求有用的回应。CloudFormation 用户指南 (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 用户指南似乎尚未更新以反映这一点。