설명
Compute Engine VM의 외부 IP는 인터넷에서 연결할 수 있는 경로를 제공할 수 있습니다. 실제 접근에는 방화벽 허용, 네트워크 경로와 실행 중인 서비스가 필요하며, 외부 IP 자체가 익명 접근 권한을 부여하지는 않습니다. 내부용 VM에는 외부 IP를 할당하지 않고 필요한 관리·통신 경로를 별도로 구성하세요.
잠재적 영향
- 방화벽까지 넓게 허용하면 외부 클라이언트가 관리 포트나 애플리케이션에 연결을 시도할 수 있습니다.
- 노출된 서비스의 취약점이나 유출된 인증 정보가 악용되면 데이터 조회·변경과 서비스 중단으로 이어질 수 있습니다.
해결 방법
- 외부 IP의 업무상 필요성을 확인하고 불필요한 주소를 제거하세요. 관리에는 IAP 또는 VPN 등 승인된 경로를 구성하고, 필요한 외부 통신은 Cloud NAT 등의 방식을 검토하세요.
- 방화벽의 출발지·대상·포트를 최소화하고 서비스 인증과 권한을 점검하세요.
google.cloud1.14.0의gcp_compute_instance는 기존 VM의network_interfaces를 갱신하지 않습니다. 기존 외부 IP는 지원되는 Console, gcloud 또는 API 작업으로 제거한 뒤 관리와 애플리케이션 연결을 시험하세요.
예시
새 VM의 네트워크 설정을 비교하는 발췌입니다. 실제 프로젝트, 인증, 머신 유형, 부팅 디스크와 네트워크 입력은 별도로 준비해야 합니다.
변경 전
yaml
- name: 인스턴스 생성
google.cloud.gcp_compute_instance:
name: test-object
network_interfaces:
- network: "{{ network }}"
access_configs:
- name: External NAT
nat_ip: "{{ address }}"
type: ONE_TO_ONE_NAT
zone: us-central1-a
project: "{{ project_id }}"
auth_kind: serviceaccount
state: present
access_configs가 외부 IPv4 주소를 구성합니다. 연결 가능 여부는 방화벽과 서비스 설정도 함께 확인해야 합니다.
변경 후
yaml
- name: 인스턴스 생성
google.cloud.gcp_compute_instance:
name: test-object
network_interfaces:
- network: "{{ network }}"
zone: us-central1-a
project: "{{ project_id }}"
auth_kind: serviceaccount
state: present
새 VM에 외부 IPv4 주소를 요청하지 않습니다. 기존 VM에 이 작업을 다시 실행하는 것만으로 외부 IP가 제거되지는 않습니다.