허용 범위가 과도할 수 있는 보안 그룹 인바운드 규칙

보안 그룹의 인바운드 프로토콜과 출발지 범위를 실제 통신 요구에 맞게 제한하세요.

설명

모든 프로토콜이나 불필요하게 넓은 출발지를 허용하는 보안 그룹은 의도하지 않은 트래픽을 받아들일 수 있습니다. 실제 연결 가능성은 리소스에 적용된 다른 그룹, 네트워크 경로와 호스트 제어에도 달려 있습니다.

TCP·UDP의 포트, ICMP의 유형·코드, GRE 같은 별도 IP 프로토콜을 구분하세요. all은 모든 프로토콜을 뜻하며 이때 포트 숫자를 지정해도 접근 범위를 제한하지 않습니다.

잠재적 영향

  • 연결 경로가 있으면 필요하지 않은 서비스나 프로토콜에도 외부 트래픽이 도달할 수 있습니다.
  • 과도한 접근 허용은 서비스 탐색이나 취약점 악용 기회를 늘릴 수 있습니다.

해결 방법

  • 실제 필요한 프로토콜과 승인된 클라이언트를 확인하세요. TCP·UDP에는 필요한 포트를, ICMP에는 필요한 유형·코드를 지정하고 불필요한 전체 프로토콜 허용을 제거하세요.
  • 관리·내부 서비스는 승인된 주소나 지원되는 보안 그룹 참조로 제한하세요. 공개 서비스도 필요한 범위인지 검토하고 IPv4와 IPv6를 각각 확인하세요.
  • 연결된 모든 그룹과 기존 규칙 제거 설정을 검토하세요. 적용 후 필요한 연결이 유지되고 의도하지 않은 트래픽은 차단되는지 시험하세요.

예시

실제 vpc_id와 승인된 클라이언트의 allowed_client_cidr를 제공하고 실행 환경의 AWS 인증을 사용하세요. 두 예시는 같은 그룹의 대안 구성이며 리소스 연결이나 라우팅은 별도로 필요합니다.

변경 전

yaml
- name: example ec2 group
  amazon.aws.ec2_security_group:
    name: example
    description: an example EC2 group
    vpc_id: "{{ vpc_id }}"
    region: eu-west-1
    rules:
      - proto: all
        cidr_ip: 0.0.0.0/0

모든 IPv4 출발지에서 모든 프로토콜을 허용합니다.

변경 후

yaml
- name: example ec2 group
  amazon.aws.ec2_security_group:
    name: example
    description: an example EC2 group
    vpc_id: "{{ vpc_id }}"
    region: eu-west-1
    rules:
      - proto: tcp
        from_port: 80
        to_port: 80
        cidr_ip: "{{ allowed_client_cidr }}"

승인된 클라이언트에서 TCP 80만 허용합니다. 이 포트와 출발지 범위가 실제 서비스 요구에 맞는지 확인하세요.

참조