Analytics Hub VPC Service Controls のルール
このドキュメントでは、VPC Service Controls の境界が設定されているプロジェクトのデータに、パブリッシャーとサブスクライバーがアクセスするために必要な上り(内向き)ルールと下り(外向き)ルールについて説明します。またここでは、VPC Service Controls の境界、共有データセット、データ交換、リスト、リンクされたデータセットを理解されていることを前提としています。
呼び出し元プロジェクトは、リクエストを開始するネットワークまたはクライアント プロジェクトです(SQL クエリや Google Cloud CLI コマンドなど)。
データ交換を作成する
次の図では、データ交換と共有データセットを含むプロジェクトが異なるサービス境界にあります。
図 1. データ交換を作成するための VPC Service Controls ルール。
図 1 では、次のコンポーネントにラベルが付けられています。
- 呼び出し元は、Analytics Hub 管理者です。
- プロジェクト R は、呼び出し元のプロジェクトです。
- プロジェクト E は、Analytics Hub のデータ交換とリスティングをホストします。
Analytics Hub 管理者は、呼び出し元プロジェクトとは異なるプロジェクトでデータ交換を作成する場合、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。
プロジェクト | ルール |
---|---|
プロジェクト R | プロジェクト E の下り(外向き)ルール |
プロジェクト E(データ交換) | プロジェクト R の上り(内向き)ルール |
リスティングを作成する
次の図では、データ交換と共有データセットを含むプロジェクトが異なるサービス境界にあります。
図 2.リスティングを作成するための VPC Service Controls ルール。
図 2 では、次のコンポーネントにラベルが付けられています。
- 呼び出し元は、Analytics Hub の管理者またはパブリッシャーです。
- プロジェクト R は、呼び出し元のプロジェクトです。
- プロジェクト E は、Analytics Hub のデータ交換とリスティングをホストします。
- プロジェクト S は、共有データセットをホストします。
共有データセットとは異なるプロジェクトにあるデータ交換でリストを作成する場合は、次の上り(内向き)ルールと下り(外向き)ルールを追加して、パブリッシャーがリスティングを作成できるようにする必要があります。
プロジェクト | ルール |
---|---|
プロジェクト R |
プロジェクト E の下り(外向き)ルール プロジェクト S の下り(外向き)ルール |
プロジェクト E(データ交換) |
プロジェクト S の下り(外向き)ルール プロジェクト R の上り(内向き)ルール |
プロジェクト S(共有データセット) |
プロジェクト E の下り(外向き)ルール プロジェクト R の上り(内向き)ルール |
リスティングをサブスクライブする
次の図では、リストを含むプロジェクトと、そのリスティングのリンクされたデータセットが、異なるサービス境界内にあります。
図 3. リスティングに登録するための VPC Service Controls ルール。
図 3 では、次のコンポーネントにラベルが付けられています。
- 呼び出し元は、Analytics Hub のサブスクライバーです。
- プロジェクト R は、呼び出し元のプロジェクトです。
- プロジェクト E は、Analytics Hub のデータ交換とリスティングをホストします。
- プロジェクト L は、リンクされたデータセットをホストします。
Analytics Hub のサブスクライバーとして、お使いのプロジェクトとは異なるプロジェクトにあるデータ交換のリストに登録すると、次の上り(内向き)ルールと下り(外向き)ルールを追加する必要があります。
プロジェクト | ルール |
---|---|
プロジェクト R |
プロジェクト E の下り(外向き)ルール プロジェクト L の下り(外向き)ルール |
プロジェクト E(リスティング) |
プロジェクト L の下り(外向き)ルール プロジェクト R の上り(内向き)ルール |
プロジェクト L(リンクされたデータセット) |
プロジェクト E の下り(外向き)ルール プロジェクト R の上り(内向き)ルール |
リンクされたデータセット内のテーブルをクエリする
次の図では、呼び出し元プロジェクトと、リンクされたデータセットを含むプロジェクトが異なるサービス境界にあります。
図 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
次のステップ
- VPC Service Controls の問題をトラブルシューティングするには、一般的な問題のトラブルシューティングをご覧ください。
- 上り(内向き)ルールと下り(外向き)ルールについて学習する。
- 上り(内向き)ポリシーと下り(外向き)ポリシーの構成について学習する。
- データ交換の作成について学習する。
- リスティングの作成方法について学習する。
- リスティングを購読するについて学習する。
- Analytics Hub の監査ロギングについて確認する。