LoginSignup
13
8

More than 1 year has passed since last update.

GCPのIAMロールまとめ

Last updated at Posted at 2019-12-12

本記事の目的
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



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

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8