설명
보안 그룹의 아웃바운드 대상이 0.0.0.0/0 또는 ::/0이면 해당 주소 체계의 모든 목적지가 허용 대상입니다. 허용되는 프로토콜과 포트는 같은 규칙의 설정에 따르며 실제 연결에는 라우팅 등 다른 조건도 필요합니다.
불필요하게 넓은 목적지 허용은 악성 코드 통신이나 승인되지 않은 외부 연결을 제한하기 어렵게 합니다. 필요한 외부 서비스와 업데이트 경로를 파악해 허용 범위를 정하세요. 보안 그룹은 상태를 추적하므로 허용된 인바운드 요청의 응답은 별도 아웃바운드 규칙 없이 허용됩니다.
잠재적 영향
- 침해된 워크로드가 허용된 프로토콜과 포트로 외부에 연결하거나 데이터를 반출할 수 있습니다.
- 목적지를 무작정 제한하면 정상적인 외부 서비스 연결이 끊길 수 있습니다.
해결 방법
- 필요한 목적지 CIDR, 지원되는 보안 그룹 참조나 접두사 목록을 사용하고 포트도 제한하세요.
- 연결된 모든 보안 그룹과 IPv4·IPv6 규칙을 함께 검토하세요. 좁은 규칙을 추가해도 기존의 넓은 허용은 없어지지 않습니다.
- 외부 의존성을 확인하고 필요한 연결이 유지되는지 시험하세요. 새 그룹 생성 시 아웃바운드 규칙을 생략하면 기본 전체 허용이 추가될 수 있습니다.
예시
VPC를 생략했으므로 해당 리전의 기본 VPC가 필요합니다. 목적지 주소는 실제 요구사항에 맞춰 바꾸세요.
변경 전
yaml
Resources:
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Allow http to client host
SecurityGroupEgress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
모든 IPv4 목적지로 TCP 80을 허용합니다. 모든 프로토콜을 허용하는 예는 아닙니다.
변경 후
yaml
Resources:
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Allow http to client host
SecurityGroupEgress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 192.0.2.0/24
이 규칙의 목적지를 좁힙니다. 192.0.2.0/24는 문서용 주소이므로 실제 허용할 대역으로 교체해야 합니다.