Cloud Marketplace のアクセス制御

このページでは、Cloud Marketplace で商用プロダクトを購入して管理するために必要な Identity and Access Management(IAM)のロールと権限について説明します。

IAM では、誰(ID)がどのリソースに対してどのようなアクセス権(ロール)を持つかを定義することにより、アクセス制御を管理します。Cloud Marketplace 上の商用アプリの場合、Google Cloud 組織のユーザーは、Cloud Marketplace プランへの登録および料金プランの変更を行うために IAM ロールが必要です。

始める前に

  • gcloud を使用して Cloud Marketplace のロールと権限を付与するには、Cloud SDK をインストールします。それ以外の場合は、Cloud Console を使用してロールを付与できます。

プロダクトの購入と管理に必要な IAM のロール

Cloud Marketplace からサービスを購入するユーザーには、課金管理者(roles/billing.admin)IAM ロールを割り当てることをおすすめします。

サービスにアクセスするユーザーには、少なくともプロジェクト閲覧者(roles/viewer)のロールが必要です。

ユーザー権限をきめ細かく制御する必要がある場合は、付与する権限を使用してカスタムロールを作成できます。

IAM のロールと権限のリスト

次の IAM ロールの 1 つまたは複数をユーザーに付与できます。ユーザーに付与するロールに応じて、Google Cloud の請求先アカウント、組織、プロジェクトにもロールを割り当てる必要があります。詳細については、ユーザーに IAM ロールを付与するをご覧ください。

ロール 役職 説明 権限 最下位のリソース
roles/commerceoffercatalog.offersViewer コマース オファー カタログ オファー閲覧者 ベータ版 オファーを表示できます。
  • commerceoffercatalog.*
roles/commercepricemanagement.privateOffersAdmin Commerce Price Management Private Offers 管理者 ベータ版 Private Offers を管理できます。
  • commerceprice.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.services.get
  • serviceusage.services.list
roles/commercepricemanagement.viewer Commerce Price Management 閲覧者 ベータ版 クーポン、無料トライアル、SKU を表示できます。
  • commerceprice.privateoffers.get
  • commerceprice.privateoffers.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.services.get
  • serviceusage.services.list
roles/consumerprocurement.entitlementManager Consumer Procurement Entitlement 管理者ベータ版 エンタイトルメントを管理し、コンシューマ プロジェクトのサービス状態の有効化、無効化、検査を行うことができます。
  • consumerprocurement.entitlements.*
  • consumerprocurement.freeTrials.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.operations.get
  • serviceusage.services.disable
  • serviceusage.services.enable
  • serviceusage.services.get
  • serviceusage.services.list
roles/consumerprocurement.entitlementViewer Consumer Procurement Entitlement 閲覧者ベータ版 ユーザー プロジェクトのエンタイトルメントとサービスの状態を検査できます。
  • consumerprocurement.entitlements.*
  • consumerprocurement.freeTrials.get
  • consumerprocurement.freeTrials.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.services.get
  • serviceusage.services.list
roles/consumerprocurement.orderAdmin Consumer Procurement Order 管理者ベータ版 購入を管理できます。
  • commerceoffercatalog.*
  • consumerprocurement.accounts.*
  • consumerprocurement.orders.*
roles/consumerprocurement.orderViewer Consumer Procurement Order 閲覧者ベータ版 購入を検査できます。
  • commerceoffercatalog.*
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list

ユーザーに 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。

Cloud Console を使用してユーザーにロールを付与するには、ユーザーのアクセス権の付与、変更、取り消しに関する IAM ドキュメントをご覧ください。

Cloud Marketplace でのカスタムロールの使用

ユーザーに付与する権限を細かく制御するには、付与したい権限のみを持つカスタムロールを作成します。

Cloud Marketplace からサービスを購入するユーザー用のカスタムロールを作成する場合、ロールには次の権限を含める必要があります。

シングル サインオン(SSO)を使用してパートナー ウェブサイトにアクセスする

一部の Marketplace プロダクトでは、パートナーの外部ウェブサイトへのシングル サインオン(SSO)がサポートされています。組織内の承認済みのユーザーは、プロダクトの詳細ページで [プロバイダで管理] ボタンにアクセスできます。このボタンを使用すると、ユーザーはパートナーのウェブサイトに移動します。ユーザーが「Google でログイン」を求められることがあります。あるいは、共有アカウントの状態でログインする場合もあります。

SSO 機能にアクセスするには、プロダクトの詳細ページに移動し、適切なプロジェクトを選択します。プロジェクトは、プランが購入された請求先アカウントにリンクされている必要があります。Marketplace プランの管理の詳細については、料金プランの管理をご覧ください。

さらに、選択したプロジェクト内でユーザーに十分な IAM 権限を付与する必要があります。現在、ほとんどのプロダクトで roles/editor 基本ロールが必要です。

特定のプロダクトに対する最小限の権限

次のプロダクトは異なる権限セットで動作して、SSO 機能にアクセスできます。

これらのプロダクトでは、次の最小権限を使用できます。

  • consumerprocurement.entitlements.get/get
  • consumerprocurement.entitlements.get/list
  • serviceusage.services.get/get
  • serviceusage.services.get/list
  • resourcemanager.projects.get

これらの権限には通常、roles/consumerprocurement.entitlementManager または roles/consumerprocurement.entitlementViewer のロールが付与されます。