お題
前回の補足。
前提
前回の前提踏襲。
参考
実践
カスタムの役割に割り当てられている権限の確認
既存の役割の確認
クラウドコンソールにて「IAMと管理 -> 役割」で確認
https://console.cloud.google.com/iam-admin/roles?authuser=0&project=【プロジェクトID】
例えば「請求」に関する役割は既存で下記のようなものがある。
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」に割り当てられている権限は下記のようになっている。
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
ちなみに、一見同じように見える「プロジェクトの支払い管理者」という役割の権限を確認してみると下記のようになっている。
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