설명
cloud-platform 범위는 여러 Google Cloud API에 사용할 수 있는 OAuth 토큰 범위이며, 그 자체가 모든 리소스 권한을 부여하지는 않습니다. 실제 작업 권한은 서비스 계정의 IAM 역할로 제한됩니다.
잠재적 영향
서비스 계정에 과도한 IAM 역할이 있으면 침해된 VM이 그 권한을 악용할 수 있습니다. 범위만 삭제한다고 필요한 권한 정리가 완료되지는 않습니다.
해결 방법
전용 서비스 계정의 IAM 역할을 최소 권한으로 제한하세요. Google의 권장 구성은 cloud-platform 범위를 사용하면서 IAM으로 접근을 제어하는 방식입니다.
예시
변경 후는 권한을 별도로 제한한 전용 계정을 명시합니다. 범위를 유지하는 것은 의도적이며, VM 생성 설정만으로 IAM 역할이 정리되지는 않습니다.
변경 전
yaml
- name: create a instance
google.cloud.gcp_compute_instance:
name: test-object
zone: us-central1-a
project: "{{ gcp_project_id }}"
auth_kind: serviceaccount
service_accounts:
- email: "{{ vm_service_account_email }}"
scopes:
- https://www.googleapis.com/auth/cloud-platform
state: present
변경 후
yaml
- name: create a instance
google.cloud.gcp_compute_instance:
name: test-object
zone: us-central1-a
project: "{{ gcp_project_id }}"
auth_kind: serviceaccount
service_accounts:
- email: "{{ dedicated_service_account_email }}"
scopes:
- https://www.googleapis.com/auth/cloud-platform
state: present