모든 IPv4 또는 IPv6 주소를 지정한 보안 그룹 인바운드 규칙

전체 주소에서 들어오는 보안 그룹 접근이 필요한지 확인하고 내부 서비스와 관리 접근을 승인된 출발지로 제한하세요.

설명

인바운드 규칙의 0.0.0.0/0과 ::/0은 각각 모든 IPv4·IPv6 출발지를 허용합니다. 적용되는 포트와 프로토콜은 규칙의 다른 설정에 따라 달라집니다. 내부 전용 서비스나 관리 인터페이스라면 이러한 범위가 불필요한 접근을 허용할 수 있습니다.

실제 인터넷 연결에는 리소스의 주소와 라우팅 등 네트워크 경로도 필요합니다. 공개 웹 서비스처럼 전체 출발지가 필요한 경우에는 서비스 목적과 필요한 포트를 확인하고 애플리케이션 인증 등 나머지 제어를 유지하세요.

잠재적 영향

  • 연결 가능한 서비스가 의도하지 않은 출발지의 서비스 탐색, 로그인 시도나 취약점 악용에 노출될 수 있습니다.
  • 같은 그룹을 공유하는 여러 리소스에 불필요한 접근이 함께 허용될 수 있습니다.

해결 방법

  • 내부 서비스와 관리 접근에는 승인된 클라이언트 CIDR 또는 지원되는 보안 그룹 참조만 허용하세요. VPN이나 통제된 관리 경로를 사용할 때도 실제 출발지 주소를 확인하세요.
  • 공개가 필요한 서비스는 필요한 포트와 프로토콜로 제한하고 적용되는 모든 그룹과 네트워크 경로를 검토하세요.
  • purge_rules가 기존 규칙에 미치는 영향을 확인하고 유지할 전체 규칙을 정의하세요. 변경 후 필요한 연결과 차단할 연결을 시험하세요.

예시

vpc_id에 실제 VPC를 제공하고 실행 환경에 AWS 인증을 구성하세요. 두 예시는 같은 그룹의 대안 구성으로, 공인 IP나 인터넷 게이트웨이를 만들지는 않습니다.

변경 전

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: 0.0.0.0/0

모든 IPv4 출발지에 TCP 80 접근을 허용합니다. 공개 웹 서비스가 아니라면 이러한 범위가 필요한지 다시 검토하세요.

변경 후

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: 10.1.1.1/32

TCP 80의 출발지를 10.1.1.1/32로 제한합니다. 이 주소가 승인된 클라이언트와 실제 연결 경로에 맞는지 확인하고 다른 그룹의 규칙도 함께 검토하세요.

참조