Cloud Billing のアクセス制御と権限

このトピックでは、Cloud 請求先アカウントのロールとアクセス権限について説明します。

Cloud 請求先アカウントは Google Cloud で設定され、特定の Google Cloud リソースと Google Maps Platform API のまとまりに対する支払いを誰が行うかを定義するために使用されます。Cloud 請求先アカウントは、Google お支払いプロファイルに関連付けられています。Google お支払いプロファイルには、費用に対するお支払い方法が記録されています。

Cloud Billing と Google Payments のアクセス権限は、付与するアクセス権の種類に応じて 2 つの異なるシステムで構成されます。

  • Cloud Billing では、リソースに対して Identity and Access Management(IAM)ポリシーを設定することにより、特定のリソースに対する管理権限と費用の表示権限を持つユーザーを制御できます。
  • Google お支払いセンターでは、お客様が管理するすべての Google Payments ビジネス プロフィールにユーザーを追加し、必要な作業内容に応じて、さまざまなレベルのアクセス権をユーザーに付与できます。請求とお支払いに関するメールを受信するユーザーのメール設定も構成できます。
Cloud Billing の権限 Google でのお支払い設定と権限
Cloud 請求先アカウントへのアクセス権限は、IAM ロールを使用して管理されます。ユーザーが次の操作を行えるように、請求先アカウントの権限を構成できます。
  • Cloud 請求先アカウントを開設、閉鎖、変更する。
  • レポートと費用データを表示する。
  • ドキュメント(請求書や明細書など)を表示する。
  • 確約利用割引(CUD)を分析し、CUD を購入する。
  • 課金データのエクスポートを有効にして管理する。
  • 予算とアラートを構成する。
  • プロジェクトごとに課金を管理する。
  • 請求に関するユーザー権限を管理する。
  • お支払いサポートに問い合わせる。
Google お支払いプロファイルへのアクセス権限は、Google お支払い設定で管理されます。Google でのお支払いの権限では、ユーザーに次の操作を行うよう構成できます。
  • お支払い方法を追加、編集、削除する。
  • お支払いプロファイルの情報(送付先住所など)を更新する。
  • 連絡先情報、メール設定、ユーザー権限など、お支払いサービスのユーザーを管理する。

Google Cloud コンソールの [お支払い] ページでお支払い関連のタスクを管理するには、ユーザーには Cloud 請求先アカウントに対する請求先アカウント閲覧者ロールも必要です。

Cloud Billing へのアクセス

Cloud Billing へのアクセスを許可または制限するには、IAM ポリシーを組織レベル、Cloud 請求先アカウント レベル、プロジェクト レベルで設定します。Google Cloud リソースは、その親ノードの IAM ポリシーを継承します。つまり、組織レベルでポリシーを設定すると、組織内のすべての Cloud 請求先アカウント、プロジェクト、リソースにポリシーが適用されます。

Cloud 請求先アカウント レベルまたはプロジェクト レベルでアクセス権を設定することにより、ユーザーまたはロールごとに異なるレベルで表示権限を制御できます。

ユーザーが Cloud 請求先アカウントのすべてのプロジェクトの費用を表示できるようにするには、Cloud 請求先アカウントの費用の表示権限(billing.accounts.getSpendingInformation)をユーザーに付与します。ユーザーが特定のプロジェクトの費用を表示できるようにするには、個々のプロジェクトの表示権限(billing.resourceCosts.get)をユーザーに付与します。

IAM の Cloud Billing ロールの概要

ユーザーには権限を直接付与するのではなく、ロールを割り当てます。ロールには、1 つ以上の権限が組み込まれています。

1 人のユーザーまたは 1 つのリソースに、1 つまたは複数のロールを付与できます。

以下の Cloud Billing の IAM 事前定義ロールは、アクセス制御を使用して職務を分離できるように設計されています。

ロール 目的 レベル ユースケース
請求先アカウント作成者
roles/billing.creator
新しいセルフサービス請求先アカウントを作成します。 組織 このロールは、初回の請求設定または追加の請求先アカウントの作成に使用します。
会社の ID を使用して Google Cloud にクレジット カードを登録する場合、このロールが必要です。
ヒント: このロールを持つユーザーの数を最小限に抑えると、追跡されないクラウド利用が組織内で拡散しないようにするうえで助けになります。
請求先アカウント管理者
roles/billing.admin
請求先アカウントを管理します(ただし、作成しません)。 組織または請求先アカウント。 このロールは、請求先アカウントのオーナーロールです。支払い方法の管理、請求のエクスポートの構成、費用情報の表示、プロジェクトのリンクとリンク解除、請求先アカウントの他のユーザーロールの管理に使用します。デフォルトでは、Cloud 請求先アカウントの作成者は、Cloud 請求先アカウントの Billing Account Administrator に設定されます。
請求先アカウントの費用管理者
roles/billing.costsManager
予算を管理し、請求先アカウントの費用情報を表示、エクスポートします。 組織または請求先アカウント。 予算の作成、編集、削除を行い、請求先アカウントの費用情報とトランザクションを表示し、BigQuery への請求費用データのエクスポートを管理します。[料金] ページで料金データをエクスポートする権限と個別の料金設定を表示する権限は付与されません。また、プロジェクトのリンクとリンク解除、または請求先アカウントのプロパティの管理もできません。
請求先アカウント閲覧者
roles/billing.viewer
請求先アカウントの費用情報とトランザクションを表示します。 組織または請求先アカウント。 請求先アカウント閲覧者のアクセス権は、通常は財務チームに付与します。これにより、費用に関する情報へのアクセス権は付与されますが、プロジェクトのリンクとリンク解除の権限や請求先アカウントのプロパティの管理権限は付与されません。
請求先アカウント ユーザー
roles/billing.user
プロジェクトを請求先アカウントにリンクします。 組織または請求先アカウント。 このロールの権限は制限が非常に厳しいため、幅広く付与できます。プロジェクト作成者と組み合わせて付与する場合、この 2 つのロールが付与されたユーザーは、新しいプロジェクトを作成して、請求先アカウント ユーザーのロールが付与されている請求先アカウントにそのプロジェクトをリンクできます。また、プロジェクト支払い管理者のロールと組み合わせて付与する場合、この 2 つのロールが付与されたユーザーは、請求先アカウント ユーザーのロールが付与されている請求先アカウントでプロジェクトをリンクまたはリンク解除できます。
プロジェクト支払い管理者
roles/billing.projectManager
プロジェクトを請求先アカウントにリンクまたはリンク解除します。 組織、フォルダ、プロジェクト。 請求先アカウント ユーザーのロールと組み合わせて付与する場合、プロジェクト請求管理者のロールにより、ユーザーはプロジェクトを請求先アカウントにリンクできますが、リソースに対する権限は付与されません。プロジェクト オーナーは、このロールを使用して、任意のユーザーに、リソースへのアクセス権を付与することなく、プロジェクトの請求を管理する権限を与えることができます。

次の表に、IAM Billing 事前定義ロールの詳細(各ロールにバンドルされた権限を含む)を示します。

Role Permissions

(roles/billing.admin)

Provides access to see and manage all aspects of billing accounts.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.close

billing.accounts.get

billing.accounts.getCarbonInformation

billing.accounts.getIamPolicy

billing.accounts.getPaymentInfo

billing.accounts.getPricing

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.billingAccountPrice.get

billing.billingAccountPrices.list

billing.billingAccountServices.*

  • billing.billingAccountServices.get
  • billing.billingAccountServices.list

billing.billingAccountSkuGroupSkus.*

  • billing.billingAccountSkuGroupSkus.get
  • billing.billingAccountSkuGroupSkus.list

billing.billingAccountSkuGroups.*

  • billing.billingAccountSkuGroups.get
  • billing.billingAccountSkuGroups.list

billing.billingAccountSkus.*

  • billing.billingAccountSkus.get
  • billing.billingAccountSkus.list

billing.budgets.*

  • billing.budgets.create
  • billing.budgets.delete
  • billing.budgets.get
  • billing.budgets.list
  • billing.budgets.update

billing.credits.list

billing.finOpsBenchmarkInformation.get

billing.finOpsHealthInformation.get

billing.resourceAssociations.*

  • billing.resourceAssociations.create
  • billing.resourceAssociations.delete
  • billing.resourceAssociations.list

billing.subscriptions.*

  • billing.subscriptions.create
  • billing.subscriptions.get
  • billing.subscriptions.list
  • billing.subscriptions.update

cloudasset.assets.searchAllResources

cloudnotifications.activities.list

cloudsupport.properties.get

cloudsupport.techCases.*

  • cloudsupport.techCases.create
  • cloudsupport.techCases.escalate
  • cloudsupport.techCases.get
  • cloudsupport.techCases.list
  • cloudsupport.techCases.update

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

compute.commitments.*

  • compute.commitments.create
  • compute.commitments.get
  • compute.commitments.list
  • compute.commitments.update
  • compute.commitments.updateReservations

consumerprocurement.accounts.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

consumerprocurement.orderAttributions.*

  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update

consumerprocurement.orders.*

  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

dataprocessing.datasources.get

dataprocessing.datasources.list

dataprocessing.groupcontrols.get

dataprocessing.groupcontrols.list

logging.logEntries.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.privateLogEntries.list

recommender.cloudsqlIdleInstanceRecommendations.get

recommender.cloudsqlIdleInstanceRecommendations.list

recommender.cloudsqlOverprovisionedInstanceRecommendations.get

recommender.cloudsqlOverprovisionedInstanceRecommendations.list

recommender.commitmentUtilizationInsights.*

  • recommender.commitmentUtilizationInsights.get
  • recommender.commitmentUtilizationInsights.list
  • recommender.commitmentUtilizationInsights.update

recommender.computeAddressIdleResourceRecommendations.get

recommender.computeAddressIdleResourceRecommendations.list

recommender.computeDiskIdleResourceRecommendations.get

recommender.computeDiskIdleResourceRecommendations.list

recommender.computeImageIdleResourceRecommendations.get

recommender.computeImageIdleResourceRecommendations.list

recommender.computeInstanceGroupManagerMachineTypeRecommendations.get

recommender.computeInstanceGroupManagerMachineTypeRecommendations.list

recommender.computeInstanceIdleResourceRecommendations.get

recommender.computeInstanceIdleResourceRecommendations.list

recommender.computeInstanceMachineTypeRecommendations.get

recommender.computeInstanceMachineTypeRecommendations.list

recommender.costInsights.*

  • recommender.costInsights.get
  • recommender.costInsights.list
  • recommender.costInsights.update

recommender.costRecommendations.*

  • recommender.costRecommendations.listAll
  • recommender.costRecommendations.summarizeAll

recommender.resourcemanagerProjectUtilizationRecommendations.get

recommender.resourcemanagerProjectUtilizationRecommendations.list

recommender.spendBasedCommitmentInsights.*

  • recommender.spendBasedCommitmentInsights.get
  • recommender.spendBasedCommitmentInsights.list
  • recommender.spendBasedCommitmentInsights.update

recommender.spendBasedCommitmentRecommendations.*

  • recommender.spendBasedCommitmentRecommendations.get
  • recommender.spendBasedCommitmentRecommendations.list
  • recommender.spendBasedCommitmentRecommendations.update

recommender.spendBasedCommitmentRecommenderConfig.*

  • recommender.spendBasedCommitmentRecommenderConfig.get
  • recommender.spendBasedCommitmentRecommenderConfig.update

recommender.usageCommitmentRecommendations.*

  • recommender.usageCommitmentRecommendations.get
  • recommender.usageCommitmentRecommendations.list
  • recommender.usageCommitmentRecommendations.update

resourcemanager.projects.createBillingAssignment

resourcemanager.projects.deleteBillingAssignment

resourcemanager.projects.get

resourcemanager.projects.list

(roles/billing.costsManager)

Manage budgets for a billing account, and view, analyze, and export cost information of a billing account.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.getSpendingInformation

billing.accounts.getUsageExportSpec

billing.accounts.list

billing.accounts.updateUsageExportSpec

billing.budgets.*

  • billing.budgets.create
  • billing.budgets.delete
  • billing.budgets.get
  • billing.budgets.list
  • billing.budgets.update

billing.resourceAssociations.list

recommender.costInsights.*

  • recommender.costInsights.get
  • recommender.costInsights.list
  • recommender.costInsights.update

(roles/billing.creator)

Provides access to create billing accounts.

Lowest-level resources where you can grant this role:

  • Organization

billing.accounts.create

resourcemanager.organizations.get

(roles/billing.projectManager)

When granted in conjunction with the Billing Account User role, provides access to assign a project's billing account or disable its billing.

Lowest-level resources where you can grant this role:

  • Project

resourcemanager.projects.createBillingAssignment

resourcemanager.projects.deleteBillingAssignment

(roles/billing.user)

When granted in conjunction with the Project Owner role or Project Billing Manager role, provides access to associate projects with billing accounts.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

(roles/billing.viewer)

View billing account cost and pricing information, transactions, and billing and commitment recommendations.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getCarbonInformation

billing.accounts.getIamPolicy

billing.accounts.getPaymentInfo

billing.accounts.getPricing

billing.accounts.getSpendingInformation

billing.accounts.getUsageExportSpec

billing.accounts.list

billing.billingAccountPrice.get

billing.billingAccountPrices.list

billing.billingAccountServices.*

  • billing.billingAccountServices.get
  • billing.billingAccountServices.list

billing.billingAccountSkuGroupSkus.*

  • billing.billingAccountSkuGroupSkus.get
  • billing.billingAccountSkuGroupSkus.list

billing.billingAccountSkuGroups.*

  • billing.billingAccountSkuGroups.get
  • billing.billingAccountSkuGroups.list

billing.billingAccountSkus.*

  • billing.billingAccountSkus.get
  • billing.billingAccountSkus.list

billing.budgets.get

billing.budgets.list

billing.credits.list

billing.finOpsBenchmarkInformation.get

billing.finOpsHealthInformation.get

billing.resourceAssociations.list

billing.subscriptions.get

billing.subscriptions.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

dataprocessing.datasources.get

dataprocessing.datasources.list

dataprocessing.groupcontrols.get

dataprocessing.groupcontrols.list

recommender.commitmentUtilizationInsights.get

recommender.commitmentUtilizationInsights.list

recommender.costInsights.get

recommender.costInsights.list

recommender.costRecommendations.*

  • recommender.costRecommendations.listAll
  • recommender.costRecommendations.summarizeAll

recommender.spendBasedCommitmentInsights.get

recommender.spendBasedCommitmentInsights.list

recommender.spendBasedCommitmentRecommendations.get

recommender.spendBasedCommitmentRecommendations.list

recommender.spendBasedCommitmentRecommenderConfig.get

recommender.usageCommitmentRecommendations.get

recommender.usageCommitmentRecommendations.list

IAM での組織、プロジェクト、Cloud 請求先アカウント、Google お支払いプロファイルの関係

組織、Cloud 請求先アカウント、プロジェクト間の相互作用は、所有権と支払いリンクという 2 つのタイプの関係によって管理されます。

  • 所有権とは、IAM 権限の継承を指します。
  • 支払いリンクは、特定のプロジェクトの支払いを行う Cloud 請求先アカウントを定義します。

次の図は、ある組織の所有権と支払いリンクの関係を示しています。

プロジェクトが Cloud 請求先アカウントや Google お支払いプロファイルとどのように関連しているかを示します。縦の破線で区切られた一方には Google Cloud レベルのリソース(Cloud 請求先アカウントと関連付けられたプロジェクト)が示され、もう一方には Google レベルのリソース(Google お支払いプロファイル)が示されています。プロジェクトの費用は、Google お支払いプロファイルにリンクされている Cloud 請求先アカウントに請求されます。

この図では、組織はプロジェクト 1、2、3 の所有権を持ちます。つまり、この組織は 3 つのプロジェクトの IAM 権限の親となっています。

Cloud 請求先アカウントは、プロジェクト 1、2、3 にリンクされています。これは、この請求先アカウントが 3 つのプロジェクトで発生した料金を支払うことを意味します。Cloud 請求先アカウントは、他の組織のプロジェクトに対する支払いもできますが、親組織から IAM 権限を継承します。

Cloud 請求先アカウントには Google お支払いプロファイルもリンクされています。このプロファイルには、氏名、住所、お支払い方法などの情報が記録されています。Google お支払いプロファイルのユーザー権限を管理する方法をご覧ください。

Cloud 請求先アカウントにプロジェクトをリンクしても、IAM の観点からは Cloud 請求先アカウントが親になることはありません。したがって、プロジェクトはリンクされている Cloud 請求先アカウントの権限を継承しません。

この例では、組織の IAM 請求ロールが付与されているユーザーには、Cloud 請求先アカウントまたはプロジェクトの請求ロールも割り当てられます。

Cloud Billing のアクセス制御の例

IAM のロールを以下のように組み合わせると、さまざまなシナリオのニーズを満たすことができます。

シナリオ: 集中管理を好む中小企業。
ユーザーの種類 Billing IAM ロール 請求処理
CEO 請求先アカウント管理者 支払い方法を管理する。
請求書を表示および承認する。
CTO(最高技術責任者) 請求先アカウント管理者
プロジェクト作成者
予算アラートを設定する。
利用額を表示する。
新しい請求可能なプロジェクトを作成する。
開発チーム なし なし
シナリオ:委任された権限を優先する中小企業。
ユーザーの種類 Billing IAM ロール 請求処理
CEO 請求先アカウント管理者 支払い方法を管理する。
権限を委任する。
CFO 請求先アカウント管理者 予算アラートを設定する。
利用額を表示する。
買掛金部門 請求先アカウント閲覧者 請求書を表示および承認する。
開発チーム 請求先アカウント ユーザー
プロジェクト作成者
新しい請求可能なプロジェクトを作成する。
シナリオ: 財務計画と調達機能の分離
ユーザーの種類 Billing IAM ロール 請求処理
調達または中央 IT 請求先アカウント管理者 支払い方法を管理する。
予算アラートを設定する。
開発チームに利用額を通知する。
財務計画 請求先アカウント閲覧者 請求レポートを表示する。
エクスポートを処理する。
CxO と連絡を取る。
買掛金部門 請求先アカウント閲覧者 請求書を承認する。
開発チーム 請求先アカウント ユーザー
プロジェクト作成者
新しい請求可能なプロジェクトを作成する。
シナリオ: 開発部門
ユーザーの種類 Billing IAM ロール 請求処理
CEO 請求先アカウント管理者 支払い方法を管理する。
権限を委任する。
CFO 請求先アカウント管理者 予算アラートを設定する。
利用額を表示する。
請求書を承認する。
プロジェクト リーダー 請求先アカウント ユーザー
プロジェクト作成者
新しい請求可能なプロジェクトを作成する。
プロジェクト開発チーム なし 既存のプロジェクト内で開発する。
お客様 プロジェクト支払い管理者 プロジェクト完了時に、プロジェクトの支払い所有権を取得する。

Cloud Billing の権限を更新する方法

Cloud Billing 権限を確認、追加、削除する方法については、Cloud 請求先アカウントへのアクセスの管理のガイダンスに従ってください。

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

無料で開始