説明
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