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
Klicken Sie im Navigationsmenü der Console auf Sicherheit und dann auf VPC Service Controls.
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:
Klicken Sie im Bereich Regeln für ausgehenden Traffic auf Regel hinzufügen.
Wählen Sie im Abschnitt FROM-Attribute des API-Clients eine Option aus der Liste Identität aus.
Wählen Sie TO-Attribute von externen Ressourcen aus.
Klicken Sie auf Externe Ressourcen hinzufügen, um eine externe Ressource hinzuzufügen.
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.
Wählen Sie die Methoden aus, die Sie für Ihre externen Ressourcen zulassen möchten:
- Wenn Sie alle Methoden zulassen möchten, wählen Sie in der Liste Methoden die Option Alle Methoden.
- 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.
Klicken Sie auf Perimeter erstellen.
VPC Service Controls mithilfe der gcloud CLI einrichten
So richten Sie VPC Service Controls mit der gcloud CLI ein:
- Legen Sie die Standardzugriffsrichtlinie fest.
- Erstellen Sie die Eingabedatei für die Richtlinie für ausgehenden Traffic.
- 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 dento
-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 diefrom
-Block-Bedingungen erfüllt.serviceName
: Für BigQuery Omni aufbigquery.googleapis.com
festlegen.methodSelectors
: Eine Liste der Methoden, auf die ein Client Zugriff hat, der diefrom
-Block-Bedingungen erfüllt. Eine Liste der Methoden und Berechtigungen für Dienste finden Sie unter Unterstützte Einschränkungen für Dienstmethoden.method
oderpermission
: Das Feldmethod
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
oderexternalResource.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 wies3://bucket_name
oder durch einen Azure-Speicherpfad wieazure://myaccount.blob.core.windows.net/container_name
.egressFrom
: Startet denfrom
-Block, mit dem zugelassene Dienstvorgänge in Google Cloud-Ressourcen in angegebenen Projekten innerhalb des Perimeters aufgeführt werden.identityType
oderidentities
: Das AttributidentityType
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.