Analytics Hub VPC Service Controls のルール

このドキュメントでは、VPC Service Controls の境界が設定されているプロジェクトのデータに、パブリッシャーとサブスクライバーがアクセスするために必要な上り(内向き)ルールと下り(外向き)ルールについて説明します。またここでは、VPC Service Controls の境界共有データセットデータ交換リストリンクされたデータセットを理解されていることを前提としています。

呼び出し元プロジェクトは、リクエストを開始するネットワークまたはクライアント プロジェクトです(SQL クエリや Google Cloud CLI コマンドなど)。

データ交換を作成する

次の図では、データ交換と共有データセットを含むプロジェクトが異なるサービス境界にあります。

データ交換を作成する際の VPC Service Controls ルール。

図 1. データ交換を作成するための VPC Service Controls ルール。

図 1 では、次のコンポーネントにラベルが付けられています。

  • 呼び出し元は、Analytics Hub 管理者です。
  • プロジェクト R は、呼び出し元のプロジェクトです。
  • プロジェクト E は、Analytics Hub のデータ交換とリスティングをホストします。

Analytics Hub 管理者は、呼び出し元プロジェクトとは異なるプロジェクトでデータ交換を作成する場合、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。

プロジェクト ルール
プロジェクト R プロジェクト E の下り(外向き)ルール
プロジェクト E(データ交換) プロジェクト R の上り(内向き)ルール

リスティングを作成する

次の図では、データ交換と共有データセットを含むプロジェクトが異なるサービス境界にあります。

リスティングを作成する際の VPC Service Controls ルール。

図 2.リスティングを作成するための VPC Service Controls ルール。

図 2 では、次のコンポーネントにラベルが付けられています。

  • 呼び出し元は、Analytics Hub の管理者またはパブリッシャーです。
  • プロジェクト R は、呼び出し元のプロジェクトです。
  • プロジェクト E は、Analytics Hub のデータ交換とリスティングをホストします。
  • プロジェクト S は、共有データセットをホストします。

共有データセットとは異なるプロジェクトにあるデータ交換でリストを作成する場合は、次の上り(内向き)ルールと下り(外向き)ルールを追加して、パブリッシャーがリスティングを作成できるようにする必要があります。

プロジェクト ルール
プロジェクト R

プロジェクト E の下り(外向き)ルール

プロジェクト S の下り(外向き)ルール

プロジェクト E(データ交換)

プロジェクト S の下り(外向き)ルール

プロジェクト R の上り(内向き)ルール

プロジェクト S(共有データセット)

プロジェクト E の下り(外向き)ルール

プロジェクト R の上り(内向き)ルール

リスティングをサブスクライブする

次の図では、リストを含むプロジェクトと、そのリスティングのリンクされたデータセットが、異なるサービス境界内にあります。

リスティングをサブスクライブする際の VPC Service Controls ルール。

図 3. リスティングに登録するための VPC Service Controls ルール。

図 3 では、次のコンポーネントにラベルが付けられています。

  • 呼び出し元は、Analytics Hub のサブスクライバーです。
  • プロジェクト R は、呼び出し元のプロジェクトです。
  • プロジェクト E は、Analytics Hub のデータ交換とリスティングをホストします。
  • プロジェクト L は、リンクされたデータセットをホストします。

Analytics Hub のサブスクライバーとして、お使いのプロジェクトとは異なるプロジェクトにあるデータ交換のリストに登録すると、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。

プロジェクト ルール
プロジェクト R

プロジェクト E の下り(外向き)ルール

プロジェクト L の下り(外向き)ルール

プロジェクト E(リスティング)

プロジェクト L の下り(外向き)ルール

プロジェクト R の上り(内向き)ルール

プロジェクト L(リンクされたデータセット)

プロジェクト E の下り(外向き)ルール

プロジェクト R の上り(内向き)ルール

リンクされたデータセット内のテーブルをクエリする

次の図では、呼び出し元プロジェクトと、リンクされたデータセットを含むプロジェクトが異なるサービス境界にあります。

リンクされたデータセット内のテーブルをクエリするときの VPC Service Controls ルール。

図 4.リンクされたデータセットにクエリを実行するための VPC Service Controls ルール。

図 4 では、次のコンポーネントにラベルが付けられています。

  • 呼び出し元は、Analytics Hub のサブスクライバー、またはリンクされたデータセットの BigQuery ジョブユーザーです。
  • プロジェクト R は、呼び出し元のプロジェクトです。
  • プロジェクト L は、リンクされたデータセットをホストします。
  • プロジェクト V は、テーブルを含む共有データセットをホストします。

Analytics Hub のサブスクライバーとして、リンクされたデータセット内のテーブルをクエリする場合は、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。

プロジェクト ルール
プロジェクト R プロジェクト L の下り(外向き)ルール
プロジェクト L(リンクされたデータセット) プロジェクト R の上り(内向き)ルール

リンクされたデータセットのビューをクエリする

シナリオ 1

次の図では、リンクされたデータセットとビューに関連付けられたベーステーブルを含むプロジェクトが、異なるサービス境界にあります。ビュー(プロジェクト S)とビュー(プロジェクト V)に関連付けられたベーステーブルは異なるプロジェクト内にあります。

ビューとベーステーブルが異なるプロジェクトにあります。

図 5. リンクされたデータセット内のビューをクエリする VPC Service Controls のルール。

図 5 では、次のコンポーネントにラベルが付けられています。

  • 呼び出し元は、Analytics Hub のサブスクライバー、またはリンクされたデータセットの BigQuery ジョブユーザーです。
  • プロジェクト R は、呼び出し元のプロジェクトです。
  • プロジェクト L は、リンクされたデータセットをホストします。
  • プロジェクト S は、共有データセットをホストします。
  • プロジェクト V は、ビューに関連付けられたベーステーブルを含むデータセットをホストします。

Analytics Hub のサブスクライバーとして、リンクされたデータセット内のビューにクエリを実行する場合は、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。

プロジェクト ルール
プロジェクト R

プロジェクト L の下り(外向き)ルール

プロジェクト V の下り(外向き)ルール

プロジェクト L(リンクされたデータセット)

プロジェクト R の上り(内向き)ルール

プロジェクト V の下り(外向き)ルール

プロジェクト V

プロジェクト L の下り(外向き)ルール

プロジェクト R の上り(内向き)ルール

シナリオ 2

次の図では、ビュー(プロジェクト V)とビュー(プロジェクト V)に関連付けられたベーステーブルが同じプロジェクトに存在します。

ビューとベーステーブルは同じプロジェクトにある。

図 6. リンクされたデータセット内のビューをクエリする VPC Service Controls のルール。

図 6 では、次のコンポーネントにラベルが付けられています。

  • 呼び出し元は、Analytics Hub のサブスクライバー、またはリンクされたデータセットの BigQuery ジョブユーザーです。
  • プロジェクト R は、呼び出し元のプロジェクトです。
  • プロジェクト L は、リンクされたデータセットをホストします。
  • プロジェクト V は、ビューと、そのビューに関連付けられたベーステーブルの両方をホストします。

Analytics Hub のサブスクライバーとして、リンクされたデータセット内のビューにクエリを実行する場合は、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。

プロジェクト ルール
プロジェクト R

プロジェクト L の下り(外向き)ルール

プロジェクト L(リンクされたデータセット)

プロジェクト R の上り(内向き)ルール

リンクされたデータセット内の承認済みビューをクエリする

次の図では、承認済みビューと承認済みビュー(プロジェクト V)に関連付けられたベーステーブルが同じプロジェクト内にあります。

承認済みビューとベーステーブルは同じプロジェクトにある。

図 7. リンクされたデータセット内のビューをクエリする VPC Service Controls のルール。

図 7 では、次のコンポーネントにラベルが付けられています。

  • 呼び出し元は、Analytics Hub のサブスクライバー、またはリンクされたデータセットの BigQuery ジョブユーザーです。
  • プロジェクト R は、呼び出し元のプロジェクトです。
  • プロジェクト L は、リンクされたデータセットをホストします。
  • プロジェクト V は、承認済みビューと、そのビューに関連付けられたベーステーブルの両方をホストします。

Analytics Hub のサブスクライバーとして、リンクされたデータセット内のビューにクエリを実行する場合は、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。

プロジェクト ルール
プロジェクト R

プロジェクト L の下り(外向き)ルール

プロジェクト L(リンクされたデータセット)

プロジェクト R の上り(内向き)ルール

制限事項

Analytics Hub はメソッドベースのルールをサポートしていません。メソッドを許可するには、すべてのメソッドを許可する必要があります。次に例を示します。

          ingressTo:
            operations:
            - methodSelectors:
              - method: '*'
              serviceName: analyticshub.googleapis.com
            resources:
            - projects/PROJECT_ID

次のステップ