설명
네트워크 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