설명
보안 그룹의 egress 규칙에서 IpProtocol: "-1"은 지정된 목적지에 모든 프로토콜을 허용합니다. 이때 포트 값을 함께 적어도 TCP·UDP 포트를 제한하지 못합니다. 실제 통신에는 목적지 설정과 네트워크 경로도 필요합니다.
외부 통신은 워크로드가 실제로 사용하는 프로토콜과 포트로 제한하세요. 보안 그룹이 여러 개 연결되어 있으면 각 그룹의 허용이 함께 적용됩니다.
잠재적 영향
- 침해되거나 오작동하는 프로세스가 필요 이상의 프로토콜로 통신할 수 있습니다.
- 데이터 반출이나 승인되지 않은 서비스 연결을 네트워크에서 제한하기 어려워질 수 있습니다.
해결 방법
- 필요한
tcp,udp또는 다른 적절한 프로토콜을 지정하고 해당 포트나 ICMP 타입·코드를 제한하세요. - 목적지와 다른 연결 그룹의 규칙도 확인하고 불필요한 전체 허용을 제거하세요.
- 정상적인 외부 의존성을 확인하면서 변경하세요. 보안 그룹은 상태를 추적하므로 허용된 인바운드 연결의 응답을 위해 전체 egress를 열 필요는 없습니다.
예시
프로토콜과 포트만 비교하는 발췌입니다. SourceSG 정의와 필수 목적지는 생략했습니다. 실제 규칙에는 목적지 CIDR, 접두사 목록 또는 보안 그룹 중 하나를 지정해야 합니다.
변경 전
yaml
Resources:
OutboundRule:
Type: AWS::EC2::SecurityGroupEgress
Properties:
IpProtocol: "-1"
FromPort: 0
ToPort: 65535
GroupId: !GetAtt SourceSG.GroupId
목적지를 구성하면 모든 프로토콜을 허용합니다. 표시된 포트 범위는 -1을 제한하지 못합니다.
변경 후
yaml
Resources:
OutboundRule:
Type: AWS::EC2::SecurityGroupEgress
Properties:
IpProtocol: tcp
FromPort: 443
ToPort: 443
GroupId: !GetAtt SourceSG.GroupId
TCP 443으로 제한합니다. 필요한 목적지와 애플리케이션의 TLS 검증도 별도로 구성하세요.