Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@bendevs

GCPのIAMロールまとめ

本記事の目的
GCPのIAMロールを理解しづらいだったため、自分の理解を整理する

GCPのサービス利用権限はIAMロールで決められる。
個別アカウントにロールを付与して、アクセス権限を管理する。

IAMロールは基本3つタイプがあります。

  • Primitive roles(基本の役割)
  • Predefined roles(事前定義された役割)
  • Custom roles(カスタムの役割)

各種のロールと付与方法は下記でまとめます。

1.  Primitive roles(基本の役割)

基本の役割を使ってアクセス権限管理は一番簡単です。
広い範囲の権限を付与することとなるので、広い範囲のユーザーに付与するのはあまりオススメない。

アカウントにロール付与方法

# 下記のコマンドを実施するため、オーナー権限必要
# 例:editor権限付与
gcloud projects add-iam-policy-binding [PROJECT_ID] \
  --member user:[USER_EMAIL] \
  --role roles/editor

# またはowner権限付与
gcloud projects add-iam-policy-binding [PROJECT_ID] \
  --member user:[USER_EMAIL] \
  --role roles/owner

2.  Predefined roles(事前定義された役割)

GCP中に各種サービスごとの事前定義されたロールを個別付与する方法。

必要なサービスを個別に付与する。
例えば、クラウドストレージを利用する場合、「storage.admin」ロールを付与します。

# storage.admin」ロール権限付与。下記のコマンドを実施するため、オーナー権限必要
gcloud projects add-iam-policy-binding [PROJECT_ID] \
  --member user:[USER_EMAIL] \
  --role roles/storage.admin

各種サービスごとの事前定義されたロールはここでご参考
https://cloud.google.com/iam/docs/understanding-roles

3.  Custom roles(カスタムの役割)

事前定義された役割の付与方法より、もっと細かい権限設定できます。
カスタムの役割を定義して、必要な権限のみを付与する。
権限追加は必要の時、ロール定義ファイルに追加して、カスタムの役割を更新する必要です。

必要な権限を "custom_role_define.yaml"のファイルをまとめます。

title: "My Custom Role"
description: "For Test User"
stage: "ALPHA"
includedPermissions:
- storage.buckets.create
- storage.buckets.update
- storage.buckets.delete
- storage.buckets.list
- storage.buckets.get
- storage.objects.list
- storage.objects.get

この定義はストレージのバケツ作成とobjects参照権限があるロールの定義です。
カスタムの役割を作成実施

# カスタムの役割を作成実施。下記のコマンドを実施するため、オーナー権限必要
gcloud iam roles create my_custom_role --project [PROJECT_ID] \
--file custom_role_define.yaml

# 作成できたカスタムの役割を確認
gcloud iam roles describe my_custom_role --project [PROJECT_ID]

権限を修正・追加する場合、カスタムの役割の更新を実行する必要です。

# カスタムの役割を更新実施。下記のコマンドを実施するため、オーナー権限必要
gcloud iam roles update my_custom_role --project [PROJECT_ID] \
--file custom_role_define.yaml

それから、ユーザーアカウントにロール付与

gcloud projects add-iam-policy-binding [PROJECT_ID] \
  --member user:[USER_EMAIL] \
  --role projects/[PROJECT_ID]/roles/my_custom_role



ご覧して頂き、どうも有難う御座います!
DevSamurai Ben

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What is going on with this article?