説明
Network ACL のポート範囲が重なっていても、対象の通信が異なれば競合しません。同じ NACL の同じ方向で、CIDR とプロトコルも該当するルールが複数ある場合は、番号の小さいルールが先に適用されます。
広い許可ルールの後に具体的な拒否を置くと、意図した拒否が適用されないことがあります。一方、意図した例外や異なるネットワーク向けの許可では、ポート範囲の重複が適切な場合もあります。重複だけを理由に削除しないでください。
想定される影響
- 順序の誤解により、必要な遮断が適用されなかったり、正当な通信が途絶えたりする可能性があります。
- 重複したルールや不明確な目的は、変更の影響を把握しにくくします。
対処方法
- NACL と通信方向ごとに、CIDR、プロトコル、ポート範囲、適用順序をまとめて確認してください。
- 優先する例外には小さい番号を指定し、不要な重複だけを整理してください。
- 変更前後に必要な通信と応答経路をテストしてください。範囲を縮小すると、それまで許可されていた接続が切れることがあります。
例
MyNacl と残りのルールは省略しています。以下のルールは異なる CIDR を対象とするため、ポートの重複だけで競合する例ではありません。
変更前
yaml
Resources:
AllowRangeOne:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId: !Ref MyNacl
RuleNumber: 100
Protocol: 6
RuleAction: allow
CidrBlock: 172.16.0.0/24
PortRange:
From: 13
To: 22
AllowRangeTwo:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId: !Ref MyNacl
RuleNumber: 110
Protocol: 6
RuleAction: allow
CidrBlock: 173.20.0.0/24
PortRange:
From: 20
To: 25
ポート 20–22 が重複していますが、それぞれ異なるクライアント範囲を許可しています。
変更後
yaml
Resources:
AllowRangeOne:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId: !Ref MyNacl
RuleNumber: 100
Protocol: 6
RuleAction: allow
CidrBlock: 172.16.0.0/24
PortRange:
From: 13
To: 19
AllowRangeTwo:
Type: AWS::EC2::NetworkAclEntry
Properties:
NetworkAclId: !Ref MyNacl
RuleNumber: 110
Protocol: 6
RuleAction: allow
CidrBlock: 173.20.0.0/24
PortRange:
From: 20
To: 25
最初の CIDR について、このルールによるポート 20–22 の許可を取り除きます。その接続が不要と確認できた場合にだけ変更してください。