説明
ネットワークACLでは、同じACLの同じ方向にルール番号を重複して使うことはできません。インバウンドとアウトバウンドでは同じ番号を使えます。
想定される影響
重複した番号でのルール作成は失敗し、ネットワークポリシーの変更をデプロイできないおそれがあります。
対処方法
各ACLのインバウンドとアウトバウンドを分けて確認し、方向ごとに一意のRuleNumberを指定してください。小さい番号から評価されるため、変更後の優先順位も確認してください。
例
最初の例ではインバウンド番号112が重複しています。後の例では、インバウンドとアウトバウンドにそれぞれ100を使っており、有効な区別です。VpcIdに実際のVPCを指定し、許可範囲は運用要件に合わせてください。
変更前
yaml
Resources:
MyNACL2:
Type: AWS::EC2::NetworkAcl
Properties:
VpcId: !Ref VpcId
InboundRule2:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId:
Ref: MyNACL2
RuleNumber: "112"
Protocol: 6
PortRange:
From: 22
To: 22
Egress: false
RuleAction: allow
CidrBlock: 172.16.0.0/24
OutboundRule2:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId:
Ref: MyNACL2
RuleNumber: "112"
Protocol: -1
Egress: false
RuleAction: allow
CidrBlock: 0.0.0.0/0
変更後
yaml
Resources:
MyNACL:
Type: AWS::EC2::NetworkAcl
Properties:
VpcId: !Ref VpcId
InboundRule:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId:
Ref: MyNACL
RuleNumber: 100
Protocol: 6
RuleAction: allow
CidrBlock: 172.16.0.0/24
PortRange:
From: 22
To: 22
OutboundRule:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId:
Ref: MyNACL
RuleNumber: 100
Protocol: -1
Egress: true
RuleAction: allow
CidrBlock: 0.0.0.0/0