설명
AWS::EC2::SecurityGroup에서 VpcId를 생략하면 해당 리전의 기본 VPC를 사용합니다. 기본 VPC도 없으면 생성에 실패하므로, 생략이 VPC 없는 보안 그룹을 뜻하지는 않습니다.
잠재적 영향
환경마다 기본 VPC가 다르거나 없으면 예상하지 않은 네트워크에 생성되거나 배포가 실패할 수 있습니다.
해결 방법
의도한 VPC를 VpcId로 명시하고 연결할 리소스와 호환되는지 확인하세요. 기존 그룹의 VPC 변경은 리소스를 교체하므로 연결에 미치는 영향도 검토하세요.
예시
기본 VPC에 의존하는 구성에 명시적인 VPC 참조를 추가합니다. AdminCidr에는 승인된 관리 주소 범위를, myVPC에는 실제 VPC 참조를 지정하세요.
변경 전
yaml
Resources:
InstanceSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupName: My Group Name
# 22번 포트로 SSH 접근 허용
GroupDescription: Enable SSH access via port 22
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !Ref AdminCidr
변경 후
yaml
Resources:
InstanceSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupName: My Group Name
# 22번 포트로 SSH 접근 허용
GroupDescription: Enable SSH access via port 22
VpcId:
Ref: myVPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !Ref AdminCidr