VPC Service Controls für BigQuery Omni einrichten

In diesem Dokument erfahren Sie, wie Sie eine Richtlinie für ausgehenden Traffic einrichten, die den Zugriff auf bestimmte externe Cloud-Ressourcen innerhalb eines VPC Service Controls-Perimeters einschränkt.

Sie können VPC Service Controls-Perimeter verwenden, um den Zugriff von BigQuery Omni auf externe Clouds einzuschränken. VPC Service Controls bietet eine zusätzliche Sicherheitsebene für Google Cloud-Dienste, die unabhängig von der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) ist. Wenn Sie beispielsweise VPC Service Controls-Perimeter einrichten, können Sie Exporte aus Ihren BigQuery Omni-Tabellen in einen bestimmten S3-Bucket beschränken.

Weitere Informationen zu VPC Service Controls finden Sie im Überblick über VPC Service Controls.

Vorbereitung

Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Konfigurieren von Dienstperimetern haben. Eine Liste der IAM-Rollen, die zum Konfigurieren von VPC Service Controls erforderlich sind, finden Sie unter Zugriffssteuerung mit IAM in der Dokumentation zu VPC Service Controls.

VPC Service Controls mithilfe der Console einrichten

  1. Klicken Sie im Navigationsmenü der Console auf Sicherheit und dann auf VPC Service Controls.

    Zu „VPC Service Controls“

  2. Zum Einrichten von VPC Service Controls für BigQuery Omni folgen Sie den Schritten in der Anleitung Dienstperimeter erstellen und führen Sie im Bereich Regeln für ausgehenden Traffic die folgenden Schritte aus:

    1. Klicken Sie im Bereich Regeln für ausgehenden Traffic auf Regel hinzufügen.

    2. Wählen Sie im Abschnitt FROM-Attribute des API-Clients eine Option aus der Liste Identität aus.

    3. Wählen Sie TO-Attribute von externen Ressourcen aus.

    4. Klicken Sie auf Externe Ressourcen hinzufügen, um eine externe Ressource hinzuzufügen.

    5. Geben Sie im Dialogfeld Externe Ressource hinzufügen unter Externer Ressourcenname einen gültigen Ressourcennamen ein. Beispiel:

      • Für Amazon S3: s3://BUCKET_NAME

        Ersetzen Sie BUCKET_NAME durch den Namen Ihres Amazon S3-Buckets.

      • Für Azure Storage: azure://myaccount.blob.core.windows.net/CONTAINER_NAME

        Ersetzen Sie CONTAINER NAME durch den Namen Ihres Azure Storage-Containers.

      Eine Liste der Regelattribute für ausgehenden Traffic finden Sie unter Referenz zu Regeln für ausgehenden Traffic.

    6. Wählen Sie die Methoden aus, die Sie für Ihre externen Ressourcen zulassen möchten:

      1. Wenn Sie alle Methoden zulassen möchten, wählen Sie in der Liste Methoden die Option Alle Methoden.
      2. Wenn Sie bestimmte Methoden zulassen möchten, wählen Sie Ausgewählte Methode aus, klicken Sie auf Methoden auswählen und wählen Sie dann die Methoden aus, die Sie für Ihre externen Ressourcen zulassen möchten.
    7. Klicken Sie auf Perimeter erstellen.

VPC Service Controls mithilfe der gcloud CLI einrichten

So richten Sie VPC Service Controls mit der gcloud CLI ein:

  1. Legen Sie die Standardzugriffsrichtlinie fest.
  2. Erstellen Sie die Eingabedatei für die Richtlinie für ausgehenden Traffic.
  3. Fügen Sie die Richtlinie für ausgehenden Traffic hinzu.

Standardzugriffsrichtlinie festlegen

Eine Zugriffsrichtlinie ist ein organisationsweiter Container für Zugriffsebenen und Dienstperimeter. Informationen zum Festlegen einer Standardzugriffsrichtlinie oder zum Abrufen eines Zugriffsrichtliniennamens finden Sie unter Zugriffsrichtlinie verwalten.

Eingabedatei für die Richtlinie für ausgehenden Traffic erstellen

Ein Regelblock für ausgehenden Traffic definiert den zulässigen Zugriff innerhalb eines Perimeters auf Ressourcen außerhalb dieses Perimeters. Bei externen Ressourcen definiert das Attribut externalResources die externen Ressourcenpfade, die den Zugriff innerhalb Ihres VPC Service Controls-Perimeters zulassen.

Ausgangsregeln können mithilfe einer JSON-Datei oder einer YAML-Datei konfiguriert werden. Im folgenden Beispiel wird das .yaml-Format verwendet:

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
      *OR*
      - permission: "externalResource.read"
    externalResources:
      - EXTERNAL_RESOURCE_PATH
  egressFrom:
    identityType: IDENTITY_TYPE
    *OR*
    identities:
    - serviceAccount:SERVICE_ACCOUNT
  • egressTo: Startet den to-Block, mit dem zugelassene Dienstvorgänge in Google Cloud-Ressourcen in angegebenen Projekten außerhalb des Perimeters aufgeführt werden.

  • operations: Die Liste der zugänglichen Dienste und Aktionen/Methoden, auf die ein Client zugreifen darf, der die from-Block-Bedingungen erfüllt.

  • serviceName: Für BigQuery Omni auf bigquery.googleapis.com festlegen.

  • methodSelectors: Eine Liste der Methoden, auf die ein Client Zugriff hat, der die from-Block-Bedingungen erfüllt. Eine Liste der Methoden und Berechtigungen für Dienste finden Sie unter Unterstützte Einschränkungen für Dienstmethoden.

  • method oder permission: Das Feld method kann eine gültige Dienstmethode sein oder auf \"*\" gesetzt werden, um den Zugriff auf alle Methoden des angegebenen Dienstes zu ermöglichen.

    Das permission-Feld muss eine gültige Dienstberechtigung sein, z. B. \"*\", externalResource.read oder externalResource.write. Der Zugriff auf die angegebenen Ressourcen außerhalb des Perimeters ist für Vorgänge zugelassen, für die diese Berechtigung erforderlich ist.

  • externalResources: eine Liste externer Ressourcen, auf die Clients innerhalb eines Perimeters zugreifen können. Ersetzen Sie EXTERNAL_RESOURCE_PATH entweder durch einen gültigen AWS S3-Bucket wie s3://bucket_name oder durch einen Azure-Speicherpfad wie azure://myaccount.blob.core.windows.net/container_name.

  • egressFrom: Startet den from-Block, mit dem zugelassene Dienstvorgänge in Google Cloud-Ressourcen in angegebenen Projekten innerhalb des Perimeters aufgeführt werden.

  • identityType oder identities: Das Attribut identityType definiert die Identitätstypen, die für den Zugriff auf die angegebenen Ressourcen außerhalb des Perimeters verwendet werden können. Ersetzen Sie IDENTITY_TYPE durch einen der folgenden gültigen Werte:

    • ANY_IDENTITY zum Zulassen aller Identitäten.
    • ANY_USER_ACCOUNT zum Zulassen aller Nutzer.
    • ANY_SERVICE_ACCOUNT zum Zulassen aller Dienstkonten.

    Das Attribut identities ist eine Liste von Dienstkonten, die auf die angegebenen Ressourcen außerhalb des Perimeters zugreifen können.

  • serviceAccount (optional): Ersetzen Sie SERVICE_ACCOUNT durch das Dienstkonto, das auf die angegebenen Ressourcen außerhalb des Perimeters zugreifen kann.

Beispiele

Das folgende Beispiel zeigt eine Richtlinie, die ausgehende Vorgänge innerhalb des Perimeters zum S3-Standort s3://mybucket in AWS zulässt.

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
    externalResources:
      - s3://mybucket
      - s3://mybucket2
  egressFrom:
    identityType: ANY_IDENTITY

Im folgenden Beispiel werden ausgehende Vorgänge an einen Azure Storage-Bucket zugelassen:

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
    externalResources:
      - azure://myaccount.blob.core.windows.net/mycontainer
  egressFrom:
    identityType: ANY_IDENTITY

Weitere Informationen zu Richtlinien für ausgehenden Traffic finden Sie in der Referenz zu Regeln für ausgehenden Traffic.

Richtlinie für ausgehenden Traffic hinzufügen

Verwenden Sie den Befehl gcloud access-context-manager perimeters create, um die Richtlinie für ausgehenden Traffic beim Erstellen eines neuen Dienstperimeters hinzuzufügen. Mit dem folgenden Befehl wird beispielsweise ein neuer Perimeter namens omniPerimeter erstellt, der das Projekt mit der Projektnummer 12345 enthält, die BigQuery API beschränkt und eine Richtlinie für ausgehenden Traffic hinzugefügt, die in der Datei egress.yaml definiert ist:

gcloud access-context-manager perimeters create omniPerimeter \
    --title="Omni Perimeter" \
    --resources=projects/12345 \
    --restricted-services=bigquery.googleapis.com \
    --egress-policies=egress.yaml

Verwenden Sie den Befehl gcloud access-context-manager perimeters update, um die Richtlinie für ausgehenden Traffic zu einem vorhandenen Dienstperimeter hinzuzufügen. Mit dem folgenden Befehl wird beispielsweise eine in der Datei egress.yaml definierte Richtlinie für ausgehenden Traffic zu einem vorhandenen Dienstperimeter mit dem Namen omniPerimeter hinzugefügt:

gcloud access-context-manager perimeters update omniPerimeter
    --set-egress-policies=egress.yaml

Perimeter prüfen

Verwenden Sie den Befehl gcloud access-context-manager perimeters describe, um den Perimeter zu prüfen:

gcloud access-context-manager perimeters describe PERIMETER_NAME

Ersetzen Sie PERIMETER_NAME durch den Namen des Perimeters.

Der folgende Befehl beschreibt beispielsweise den Perimeter omniPerimeter:

gcloud access-context-manager perimeters describe omniPerimeter

Weitere Informationen finden Sie unter Dienstperimeter verwalten.

Nächste Schritte