ネットワークACLのルール番号が重複

同じACLの同じ方向ではルール番号を一意にしてください。

説明

ネットワーク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

参考資料