보안 그룹 ingress 전체 프로토콜 허용

보안 그룹 인바운드에서 필요한 프로토콜, 포트와 접속 출발지만 허용하세요.

설명

보안 그룹의 ingress 규칙에서 IpProtocol: "-1"을 사용하면 지정한 출발지에 대해 모든 프로토콜을 허용합니다. 포트 값을 적더라도 이 전체 허용을 제한하지 못하므로, 필요하지 않은 서비스까지 접근 대상이 될 수 있습니다.

실제 접근 가능 여부는 출발지, 라우팅, 수신 서비스와 다른 네트워크 통제에 달려 있습니다. 내부의 신뢰된 리소스 간 통신처럼 넓은 허용이 필요한 경우에도 그 범위와 목적을 확인하세요.

잠재적 영향

  • 허용된 출발지에서 의도하지 않은 서비스에 접속하거나 취약점을 공격할 수 있습니다.
  • 허용 출발지의 리소스가 침해되면 다른 서비스로 공격이 확산될 수 있습니다.

해결 방법

  • 실제 필요한 프로토콜과 TCP·UDP 포트 또는 ICMP 타입·코드만 허용하세요.
  • 출발지 CIDR이나 보안 그룹을 필요한 클라이언트로 제한하세요.
  • 연결된 그룹의 허용은 함께 적용되므로 넓은 기존 규칙도 정리하고, 정상 연결과 서비스 인증·권한을 확인하세요.

예시

프로토콜·포트 설정의 발췌입니다. TargetSG와 필수 출발지를 생략했습니다. 실제 규칙에는 CIDR, 접두사 목록 또는 출발지 보안 그룹 중 하나를 지정해야 합니다.

변경 전

yaml
Resources:
  InboundRule:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      IpProtocol: "-1"
      FromPort: 0
      ToPort: 65535
      GroupId: !GetAtt TargetSG.GroupId

출발지를 구성하면 모든 프로토콜을 허용합니다. 포트 값은 -1의 허용 범위를 줄이지 못합니다.

변경 후

yaml
Resources:
  InboundRule:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      IpProtocol: tcp
      FromPort: 443
      ToPort: 443
      GroupId: !GetAtt TargetSG.GroupId

TCP 443으로 제한합니다. 필요한 클라이언트와 실제 서비스의 TLS·인증 설정도 함께 확인하세요.

참조