能否创建AWS SCP禁止除80、443端口外开放0.0.0.0/0的NACL规则?
解答
可以通过AWS SCP实现该需求,你的原有策略未生效存在以下问题:
- 语法错误:使用中文双引号,
Version字段缺少右侧闭合双引号,JSON结构非法无法被AWS解析。 - 逻辑冲突:同一条件块内重复声明
ec2:Attribute/CidrBlock键,会导致前一个IPv4的0.0.0.0/0匹配规则被覆盖,仅IPv6规则会被判断。 - 条件键错误:NACL创建操作无
ec2:Attribute/PortRange条件键,需使用官方定义的ec2:DestinationPortFrom、ec2:DestinationPortTo匹配端口范围,同时需补充入站方向、允许规则的判断条件,避免误拦截出站规则或拒绝类型规则。
可用SCP示例
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ec2:CreateNetworkAclEntry", "Resource": "*", "Condition": { "StringEquals": { "ec2:NetworkAclEntryDirection": "ingress", "ec2:NetworkAclEntryRuleAction": "allow" }, "StringEqualsIfExists": { "ec2:CidrBlock": "0.0.0.0/0", "ec2:Ipv6CidrBlock": "::/0" }, "Or": [ { "NumericNotEquals": { "ec2:DestinationPortFrom": 80, "ec2:DestinationPortTo": 80 } }, { "NumericNotEquals": { "ec2:DestinationPortFrom": 443, "ec2:DestinationPortTo": 443 } } ] } } ] }
该策略仅拦截符合以下所有特征的NACL创建操作:
- 入站方向规则
- 规则动作为允许
- 源地址为公网默认路由
0.0.0.0/0或::/0 - 端口范围不是仅开放80端口或仅开放443端口
内容的提问来源于stack exchange,提问作者mygitrepo
相关产品推荐
相关产品推荐

