VPC Service Controls-Regeln für die BigQuery-Freigabe konfigurieren

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. Sie konfigurieren diese Regeln zwischen einem Aufruferprojekt, also dem Netzwerk- oder Clientprojekt von Google Cloud , das eine Anfrage initiiert, z. B. eine SQL-Abfrage oder einen Google Cloud CLI-Befehl, und den Projekten, die Ihre Datenaustausche, Einträge und Datasets hosten.

Bevor Sie diese Regeln konfigurieren, sollten Sie mit VPC Service Controls-Perimetern, freigegebenen Datasets, Datenpools, Einträgen und verknüpften Datasets vertraut sein.

Beschränkungen

BigQuery Sharing unterstützt keine methodenbasierten Regeln. Sie müssen method: '*' angeben, um alle Methoden in Ihren Regeln für ein- und ausgehenden Traffic zuzulassen:

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

Wenn Dienstperimeter auch BigQuery-Ressourcen schützen, müssen Sie Regeln für ein- und ausgehenden Traffic für den BigQuery-Dienst zulassen. Das Zulassen von Regeln für eingehenden und ausgehenden Traffic ist beim Erstellen eines Datenpools nicht erforderlich. Die Regeln für eingehenden und ausgehenden Traffic für BigQuery ähneln denen für BigQuery Sharing:

- ingressTo:
    operations:
      - methodSelectors:
          - method: '*'
        serviceName: bigquery.googleapis.com
    resources:
      - projects/PROJECT_NUMBER

Ersetzen Sie PROJECT_NUMBER durch die Projektnummer des Zielprojekts, das durch den Dienstperimeter geschützt ist.

Datenaustausch erstellen

Im folgenden Diagramm befinden sich das Aufruferprojekt und das Projekt, das den Datenpool enthält, in unterschiedlichen Dienstperimetern:

VPC Service Controls-Regeln beim Erstellen eines Datenaustauschs.

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

Abbildung 1 zeigt die folgenden Komponenten:

  • Aufrufer: ein BigQuery Sharing-Administrator.
  • Projekt R: das Aufruferprojekt.
  • Projekt E: Das Projekt, in dem der Datenpool und die Einträge gehostet werden.

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:

VPC Service Controls-Regeln beim Erstellen eines Eintrags.

Abbildung 2. VPC Service Controls-Regeln zum Erstellen eines Eintrags.

Abbildung 2 zeigt die folgenden Komponenten:

  • Aufrufer: ein BigQuery Sharing-Administrator oder -Publisher.
  • Projekt R: das Aufruferprojekt.
  • Projekt E: Das Projekt, in dem der Datenpool und die Einträge gehostet werden.
  • Projekt S: Das Projekt, in dem das freigegebene Dataset gehostet wird.

Wenn Sie als BigQuery Sharing-Publisher 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:

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 diesen Eintrag in verschiedenen Dienstperimetern:

VPC Service Controls-Regeln beim Abonnieren eines Eintrags.

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

Abbildung 3 zeigt die folgenden Komponenten:

  • Aufrufer: ein BigQuery Sharing-Abonnent.
  • Projekt R: das Aufruferprojekt.
  • Projekt E: Das Projekt, in dem der Datenpool und die Einträge gehostet werden.
  • Projekt L: das Projekt, in dem das verknüpfte Dataset gehostet wird.

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 ein VPC Service Controls-Perimeter mit IP-basierten Einschränkungen Ihr Google Cloud -Projekt schützt, blockiert der Perimeter möglicherweise den Hintergrund-Worker, der von der Google-Infrastruktur stammt, und verhindert die Synchronisierung des verknüpften Datasets.

Damit der Hintergrund-Worker das verknüpfte Dataset aktualisieren kann, konfigurieren Sie Ihre Regeln für eingehenden oder ausgehenden Traffic so, dass der aufrufende Nutzer oder das Dienstkonto, das den API-Aufruf ausführt, die IP-basierten Einschränkungen umgeht.

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

Alternativ können Sie die Richtlinie für ausgehenden Traffic im Perimeter des Publishers ändern. Fügen Sie dazu die aufrufende Identität der Liste identities in der Regel für ausgehenden Traffic für das Abonnentenprojekt hinzu:

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

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

Abbildung 4. VPC Service Controls-Regeln für die Abfrage eines verknüpften Datasets.

Abbildung 4 zeigt die folgenden Komponenten:

  • Aufrufer: ein BigQuery Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
  • Projekt R: das Aufruferprojekt.
  • Projekt L: das Projekt, in dem das verknüpfte Dataset gehostet wird.
  • Projekt V: Das Projekt, in dem das freigegebene Dataset mit der Tabelle gehostet wird.

Wenn Sie als BigQuery Sharing-Abonnent eine Tabelle 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

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 verschiedenen Projekten befinden.

Die Ansicht und die Basistabellen befinden sich in verschiedenen Projekten.

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:

Die Ansicht und die Basistabellen befinden sich in verschiedenen Projekten.

Abbildung 5. VPC Service Controls-Regeln zum Abfragen einer Ansicht, wenn sich die Ansicht und die Basistabellen in verschiedenen Projekten befinden.

Abbildung 5 zeigt die folgenden Komponenten:

  • Aufrufer: ein BigQuery Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
  • Projekt R: das Aufruferprojekt.
  • Projekt L: das Projekt, in dem das verknüpfte Dataset gehostet wird.
  • Projekt S: Das Projekt, in dem das freigegebene Dataset gehostet wird.
  • Projekt V: Das Projekt, in dem das Dataset mit den Basistabellen gehostet wird, die mit der Ansicht verknüpft sind.

Als BigQuery Sharing-Abonnent müssen Sie beim Abfragen einer Ansicht in einem verknüpften Dataset 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

Die Ansicht und die Basistabellen befinden sich im selben Projekt.

Im folgenden Diagramm befinden sich die Ansicht (Projekt V) und die mit der Ansicht verknüpfte Basistabelle (Projekt V) im selben Projekt:

Die Ansicht und die Basistabellen befinden sich im selben Projekt.

Abbildung 6. VPC Service Controls-Regeln zum Abfragen einer Ansicht, wenn sich die Ansicht und die Basistabellen im selben Projekt befinden.

Abbildung 6 zeigt die folgenden Komponenten:

  • Aufrufer: ein BigQuery Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
  • Projekt R: das Aufruferprojekt.
  • Projekt L: das Projekt, in dem das verknüpfte Dataset gehostet wird.
  • Projekt V: Das Projekt, in dem sowohl die Ansicht als auch die mit der Ansicht verknüpften Basistabellen gehostet werden.

Als BigQuery Sharing-Abonnent müssen Sie beim Abfragen einer Ansicht in einem verknüpften Dataset 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:

Autorisierte Ansicht und Basistabellen im selben Projekt.

Abbildung 7. VPC Service Controls-Regeln zum Abfragen einer autorisierten Ansicht in einem verknüpften Dataset.

Abbildung 7 zeigt die folgenden Komponenten:

  • Aufrufer: ein BigQuery Sharing-Abonnent oder ein BigQuery-Jobnutzer des verknüpften Datasets.
  • Projekt R: das Aufruferprojekt.
  • Projekt L: das Projekt, in dem das verknüpfte Dataset gehostet wird.
  • Projekt V: Das Projekt, in dem sowohl die autorisierte Ansicht als auch die mit der Ansicht verknüpften Basistabellen gehostet werden.

Wenn Sie eine autorisierte Ansicht im verknüpften Dataset abfragen, müssen Sie als BigQuery Sharing-Abonnent 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

Nächste Schritte