보안 그룹의 제한 없는 아웃바운드 허용

전체 아웃바운드 허용을 검토하고 필요한 목적지, 프로토콜과 포트만 남기세요.

설명

보안 그룹에서 IpProtocol: "-1"과 0.0.0.0/0 또는 ::/0를 함께 허용하면 해당 주소 체계의 모든 목적지에 모든 프로토콜을 허용합니다. 경로와 다른 네트워크 조건도 허용하면 침해된 워크로드의 외부 통신이나 데이터 반출을 제한하기 어렵습니다.

실제 외부 의존성을 파악해 필요한 허용을 명시하세요. 보안 그룹의 좁은 규칙은 다른 규칙이나 연결 그룹의 넓은 허용을 취소하지 않습니다.

잠재적 영향

  • 악성 프로세스가 제어 서버나 승인되지 않은 외부 서비스에 연결할 수 있습니다.
  • 넓은 허용을 무작정 제거하면 업데이트, 로그 수집이나 업무 서비스의 통신이 끊길 수 있습니다.

해결 방법

  • 목적지, 프로토콜과 포트를 실제 요구사항에 맞춰 제한하고 연결된 모든 그룹의 허용을 확인하세요.
  • 새 그룹 생성 시 아웃바운드 규칙을 생략하면 기본 전체 허용이 추가될 수 있으므로 배포 후 실제 규칙을 확인하세요.
  • 필요한 프록시, 방화벽이나 VPC 엔드포인트를 활용하고 정상 연결을 시험하세요. 허용된 인바운드 연결의 응답은 보안 그룹의 상태 추적으로 허용됩니다.

예시

VPC가 생략되어 해당 리전의 기본 VPC가 필요합니다. 그룹 설명 문자열은 실제 규칙을 제한하지 않습니다.

변경 전

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable SSH access via port 22
      SecurityGroupEgress:
        - IpProtocol: "-1"
          CidrIp: 0.0.0.0/0

모든 IPv4 목적지에 모든 프로토콜을 허용합니다.

변경 후

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable SSH access via port 22
      SecurityGroupEgress:
        - IpProtocol: tcp
          FromPort: 443
          ToPort: 443
          CidrIp: 10.0.0.0/8

이 규칙은 10.0.0.0/8의 TCP 443으로 제한됩니다. 여전히 넓은 사설 대역이므로 실제 필요한 목적지로 좁히고 TLS·인증을 별도로 확인하세요.

참조