🗂

Google Cloud Platformの権限周りの基礎的な解説と簡単な実行例

2021/05/26に公開

用語集

メンバー

メンバーの種類にはサービスアカウント、ユーザー、グループの3つがある。メンバー一覧はここで見る。

EMAIL

プロジェクト内のメンバーを一意に識別するためのID。ユーザー(=人間)の場合は自然にEmailになる。サービスアカウントの場合は、gcloud iam service-accounts list 等で一覧を取得できる。

IAMポリシー

  • Google Cloudにはプロジェクト用とサービスアカウント用のIAMポリシーがある。
  • 他にも組織のポリシーもある。

サービスアカウントのIAMポリシー

以下で確認可能

gcloud iam service-accounts get-iam-policy ${EMAIL}

プロジェクトのIAMポリシー

サービスアカウントがプロジェクト内でできることを定める。
ロールから選んだロールを、メンバーに付与することができる。

以下で確認可能

gcloud projects get-iam-policy ${PROJECT_ID} 

実行例1

プロジェクトにサービスアカウントを作成し、プロジェクトのIAMポリシーを付与する。

サービスアカウントの作成

gcloud iam service-accounts create ${NAME} --display-name="${DISPLAY_NAME}" --description="${DESCRITION}" 

作成したサービスアカウントは、プロジェクトのメンバーがアクセス可能になる。

権限の付与

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
    --member=serviceAccount:${EMAIL} --role=roles/bigquery.dataViewer

memberに付与する場合は、 --member=user:${EMAIL} とする

https://cloud.google.com/iam/docs/granting-changing-revoking-access?hl=ja&visit_id=637575184911148269-1927179972&rd=1
https://cloud.google.com/iam/docs/reference/rest/v1/Policy?hl=ja#Binding

キーの作成

gcloud iam service-accounts keys create key.json --iam-account=${EMAIL}

https://cloud.google.com/sdk/gcloud/reference/iam/service-accounts/keys/create

参考

https://stackoverflow.com/questions/47006062/how-do-i-list-the-roles-associated-with-a-gcp-service-account

連絡先

不備、誤記などあれば
Twitter: @_kentrino

Discussion