VPC Service Controls-Regeln freigeben
Mit Regeln für ein- und ausgehenden Traffic können Publisher und Abonnenten in BigQuery Sharing (früher Analytics Hub) auf Daten in Projekten zugreifen, die durch VPC Service Controls-Perimeter geschützt sind. Bevor Sie diese Regeln konfigurieren, sollten Sie mit VPC Service Controls-Perimetern, freigegebenen Datasets, Datenpools, Einträgen und verknüpften Datasets vertraut sein.
Ein Aufruferprojekt ist das Netzwerk- oder Clientprojekt von Google Cloud , das die Anfrage initiiert, z. B. eine SQL-Abfrage oder ein Google Cloud CLI-Befehl.
Datenaustausch erstellen
Im folgenden Diagramm befinden sich die Projekte, die den Datenaustausch und das freigegbene Dataset enthalten, in verschiedenen Dienstperimetern:
Abbildung 1. VPC Service Controls-Regeln zum Erstellen eines Datenpools.
In Abbildung 1 sind die folgenden Komponenten beschriftet:
- Aufrufer: ein BigQuery Sharing-Administrator.
- Projekt R: das Aufruferprojekt.
- Projekt E: Hostet den Datenpool und die Einträge.
Wenn Sie als BigQuery Sharing-Administrator einen Datenpool in einem anderen Projekt als dem Aufruferprojekt erstellen, müssen Sie die folgenden Regeln für eingehenden und ausgehenden Traffic hinzufügen:
| Projekt | Regel |
|---|---|
| Projekt R | Regel für ausgehenden Traffic für Projekt E |
| Projekt E (Datenpool) | Regel für eingehenden Traffic für Projekt R |
Eintrag erstellen
Im folgenden Diagramm befinden sich die Projekte, die den Datenaustausch und das freigegbene Dataset enthalten, in verschiedenen Dienstperimetern:
Abbildung 2. VPC Service Controls-Regeln zum Erstellen eines Eintrags.
In Abbildung 2 sind die folgenden Komponenten beschriftet:
- Aufrufer: ein BigQuery Sharing-Administrator oder -Publisher.
- Projekt R: das Aufruferprojekt.
- Projekt E: Hostet den Datenpool und die Einträge.
- Projekt S: Hostet das freigegebene Dataset.
Wenn Sie einen Eintrag in einem Datenpool erstellen, der sich in einem anderen Projekt als dem freigegebenen Dataset befindet, müssen Sie die folgenden Regeln für eingehenden und ausgehenden Traffic hinzufügen, damit BigQuery Sharing-Publisher einen Eintrag erstellen können:
| Projekt | Regel |
|---|---|
| Projekt R |
Regel für ausgehenden Traffic für Projekt E Regel für ausgehenden Traffic für Projekt S |
| Projekt E (Datenpool) |
Regel für ausgehenden Traffic für Projekt S Regel für eingehenden Traffic für Projekt R |
| Projekt S (freigegebenes Dataset) |
Regel für ausgehenden Traffic für Projekt E Regel für eingehenden Traffic für Projekt R |
Eintrag abonnieren
Im folgenden Diagramm befinden sich die Projekte, die den Eintrag enthalten, und das verknüpfte Dataset für diese Auflistung in verschiedenen Dienstperimetern:
Abbildung 3. VPC Service Controls-Regeln zum Abonnieren eines Eintrags.
In Abbildung 3 sind die folgenden Komponenten beschriftet:
- Aufrufer: ein BigQuery Sharing-Abonnent.
- Projekt R: das Aufruferprojekt.
- Projekt E: Hostet den Datenpool und die Einträge.
- Projekt L: Hostet das verknüpfte Dataset.
Wenn Sie als BigQuery Sharing-Abonnent einen Eintrag in einem Datenpool abonnieren, der sich in einem anderen Projekt als Ihrem Projekt befindet, müssen Sie die folgenden Regeln für eingehenden und ausgehenden Traffic hinzufügen:
| Projekt | Regel |
|---|---|
| Projekt R |
Regel für ausgehenden Traffic für Projekt E Regel für ausgehenden Traffic für Projekt L |
| Projekt E (Eintrag) |
Regel für ausgehenden Traffic für Projekt L Regel für eingehenden Traffic für Projekt R |
| Projekt L (verknüpftes Dataset) |
Regel für ausgehenden Traffic für Projekt E Regel für eingehenden Traffic für Projekt R |
Eintrag aktualisieren
Wenn Sie einen Eintrag aktualisieren, z. B. um die Richtlinie für eingeschränkte Exporte zu ändern, werden diese Änderungen bei der BigQuery-Freigabe über einen Hintergrund-Worker an die verknüpften Datasets weitergegeben. Wenn Ihr Google Cloud -Projekt durch einen VPC Service Controls-Perimeter mit IP-basierten Einschränkungen geschützt ist, wird der Hintergrund-Worker, der von der Google-Infrastruktur stammt, möglicherweise blockiert, sodass das verknüpfte Dataset nicht synchronisiert werden kann.
Damit der Hintergrund-Worker das verknüpfte Dataset aktualisieren kann, müssen Sie Ihre Regeln für eingehenden oder ausgehenden Traffic explizit so konfigurieren, dass das Hauptkonto oder das Hauptdienstkonto, das den API-Aufruf ausführt, die IP-basierten Einschränkungen umgehen kann.
Wenn Sie die Richtlinie für eingehenden Traffic im Perimeter des Abonnentenprojekts ändern möchten, fügen Sie eine Regel für eingehenden Traffic hinzu, die dem aufrufenden Hauptkonto den Zugriff auf den Dienst bigquery.googleapis.com von einer beliebigen Quell-IP-Adresse (*) ermöglicht:
ingressFrom:
sources:
- accessLevel: "*"
identities:
- "user:CALLING_USER_EMAIL"
- "serviceAccount:AUTOMATION_SA_EMAIL"
ingressTo:
resources:
- "projects/SUBSCRIBER_PROJECT_NUMBER"
operations:
- serviceName: "bigquery.googleapis.com"
methodSelectors:
- method: "*"
Wenn Sie die Richtlinie für ausgehenden Traffic im Perimeter des Publishers ändern möchten, prüfen Sie, ob die aufrufende Identität explizit in der Liste identities in der Regel für ausgehenden Traffic aufgeführt ist, die an das Abonnentenprojekt gerichtet ist:
egressFrom:
identities:
- "user:CALLING_USER_EMAIL"
- "serviceAccount:AUTOMATION_SA_EMAIL"
egressTo:
resources:
- "projects/SUBSCRIBER_PROJECT_NUMBER"
operations:
- serviceName: "bigquery.googleapis.com"
methodSelectors:
- method: "*"
Ersetzen Sie Folgendes:
CALLING_USER_EMAIL: die E-Mail-Adresse des Nutzers, der den API-Aufruf zum Aktualisieren des Eintrags ausführt. Geben Sie diese Identität an, wenn ein menschlicher Nutzer die Aktualisierung vornimmt.AUTOMATION_SA_EMAIL: die E-Mail-Adresse des Dienstkontos, das den API-Aufruf zum Aktualisieren des Eintrags ausführt. Geben Sie diese Identität an, wenn die Aktualisierung durch einen automatisierten Prozess oder ein Script erfolgt.SUBSCRIBER_PROJECT_NUMBER: die Projektnummer des Abonnentenprojekts, das das verknüpfte Dataset enthält.
Tabellen in einem verknüpften Dataset abfragen
Im folgenden Diagramm befinden sich das Aufruferprojekt und das Projekt, das das verknüpfte Dataset enthält, in unterschiedlichen Dienstperimetern:
Abbildung 4. VPC Service Controls-Regeln für die Abfrage eines verknüpften Datasets.
In Abbildung 4 sind die folgenden Komponenten beschriftet:
- Aufrufer: ein BigQuery-Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
- Projekt R: das Aufruferprojekt.
- Projekt L: Hostet das verknüpfte Dataset.
- Projekt V: Hostet das freigegebene Dataset, das die Tabelle enthält.
Wenn Sie als BigQuery Sharing-Abonnent eine Tabelle im verknüpften Dataset abfragen, müssen Sie die folgenden Regeln für eingehenden und ausgehenden Traffic hinzufügen:
| Projekt | Regel |
|---|---|
| Projekt R | Regel für ausgehenden Traffic für Projekt L |
| Projekt L (verknüpftes Dataset) | Regel für eingehenden Traffic für Projekt R |
Ansichten in einem verknüpften Dataset abfragen
In diesem Abschnitt werden die erforderlichen VPC Service Controls-Regeln zum Abfragen einer Ansicht in einem verknüpften Dataset beschrieben. Die Regeln variieren je nachdem, ob sich die Ansicht und die zugrunde liegenden Basistabellen im selben Projekt oder in separaten Projekten befinden.
Szenario 1
Im folgenden Diagramm befinden sich Projekte, die das verknüpfte Dataset und die mit der Ansicht verknüpften Basistabellen enthalten, in verschiedenen Dienstperimetern. Die Ansicht (Projekt S) und die mit der Ansicht verknüpfte Basistabelle (Projekt V) befinden sich in verschiedenen Projekten:
Abbildung 5. VPC Service Controls-Regeln zum Abfragen einer Ansicht in einem verknüpften Dataset.
In Abbildung 5 sind die folgenden Komponenten beschriftet:
- Aufrufer: ein BigQuery-Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
- Projekt R: das Aufruferprojekt.
- Projekt L: Hostet das verknüpfte Dataset.
- Projekt S: Hostet das freigegebene Dataset.
- Projekt V: Hostet das Dataset, das die Basistabellen enthält, die mit der Ansicht verknüpft sind.
Wenn Sie als BigQuery Sharing-Abonnent eine Ansicht in einem verknüpften Dataset abfragen, müssen Sie die folgenden Regeln für eingehenden und ausgehenden Traffic hinzufügen:
| Projekt | Regel |
|---|---|
| Projekt R |
Regel für ausgehenden Traffic für Projekt L Regel für ausgehenden Traffic für Projekt V |
| Projekt L (verknüpftes Dataset) |
Regel für eingehenden Traffic für Projekt R Regel für ausgehenden Traffic für Projekt V |
| Projekt V |
Regel für ausgehenden Traffic für Projekt L Regel für eingehenden Traffic für Projekt R |
Szenario 2
Im folgenden Diagramm befinden sich die Ansicht (Projekt V) und die mit der Ansicht verknüpfte Basistabelle (Projekt V) im selben Projekt:
Abbildung 6. VPC Service Controls-Regeln zum Abfragen einer Ansicht in einem verknüpften Dataset.
In Abbildung 6 sind die folgenden Komponenten beschriftet:
- Aufrufer: ein BigQuery-Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
- Projekt R: das Aufruferprojekt.
- Projekt L: Hostet das verknüpfte Dataset.
- Projekt V: Hostet sowohl die Ansicht als auch die mit der Ansicht verknüpften Basistabellen.
Wenn Sie als BigQuery Sharing-Abonnent eine Ansicht in einem verknüpften Dataset abfragen, müssen Sie die folgenden Regeln für eingehenden und ausgehenden Traffic hinzufügen:
| Projekt | Regel |
|---|---|
| Projekt R |
Regel für ausgehenden Traffic für Projekt L |
| Projekt L (verknüpftes Dataset) |
Regel für eingehenden Traffic für Projekt R |
Autorisierte Ansichten in einem verknüpften Dataset abfragen
Im folgenden Diagramm befinden sich die autorisierte Ansicht und die Basistabelle, die mit der autorisierten Ansicht (Projekt V) verknüpft ist, im selben Projekt:
Abbildung 7. VPC Service Controls-Regeln zum Abfragen einer Ansicht in einem verknüpften Dataset.
In Abbildung 7 sind die folgenden Komponenten beschriftet:
- Aufrufer: ein BigQuery-Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
- Projekt R: das Aufruferprojekt.
- Projekt L: Hostet das verknüpfte Dataset.
- Projekt V: Hostet sowohl die autorisierte Ansicht als auch die mit der Ansicht verknüpften Basistabellen.
Wenn Sie als BigQuery Sharing-Abonnent eine Ansicht in einem verknüpften Dataset abfragen, müssen Sie die folgenden Regeln für eingehenden und ausgehenden Traffic hinzufügen:
| Projekt | Regel |
|---|---|
| Projekt R |
Regel für ausgehenden Traffic für Projekt L |
| Projekt L (verknüpftes Dataset) |
Regel für eingehenden Traffic für Projekt R |
Beschränkungen
BigQuery Sharing unterstützt keine methodenbasierten Regeln. Sie müssen alle Methoden zulassen, um methodenbasierte Regeln zu aktivieren. Beispiel:
ingressTo:
operations:
- methodSelectors:
- method: '*'
serviceName: analyticshub.googleapis.com
resources:
- projects/PROJECT_ID
Wenn BigQuery-Ressourcen auch durch Dienstperimeter geschützt sind, müssen Sie Regeln für eingehenden und ausgehenden Traffic für den BigQuery-Dienst zulassen. Das Zulassen von Regeln für ein- und ausgehenden Traffic ist beim Erstellen eines Datenaustauschs nicht erforderlich. Die Regeln für eingehenden und ausgehenden Traffic für BigQuery ähneln denen für BigQuery Sharing. Beispiel:
ingressTo:
operations:
- methodSelectors:
- method: '*'
serviceName: bigquery.googleapis.com
resources:
- projects/PROJECT_ID
Nächste Schritte
- Fehlerbehebung bei VPC Service Controls-Problemen
- Regeln für eingehenden und ausgehenden Traffic.
- Richtlinien für eingehenden und ausgehenden Traffic konfigurieren.
- Eintrag erstellen.
- Eintrag abonnieren.
- Weitere Informationen zur Freigaben von Audit-Logs