Analytics Hub のロールを構成する

このドキュメントでは、Analytics Hub のユーザーロールと、ユーザーにロールを付与する方法について説明します。詳細については、Analytics Hub のロールをご覧ください。

Analytics Hub のユーザーロール

以降のセクションでは、Analytics Hub の事前定義ロールについて説明します。ユーザーにこれらのロールを割り当てることで、データ交換とリスティングに関するさまざまなタスクを実行できます。

Analytics Hub の管理者ロール

データ交換を管理するために、Analytics Hub には、プロジェクトまたはデータの交換のために付与できる Analytics Hub 管理者ロール(roles/analyticshub.admin)が用意されています。このロールによって、ユーザーは次のタスクを実施できます。

  • データ交換を作成、更新、削除します。
  • リスティングを作成、更新、削除、共有します。
  • Analytics Hub 管理者、リスティング管理者、パブリッシャー、サブスクライバー、閲覧者を管理します。

このロールを持つユーザーは管理者と呼ばれます。

Analytics Hub のパブリッシャーとリスティング管理者のロール

リスティングを管理するために、Analytics Hub にはプロジェクト、データ交換、リスティングに対して付与できる次の事前定義ロールが用意されています。

  • Analytics Hub パブリッシャー ロール(roles/analyticshub.publisher)。これにより、ユーザーは以下のタスクを実行できます。

    このロールを持つユーザーはパブリッシャーと呼ばれます。

  • Analytics Hub リスティング管理者ロール(roles/analyticshub.listingAdmin)。これにより、ユーザーは次のタスクを実行できます。

Analytics Hub のサブスクライバーと閲覧者のロール

リスティングの表示と登録を行うために、Analytics Hub にはプロジェクト、データ交換、リスティングに対して付与できる次の事前定義ロールが用意されています。

  • Analytics Hub のサブスクライバー ロール(roles/analyticshub.subscriber)。これにより、ユーザーはリスティングを表示して登録できます。

    このロールを持つユーザーはサブスクライバーと呼ばれます。

  • Analytics Hub 閲覧者ロール(roles/analyticshub.viewer)。これにより、ユーザーはリスティングとデータ交換の権限を表示できます。

    このロールを持つユーザーは閲覧者と呼ばれます。

Analytics Hub のサブスクリプション オーナーのロール

サブスクリプションを管理するために、Analytics Hub には、プロジェクト レベルで付与できる次の事前定義ロールが用意されています。

  • Analytics Hub サブスクリプション オーナー ロール(roles/analyticshub.subscriptionOwner)。これにより、ユーザーはサブスクリプションを管理できます。

Analytics Hub のロールを付与する

必要に応じて、次のレベルのリソース階層で Analytics Hub のロールを付与できます。

  • プロジェクト。ユーザーにプロジェクトのロールを付与すると、プロジェクトに含まれるすべてのデータ交換とリスティングにロールが適用されます。

  • データ交換。 ユーザーにデータ交換のロールを付与すると、データ交換に含まれるすべてのリスティングにロールが適用されます。

  • リスティング。ユーザーにリスティングのロールを付与すると、この特定のリスティングにのみロールが適用されます。

プロジェクトのロールを付与する

プロジェクトに対して IAM ポリシーを設定する場合は、プロジェクトに対する roles/resourcemanager.projectIamAdmin ロールが必要です。事前定義されたプロジェクトの Analytics Hub ユーザーロールを付与する手順は次のとおりです。

コンソール

  1. プロジェクトの [IAM] に移動します。

    IAM に移動

  2. [追加] をクリックします。

  3. [新しいプリンシパル] フィールドに、アクセスを付与する ID のメールアドレスを入力します。次に例を示します。

    • Google アカウントのメールアドレス: test-user@gmail.com
    • Google グループ: admins@googlegroups.com
    • サービス アカウント: server@example.gserviceaccount.com
    • Google Workspace ドメイン: example.com
  4. [ロール] リストで、[Analytics Hub] の上にポインタを置き、次のいずれかのロールを選択します。

    • Analytics Hub 管理者
    • Analytics Hub パブリッシャー
    • Analytics Hub リスティング管理者
    • Analytics Hub サブスクライバー
    • Analytics Hub 閲覧者
  5. 省略可: 条件付きロール バインディングを追加して、Google Cloud リソースへのユーザーのアクセスをさらに細かく制御します。

  6. 変更を保存します。

前述の手順で説明したように、同じ IAM パネルを使用してプロジェクトの管理者を削除および更新できます。

gcloud

プロジェクト レベルでロールを付与するには、gcloud projects add-iam-policy-binding コマンドを使用します。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='PRINCIPAL' \
    --role='roles/analyticshub.admin'

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID(例: my-project-1)。
  • PRINCIPAL: ロールを付与する有効な ID。

    次に例を示します。

    • Google アカウントのメールアドレス: user:user@gmail.com
    • Google グループ: group:admins@googlegroups.com
    • サービス アカウント: serviceAccount:server@example.gserviceaccount.com
    • Google Workspace ドメイン: domain:example.com

API

  1. リソースの getIamPolicy メソッドを使用して、既存のポリシーを読み取ります。プロジェクトの場合は、projects.getIamPolicy メソッドを使用します。

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    PROJECT_ID は、プロジェクト ID に置き換えます(例: my-project-1)。

  2. プリンシパルとそれに関連するロールを追加するには、テキスト エディタでポリシーを編集します。メンバーを追加するには、次の形式を使用します。

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    たとえば、roles/analyticshub.admin ロールを group:admins@example.com に付与するには、次のバインディングをポリシーに追加します。

    {
     "members": [
       "group:admins@example.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. setIamPolicy メソッドを使用して、更新したポリシーを書き込みます。

    たとえば、ポリシーをプロジェクト レベルで設定するには、project.setIamPolicy メソッドを使用します。リクエストの本文で、前のステップで更新した IAM ポリシーを指定します。

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
    

    PROJECT_ID の部分は、プロジェクト ID で置き換えます。

データ交換のロールを付与する

データ交換のロールを付与する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[Analytics Hub] ページに移動します。

    Analytics Hub に移動

  2. 権限を設定するデータ交換名をクリックします。

  3. [権限を設定] をクリックします。

  4. プリンシパルを追加するには、 [プリンシパルを追加] をクリックします。

  5. [新しいプリンシパル] フィールドに、アクセス権限を付与するメールアドレスを追加します。

  6. [ロールを選択] で、[Analytics Hub] の上にポインタを置き、次のいずれかの Identity and Access Management(IAM)ロールを選択します。

    • Analytics Hub 管理者
    • Analytics Hub パブリッシャー
    • Analytics Hub リスティング管理者
    • Analytics Hub サブスクライバー
    • Analytics Hub 閲覧者
  7. [保存] をクリックします。

API

  1. projects.locations.dataExchanges.getIamPolicy メソッドを使用して、リスティング getIamPolicy メソッドがある既存のポリシーを読み取ります。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクト ID(例: my-project-1)。
    • LOCATION: データ交換のロケーション。
    • DATAEXCHANGE_ID: データ交換 ID。

    Analytics Hub により現在のポリシーが返されます。

  2. メンバーとそれに関連する Identity and Access Management(IAM)のロールを追加または削除するには、テキスト エディタでポリシーを編集します。メンバーを追加するには、次の形式を使用します。

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    たとえば、roles/analyticshub.subscriber ロールを group:subscribers@example.com に付与するには、次のバインディングをポリシーに追加します。

    {
     "members": [
       "group:subscribers@example.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. projects.locations.dataExchanges.setIamPolicy メソッドを使用して、更新したポリシーを書き込みます。リクエストの本文で、前のステップで更新した IAM ポリシーを指定します。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

    リクエストの本文で、リスティングの詳細を指定します。リクエストが成功した場合は、レスポンスの本文にリスティングの詳細が含まれます。

前述の手順で説明したように、同じ IAM パネルを使用してデータ交換のロールを削除および更新できます。

リスティングのロールを付与する

リスティングのロールを付与する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[Analytics Hub] ページに移動します。

    Analytics Hub に移動

  2. リスティングを含むデータ交換名をクリックします。

  3. ユーザーを追加するリスティングをクリックします。

  4. [権限を設定] をクリックします。

  5. プリンシパルを追加するには、 [プリンシパルを追加] をクリックします。

  6. [新しいプリンシパル] フィールドに、アクセス権を付与する ID のメールアドレスを追加します。

  7. [ロールを選択] で、ポインタを [Analytics Hub] に合わせ、次のいずれかのロールを選択します。

    • Analytics Hub 管理者
    • Analytics Hub パブリッシャー
    • Analytics Hub リスティング管理者
    • Analytics Hub サブスクライバー
    • Analytics Hub 閲覧者
  8. [保存] をクリックします。

API

  1. projects.locations.dataExchanges.listings.getIamPolicy メソッドを使用して、リスティング getIamPolicy メソッドがある既存のポリシーを読み取ります。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクト ID(例: my-project-1)。
    • LOCATION: リスティングを含むデータ交換のロケーション。
    • DATAEXCHANGE_ID: データ エクスチェンジ ID。
    • LISTING_ID: リスティング ID。

    Analytics Hub により現在のポリシーが返されます。

  2. メンバーとそれに関連する Identity and Access Management(IAM)のロールを追加または削除するには、テキスト エディタでポリシーを編集します。メンバーを追加するには、次の形式を使用します。

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    たとえば、roles/analyticshub.publisher ロールを group:publishers@example.com に付与するには、次のバインディングをポリシーに追加します。

    {
     "members": [
       "group:publishers@example.com"
     ],
     "role":"roles/analyticshub.publisher"
    }
    
  3. projects.locations.dataExchanges.listings.setIamPolicy メソッドを使用して、更新したポリシーを書き込みます。リクエストの本文で、前のステップで更新した IAM ポリシーを指定します。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING-ID:setIamPolicy
    

    リクエストの本文で、リスティングの詳細を指定します。リクエストが成功した場合は、レスポンスの本文にリスティングの詳細が含まれます。

リスティングのロールの削除と更新は、前述の手順で説明したものと同じ IAM パネルで行うことができます。

次のステップ