설명
보안 그룹에서 필요 이상으로 넓은 TCP·UDP 아웃바운드 포트 범위를 허용하면 승인되지 않은 서비스로 연결할 기회가 늘어납니다. 하나의 포트만 필요하다면 FromPort와 ToPort를 같은 값으로 설정하세요.
연속된 여러 포트가 필요한 서비스에는 범위 지정이 유효합니다. 모든 규칙을 단일 포트로 바꿀 필요는 없습니다. ICMP의 두 필드는 포트 범위가 아니라 타입과 코드이므로 별도로 해석해야 합니다.
잠재적 영향
- 침해된 워크로드가 불필요하게 허용된 포트로 통신하거나 데이터를 전송할 수 있습니다.
- 실제 요구사항을 확인하지 않고 범위를 줄이면 정상 서비스 연결이 실패할 수 있습니다.
해결 방법
- 필요한 목적지 서비스의 TCP·UDP 포트를 확인하고 단일 포트 또는 최소한의 범위를 허용하세요.
- 목적지와 다른 연결된 보안 그룹의 허용도 함께 제한하세요.
- 의존 서비스 연결을 시험하세요. 보안 그룹은 상태를 추적하므로 허용된 인바운드 연결의 응답을 위해 전체 아웃바운드 포트를 열 필요는 없습니다.
예시
SourceSG와 필수 목적지를 생략한 포트 설정 발췌입니다. 실제 사용 시 목적지 CIDR, 접두사 목록 또는 보안 그룹 중 하나를 지정해야 합니다.
변경 전
yaml
Resources:
OutboundRule:
Type: AWS::EC2::SecurityGroupEgress
Properties:
IpProtocol: tcp
FromPort: 0
ToPort: 65535
GroupId: !GetAtt SourceSG.GroupId
목적지를 구성하면 TCP 전체 포트를 허용합니다.
변경 후
yaml
Resources:
OutboundRule:
Type: AWS::EC2::SecurityGroupEgress
Properties:
IpProtocol: tcp
FromPort: 443
ToPort: 443
GroupId: !GetAtt SourceSG.GroupId
TCP 443만 허용하도록 범위를 줄입니다. 필요한 서비스가 이 포트를 사용하는지 확인하고 TLS와 인증은 애플리케이션에서도 구성하세요.