LoginSignup
1
2

More than 5 years have passed since last update.

Cloud IAMあれこれ試行(その3:「カスタムの役割」)

Posted at

お題

前回の補足。

前提

前回の前提踏襲。

参考

実践

カスタムの役割に割り当てられている権限の確認

既存の役割の確認

クラウドコンソールにて「IAMと管理 -> 役割」で確認
https://console.cloud.google.com/iam-admin/roles?authuser=0&project=【プロジェクトID】
 
例えば「請求」に関する役割は既存で下記のようなものがある。
01.png
gcloudコマンドで確認してみると。


$ gcloud iam roles list | grep "name:" | grep billing
name: roles/billing.admin
name: roles/billing.creator
name: roles/billing.projectManager
name: roles/billing.user
name: roles/billing.viewer

既存の役割に割り当てられている権限の確認

例えば上記より「Billing Account Administrator」に割り当てられている権限は下記のようになっている。
02.png
gcloudコマンドで確認してみると。


$ gcloud iam roles describe roles/billing.admin
description: Authorized to see and manage all aspects of billing accounts.
etag: AA==
includedPermissions:
- billing.accounts.close
- billing.accounts.get
- billing.accounts.getIamPolicy
- billing.accounts.getPaymentInfo
- billing.accounts.getSpendingInformation
- billing.accounts.getUsageExportSpec
- billing.accounts.list
- billing.accounts.move
- billing.accounts.redeemPromotion
- billing.accounts.removeFromOrganization
- billing.accounts.reopen
- billing.accounts.setIamPolicy
- billing.accounts.update
- billing.accounts.updatePaymentInfo
- billing.accounts.updateUsageExportSpec
- billing.budgets.create
- billing.budgets.delete
- billing.budgets.get
- billing.budgets.list
- billing.budgets.update
- billing.credits.list
- billing.resourceAssociations.create
- billing.resourceAssociations.delete
- billing.resourceAssociations.list
- billing.subscriptions.create
- billing.subscriptions.get
- billing.subscriptions.list
- billing.subscriptions.update
- cloudnotifications.activities.list
- logging.logEntries.list
- logging.logServiceIndexes.list
- logging.logServices.list
- logging.logs.list
- logging.privateLogEntries.list
- resourcemanager.projects.createBillingAssignment
- resourcemanager.projects.deleteBillingAssignment
name: roles/billing.admin
stage: GA
title: Billing Account Administrator

ちなみに、一見同じように見える「プロジェクトの支払い管理者」という役割の権限を確認してみると下記のようになっている。
03.png

gcloudコマンドでは、下記。


$ gcloud iam roles describe roles/billing.projectManager
description: Can assign a project's billing account or disable its billing.
etag: AA==
includedPermissions:
- resourcemanager.projects.createBillingAssignment
- resourcemanager.projects.deleteBillingAssignment
name: roles/billing.projectManager
stage: GA
title: Project Billing Manager

「管理者」と付くのでけっこうな権限がありそうではあるものの単純に権限の割当数という観点では2個のみ。
「Administrator」は36個。タイトルのイメージで判断せず、ちゃんと割当権限を確認することが大事。

たいていは「管理者」>「編集者」>「閲覧者」という感じではあると思う。
例えば、CloudSQLでは下記。


$ gcloud iam roles list | grep "name:" | grep cloudsql
name: roles/cloudsql.admin
name: roles/cloudsql.client
name: roles/cloudsql.editor
name: roles/cloudsql.viewer

■ Cloud SQL 管理者

$ gcloud iam roles describe roles/cloudsql.admin | grep "\- " | wc -l
40

■ Cloud SQL 編集者

koge@koge-W65-67SF:~$ gcloud iam roles describe roles/cloudsql.editor | grep "\- " | wc -l
22

■ Cloud SQL 閲覧者

koge@koge-W65-67SF:~$ gcloud iam roles describe roles/cloudsql.viewer | grep "\- " | wc -l
14

■ Cloud SQL クライアント

koge@koge-W65-67SF:~$ gcloud iam roles describe roles/cloudsql.client | grep "\- " | wc -l
2

既存の役割からカスタムの役割を作成

事例として妥当な感はないけど、Pub/Subの全権限を網羅するカスタム役割作成を試みる。
04.png
05.png
06.png

出来上がり。(まあ、名前は本当はもう少しちゃんと考えるとして。)
07.png
08.png

1
2
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
1
2