このページでは、Cloud Marketplace で商用プロダクトを購入して管理するために必要な Identity and Access Management(IAM)のロールと権限について説明します。
IAM では、誰(ID)がどのリソースに対してどのようなアクセス権(ロール)を持つかを定義することにより、アクセス制御を管理します。Cloud Marketplace の商用アプリの場合、 Google Cloud 組織のユーザーが Cloud Marketplace プランに登録し、課金プランを変更するには、IAM ロールが必要です。
始める前に
gcloud を使用して Cloud Marketplace のロールと権限を付与するには、gcloud CLI をインストールします。それ以外の場合は、 Google Cloud コンソールを使用してロールを付与できます。
ロールの購入と管理
Cloud Marketplace からサービスを購入するユーザーには、請求先アカウント管理者 IAM ロールを割り当てることをおすすめします。
サービスにアクセスするユーザーには、少なくとも閲覧者のロールが必要です。
OAuth 2.0 とドメインの所有権の証明 / 確認のための管理者権限
Marketplace ソリューションで OAuth 2.0 の検証またはドメインレベルの構成(SaaS 統合など)が必要な場合は、プロジェクトの ID とセキュリティ設定を管理するための管理者権限が必要です。
| シナリオ |
必要な権限またはロール |
アクション |
| 管理者権限を再び取得する |
roles/resourcemanager.organizationAdmin |
プロジェクト オーナーを管理するには、このロールを組織レベルで付与します。 |
| 承認済みドメインを確認する |
roles/cloudsecurityscanner.editor |
このロールは、ウェブ セキュリティとドメイン関連の構成を管理するために使用します。 |
| OAuth 検証を管理する |
roles/owner または roles/editor |
OAuth 同意画面を構成し、ブランディングを審査に提出します。 |
「ドメインが見つかりません」やホームページの URL が応答しないなどの一般的な確認の問題を解決するには、Search Console でドメインが確認されていること、プライバシー ポリシーが一般公開されていることを確認してください。身元確認について詳しくは、身元確認をご覧ください。
ユーザー権限をきめ細かく制御するには、付与する権限を使用してカスタムロールを作成します。
プロダクト固有の要件
Google Cloud プロジェクトで次のサービスを使用するには、プロジェクト編集者のロールが必要です。
- Google Cloud Dataprep by Trifacta
- Neo4j Aura Professional
- Redis Enterprise Cloud
IAM のロールと権限のリスト
次の IAM ロールの 1 つまたは複数をユーザーに付与できます。ユーザーに付与するロールによっては、 Google Cloud 請求先アカウント、組織、またはプロジェクトにロールを割り当てる必要があります。詳細については、IAM ロールをユーザーに付与するをご覧ください。
| Role |
Permissions |
Consumer Procurement Entitlement Manager
(roles/consumerprocurement.entitlementManager)
Allows managing entitlements and enabling, disabling, and inspecting service states for a consumer
project.
|
commerceoffercatalog.offers.get
consumerprocurement.consents.check
consumerprocurement.consents.grant
consumerprocurement.consents.list
consumerprocurement.consents.revoke
consumerprocurement.entitlements.*
consumerprocurement.entitlements.get
consumerprocurement.entitlements.list
consumerprocurement.freeTrials.*
consumerprocurement.freeTrials.create
consumerprocurement.freeTrials.get
consumerprocurement.freeTrials.list
orgpolicy.policy.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.catalogs.listMembers
serviceusage.consumerpolicy.*
serviceusage.consumerpolicy.analyze
serviceusage.consumerpolicy.get
serviceusage.consumerpolicy.update
serviceusage.effectivepolicy.get
serviceusage.groups.*
serviceusage.groups.list
serviceusage.groups.listExpandedMembers
serviceusage.groups.listMembers
serviceusage.operations.get
serviceusage.services.disable
serviceusage.services.enable
serviceusage.services.get
serviceusage.services.list
serviceusage.services.listApis
serviceusage.services.listDependentServices
serviceusage.values.test
|
Consumer Procurement Entitlement Viewer
(roles/consumerprocurement.entitlementViewer)
Allows inspecting entitlements and service states for a consumer project.
|
commerceoffercatalog.offers.get
consumerprocurement.consents.check
consumerprocurement.consents.list
consumerprocurement.entitlements.*
consumerprocurement.entitlements.get
consumerprocurement.entitlements.list
consumerprocurement.freeTrials.get
consumerprocurement.freeTrials.list
orgpolicy.policy.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.catalogs.listMembers
serviceusage.consumerpolicy.analyze
serviceusage.consumerpolicy.get
serviceusage.effectivepolicy.get
serviceusage.groups.*
serviceusage.groups.list
serviceusage.groups.listExpandedMembers
serviceusage.groups.listMembers
serviceusage.services.get
serviceusage.services.list
serviceusage.services.listApis
serviceusage.services.listDependentServices
serviceusage.values.test
|
Consumer Procurement Events Viewer
(roles/consumerprocurement.eventsViewer)
Allows viewing key events for an offer
|
consumerprocurement.events.*
consumerprocurement.events.get
consumerprocurement.events.list
|
Consumer Procurement License Pool Editor
(roles/consumerprocurement.licensePoolEditor)
Allows managing license pools and license assignments.
|
consumerprocurement.licensePools.*
consumerprocurement.licensePools.assign
consumerprocurement.licensePools.enumerateLicensedUsers
consumerprocurement.licensePools.get
consumerprocurement.licensePools.unassign
consumerprocurement.licensePools.update
|
Consumer Procurement License Pool Viewer
(roles/consumerprocurement.licensePoolViewer)
Allows viewing license pools and license assignments.
|
consumerprocurement.licensePools.enumerateLicensedUsers
consumerprocurement.licensePools.get
|
Consumer Procurement Order Administrator
(roles/consumerprocurement.orderAdmin)
Allows managing purchases.
|
billing.accounts.get
billing.accounts.getIamPolicy
billing.accounts.list
billing.accounts.redeemPromotion
billing.credits.list
billing.resourceAssociations.create
commerceoffercatalog.*
commerceoffercatalog.agreements.get
commerceoffercatalog.agreements.list
commerceoffercatalog.documents.get
commerceoffercatalog.documents.list
commerceoffercatalog.offers.get
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.licensePools.*
consumerprocurement.licensePools.assign
consumerprocurement.licensePools.enumerateLicensedUsers
consumerprocurement.licensePools.get
consumerprocurement.licensePools.unassign
consumerprocurement.licensePools.update
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
discoveryengine.billingAccountLicenseConfigs.*
discoveryengine.billingAccountLicenseConfigs.distribute
discoveryengine.billingAccountLicenseConfigs.get
discoveryengine.billingAccountLicenseConfigs.list
discoveryengine.billingAccountLicenseConfigs.retract
|
Consumer Procurement Order Viewer
(roles/consumerprocurement.orderViewer)
Allows inspecting purchases.
|
billing.accounts.get
billing.accounts.getIamPolicy
billing.accounts.list
billing.credits.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.licensePools.enumerateLicensedUsers
consumerprocurement.licensePools.get
consumerprocurement.orderAttributions.get
consumerprocurement.orderAttributions.list
consumerprocurement.orders.get
consumerprocurement.orders.list
discoveryengine.billingAccountLicenseConfigs.get
discoveryengine.billingAccountLicenseConfigs.list
|
Consumer Procurement Administrator
(roles/consumerprocurement.procurementAdmin)
Allows managing purchases, consents at both billing account and project level.
|
billing.accounts.get
billing.accounts.getIamPolicy
billing.accounts.list
billing.accounts.redeemPromotion
billing.credits.list
billing.resourceAssociations.create
commerceoffercatalog.*
commerceoffercatalog.agreements.get
commerceoffercatalog.agreements.list
commerceoffercatalog.documents.get
commerceoffercatalog.documents.list
commerceoffercatalog.offers.get
consumerprocurement.*
consumerprocurement.accounts.create
consumerprocurement.accounts.delete
consumerprocurement.accounts.get
consumerprocurement.accounts.list
consumerprocurement.consents.allowProjectGrant
consumerprocurement.consents.check
consumerprocurement.consents.grant
consumerprocurement.consents.list
consumerprocurement.consents.revoke
consumerprocurement.entitlements.get
consumerprocurement.entitlements.list
consumerprocurement.events.get
consumerprocurement.events.list
consumerprocurement.freeTrials.create
consumerprocurement.freeTrials.get
consumerprocurement.freeTrials.list
consumerprocurement.licensePools.assign
consumerprocurement.licensePools.enumerateLicensedUsers
consumerprocurement.licensePools.get
consumerprocurement.licensePools.unassign
consumerprocurement.licensePools.update
consumerprocurement.orderAttributions.get
consumerprocurement.orderAttributions.list
consumerprocurement.orderAttributions.update
consumerprocurement.orders.cancel
consumerprocurement.orders.get
consumerprocurement.orders.list
consumerprocurement.orders.modify
consumerprocurement.orders.place
discoveryengine.billingAccountLicenseConfigs.*
discoveryengine.billingAccountLicenseConfigs.distribute
discoveryengine.billingAccountLicenseConfigs.get
discoveryengine.billingAccountLicenseConfigs.list
discoveryengine.billingAccountLicenseConfigs.retract
orgpolicy.policy.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.catalogs.listMembers
serviceusage.consumerpolicy.*
serviceusage.consumerpolicy.analyze
serviceusage.consumerpolicy.get
serviceusage.consumerpolicy.update
serviceusage.effectivepolicy.get
serviceusage.groups.*
serviceusage.groups.list
serviceusage.groups.listExpandedMembers
serviceusage.groups.listMembers
serviceusage.operations.get
serviceusage.services.disable
serviceusage.services.enable
serviceusage.services.get
serviceusage.services.list
serviceusage.services.listApis
serviceusage.services.listDependentServices
serviceusage.values.test
|
Consumer Procurement Viewer
(roles/consumerprocurement.procurementViewer)
Allows inspecting purchases, consents and entitlements and service states for a consumer project.
|
billing.accounts.get
billing.accounts.getIamPolicy
billing.accounts.list
billing.credits.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.entitlements.*
consumerprocurement.entitlements.get
consumerprocurement.entitlements.list
consumerprocurement.freeTrials.get
consumerprocurement.freeTrials.list
consumerprocurement.licensePools.enumerateLicensedUsers
consumerprocurement.licensePools.get
consumerprocurement.orderAttributions.get
consumerprocurement.orderAttributions.list
consumerprocurement.orders.get
consumerprocurement.orders.list
discoveryengine.billingAccountLicenseConfigs.get
discoveryengine.billingAccountLicenseConfigs.list
orgpolicy.policy.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.catalogs.listMembers
serviceusage.consumerpolicy.analyze
serviceusage.consumerpolicy.get
serviceusage.effectivepolicy.get
serviceusage.groups.*
serviceusage.groups.list
serviceusage.groups.listExpandedMembers
serviceusage.groups.listMembers
serviceusage.services.get
serviceusage.services.list
serviceusage.services.listApis
serviceusage.services.listDependentServices
serviceusage.values.test
|
ユーザーに IAM ロールを付与する
上記の表のロールのうち、consumerprocurement.orderAdmin ロールと consumerprocurement.orderViewer ロールは請求先アカウントまたは組織レベルで割り当てる必要があります。consumerprocurement.entitlementManager ロールと consumerprocurement.entitlementViewer ロールは、プロジェクトまたは組織レベルで割り当てる必要があります。
gcloud を使用してユーザーにロールを付与するには、次のいずれかのコマンドを実行します。
組織
組織レベルでロールを割り当てるには、resourcemanager.organizationAdmin が必要です。
gcloud organizations add-iam-policy-binding organization-id \
--member=member --role=role-id
プレースホルダの値は次のとおりです。
- organization-id: ロールを付与する組織の数値 ID。
- member: アクセス権が付与されるユーザー。
- role-id: 前のテーブルからのロール ID。
請求先アカウント
請求先アカウント レベルでロールを割り当てるには、billing.admin が必要です。
gcloud beta billing accounts set-iam-policy account-id \
policy-file
プレースホルダの値は次のとおりです。
- account-id: 請求先アカウント ID。[請求先アカウントの管理] ページで取得できます。
- policy-file: JSON 形式または YAML 形式の IAM ポリシー ファイル。ポリシー ファイルには、前のテーブルのロール ID と、ロールを割り当てるユーザーが含まれている必要があります。
プロジェクト
プロジェクト レベルでロールを割り当てるには、resourcemanager.folderAdmin が必要です。
gcloud projects add-iam-policy-binding project-id \
--member=member --role=role-id
プレースホルダの値は次のとおりです。
- project-id: ロールが付与されるプロジェクト。
- member: アクセス権が付与されるユーザー。
- role-id: 前のテーブルからのロール ID。
Google Cloud コンソールを使用してユーザーにロールを付与するには、ユーザーのアクセス権の付与、変更、取り消しに関する IAM ドキュメントをご覧ください。
Cloud Marketplace でのカスタムロールの使用
ユーザーに付与する権限を細かく制御するには、付与したい権限のみを持つカスタムロールを作成します。
Cloud Marketplace からサービスを購入するユーザー用のカスタムロールを作成する場合、そのロールには、ユーザーがサービスの購入に使用する請求先アカウントに対する以下の権限が含まれている必要があります。
シングル サインオン(SSO)を使用してパートナー ウェブサイトにアクセスする
特定の Cloud Marketplace API プロダクトは、パートナーの外部ウェブサイトへのシングル サインオン(SSO)をサポートしています。組織内の承認済みユーザーは、商品の詳細ページの [プロバイダで管理] ボタンにアクセスできます。このボタンを使用すると、ユーザーはパートナーのウェブサイトに移動します。ユーザーが「Google でログイン」を求められることがあります。それ以外の場合、ユーザーは共有アカウントのコンテキストでログインします。
SSO 機能にアクセスするには、プロダクトの詳細ページに移動し、適切なプロジェクトを選択します。プロジェクトは、プランを購入した請求先アカウントにリンクされている必要があります。Cloud Marketplace API プランの管理の詳細については、課金プランの管理をご覧ください。
さらに、選択したプロジェクト内で十分な IAM 権限を持っている必要があります。ほとんどのプロダクトでは、roles/consumerprocurement.entitlementManager(または roles/editor 基本ロール)が必要です。
特定のプロダクトの最小権限
次のプロダクトは異なる権限セットで動作して、SSO 機能にアクセスできます。
- Apache Kafka on Confluent Cloud
- Apache Cassandra 向け DataStax Astra
- Elastic Cloud
- Neo4j Aura Professional
- Redis Enterprise Cloud
これらのプロダクトでは、次の最小権限を使用できます。
consumerprocurement.entitlements.get
consumerprocurement.entitlements.list
serviceusage.services.get
serviceusage.services.list
resourcemanager.projects.get
これらの権限は通常、roles/consumerprocurement.entitlementManager ロールまたは roles/consumerprocurement.entitlementViewer ロールで付与されます。