VPC Service Controls-Regeln freigeben

In diesem Dokument werden die Regeln für eingehenden und ausgehenden Traffic beschrieben, die Sie benötigen, damit Publisher und Abonnenten in BigQuery Sharing (früher Analytics Hub) auf Daten von Projekten mit VPC Service Controls-Perimetern zugreifen können. In diesem Dokument wird davon ausgegangen, dass Sie mit VPC Service Controls-Perimetern, freigegebenen Datasets, Datenpools, Listen und verknüpften Datasets vertraut sind.

Ein Aufruferprojekt ist das Netzwerk- oder Client Google Cloud projekt, 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:

VPC Service Controls-Regel beim Erstellen eines Datenpools.

Abbildung 1. VPC Service Controls-Regeln zum Erstellen eines Datenpools.

In Abbildung 1 sind die folgenden Komponenten beschriftet:

  • Aufrufer: Ein BigQuery Sharing-Administrator.
  • Project R: Das Aufruferprojekt.
  • Projekt E: Hostet den Datenpool und die Einträge.

Wenn Sie als BigQuery Sharing-Administrator einen Datenpool erstellen, der sich in einem anderen Projekt als dem Aufruferprojekt 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
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:

VPC Service Controls-Regel beim Erstellen eines Eintrags.

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.
  • Project 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:

VPC Service Controls-Regel beim Abonnieren eines Eintrags.

Abbildung 3. VPC Service Controls-Regeln zum Abonnieren eines Eintrags.

In Abbildung 3 sind die folgenden Komponenten beschriftet:

  • Aufrufer: Ein Abonnent von BigQuery Sharing.
  • Project 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 ein Angebot aktualisieren, z. B. um die Richtlinie für eingeschränkte Exporte zu ändern, werden diese Änderungen mithilfe eines Hintergrundprozesses in BigQuery-Freigaben auf die zugehörigen verknüpften Datasets übertragen. Wenn Ihr Google Cloud -Projekt durch einen VPC Service Controls-Perimeter mit IP-basierten Einschränkungen geschützt ist, wird der Hintergrundworker, der von der Google-Infrastruktur stammt, möglicherweise blockiert. Dadurch kann das verknüpfte Dataset nicht synchronisiert werden.

Damit der Hintergrund-Worker das verknüpfte Dataset aktualisieren kann, müssen Sie Ihre Ingress- oder Egress-Regeln explizit so konfigurieren, dass der Hauptnutzer oder das Hauptdienstkonto, das den API-Aufruf ausführt, die IP-basierten Einschränkungen umgehen kann.

Wenn Sie die Richtlinie für eingehenden Traffic für den Perimeter des Abonnentenprojekts ändern möchten, fügen Sie eine Regel für eingehenden Traffic hinzu, mit der das aufrufende Hauptkonto von einer beliebigen Quell-IP-Adresse (*) auf den bigquery.googleapis.com-Dienst zugreifen kann:

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: "*"

Alternativ können Sie die Richtlinie für ausgehenden Traffic im Perimeter des Publishers ändern. Prüfen Sie dazu, ob die aufrufende Identität explizit in der Liste identities in der Regel für ausgehenden Traffic für das Abonnentenprojekt hinzugefügt wurde:

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, mit dem der API-Aufruf zum Aktualisieren des Eintrags erfolgt. 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:

VPC Service Controls-Regel beim Abfragen einer Tabelle im verknüpften Dataset.

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.
  • Project 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:

Ansicht und Basistabellen 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.
  • Project R: Das Aufruferprojekt.
  • Projekt L: hostet das verknüpfte Dataset.
  • Projekt S: Hostet das freigegebene Dataset.
  • Projekt V: Hier wird das Dataset gehostet, 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:

Ansicht und Basistabellen befinden sich 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.
  • Project 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 mit der autorisierten Ansicht verknüpfte Basistabelle (Projekt V) im selben Projekt:

autorisierte Ansicht und Basistabellen befinden sich 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.
  • Project 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 nicht erforderlich, wenn Sie einen Datenaustausch erstellen. Die Ingress- und Egress-Regeln 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