전체 주소에 포트 범위를 지정한 보안 그룹 규칙

전체 출발지에 허용한 포트 범위가 필요한지 확인하고 서비스별로 필요한 접근만 유지하세요.

설명

전체 주소에서 여러 서비스 포트로 들어오는 접근을 허용하면 필요하지 않은 서비스에도 연결을 시도할 수 있습니다. 실제 위험은 해당 리소스에 연결된 그룹, 실행 중인 서비스, 라우팅과 인증에 따라 달라집니다. 업무상 필요한 포트 범위가 있을 수 있으므로 서비스 목적과 승인된 클라이언트를 기준으로 검토하세요.

TCP·UDP의 포트와 ICMP의 유형·코드는 의미가 다릅니다. 모든 프로토콜을 허용하는 규칙에서는 포트 설정으로 접근이 제한되지 않을 수 있습니다.

잠재적 영향

  • 외부 연결 경로가 있으면 불필요하게 열린 서비스가 탐색이나 취약점 악용 시도에 노출될 수 있습니다.
  • 다른 그룹이 같은 접근을 허용하면 한 규칙만 좁혀도 원치 않는 연결이 계속 허용될 수 있습니다.

해결 방법

  • 필요한 서비스, 프로토콜, 포트와 클라이언트를 확인하세요. 공개 서비스는 필요한 포트만 허용하고 관리·내부 서비스는 승인된 주소나 보안 그룹으로 제한하세요.
  • 연결된 모든 그룹의 허용 규칙을 함께 검토하고 유지할 전체 규칙을 정의하세요. 같은 접근을 여러 규칙으로 나누는 것만으로 범위가 줄지는 않습니다.
  • 기존 규칙 제거 설정을 확인하고 변경 후 실제 클라이언트 경로에서 필요한 연결과 차단할 연결을 시험하세요.

예시

실제 vpc_id와 승인된 관리 클라이언트의 admin_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: tcp
        from_port: 80
        to_port: 82
        cidr_ip: 0.0.0.0/0

모든 IPv4 출발지에 TCP 80–82를 허용합니다. 서비스가 사용하지 않는 포트도 포함되어 있는지 확인하세요.

변경 후

yaml
- name: example ec2 group v2
  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: 0.0.0.0/0
      - proto: tcp
        from_port: 22
        to_port: 22
        cidr_ip: "{{ admin_cidr }}"

공개 범위를 TCP 80으로 줄이고 SSH는 승인된 관리 주소로 제한합니다. TCP 80의 공개가 실제 서비스에 필요한지와 admin_cidr의 범위를 따로 확인하세요.

참조