GCPのサービス利用権限はIAMロールで決められる。
個別アカウントにロールを付与して、アクセス権限を管理する。
IAMロールは基本3つタイプがあります。
- Primitive roles(基本の役割)
- Predefined roles(事前定義された役割)
- Custom roles(カスタムの役割)
各種のロールと付与方法は下記でまとめます。
目次
Toggle1. 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
各種サービスごとの事前定義されたロールはここでご参考
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
最後までご覧いただき、ありがとうございます。