VPC Service Controls für BigQuery
Auf dieser Seite erfahren Sie, wie Sie die Sicherheit von BigQuery-Ressourcen durch Erstellen von Perimetern mit VPC Service Controls erhöhen. Diese Perimeter schränken den Zugriff auf und von BigQuery ein und sind unabhängig von IAM-Kontrollen (Identity and Access Management). Sie eignen sich für folgende Anwendungsfälle:
- Datenlecks verhindern, indem der Zugriff auf Ressourcen eingeschränkt wird, mit Ausnahme derjenigen, die in den Regeln für eingehenden und ausgehenden Traffic ausdrücklich zugelassen sind.
- Daten aus Drittanbieterquellen oder Google Cloud-Diensten wie Cloud Storage sicher in BigQuery laden
- Datenexport aus BigQuery nach Cloud Storage oder anderen Zielen steuern
Weitere Informationen finden Sie in der Übersicht zu VPC Service Controls.
Hinweise
- Informationen zu den Berechtigungen, die Sie zum Konfigurieren von Dienstperimetern benötigen, finden Sie unter Zugriffssteuerung mit IAM für VPC Service Controls.
- Sie benötigen eine Zugriffsrichtlinie für Ihre Organisation. Weitere Informationen finden Sie unter Zugriffsrichtlinie erstellen.
Perimeter erstellen
Im folgenden Beispiel wird gezeigt, wie Sie einen VPC Service Controls-Perimeter erstellen, der den Bereich der externen IP-Adressen einschränkt, die auf ein BigQuery-Projekt zugreifen können.
Erstellen Sie eine Zugriffsebene, die nur den Zugriff auf einen bestimmten Bereich von IP-Adressen zulässt, z. B. auf die IP-Adressen innerhalb eines Unternehmensnetzwerks. Verwenden Sie den Befehl
gcloud access-context-manager levels create
, um sie zu erstellen:echo """ - ipSubnetworks: - 162.222.181.0/24 - 2001:db8::/48 """ > level.yaml gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title="TITLE" --basic-level-spec=level.yaml
Ersetzen Sie Folgendes:
ACCESS_LEVEL_NAME
: die ID der ZugriffsebeneTITLE
: Der für Nutzer lesbare Titel des Dienstperimeters
Weitere Informationen zum Erstellen von Zugriffsebenen finden Sie in den Beispielimplementierungen.
Schützen Sie die BigQuery-Ressource, indem Sie einen Perimeter erstellen oder aktualisieren. In den folgenden Beispielen wird ein Projekt geschützt. Weitere Anwendungsfälle, z. B. zum Schutz der Datenübertragung von einem Cloud Storage-Bucket in ein anderes Projekt, finden Sie in den Anwendungsfällen.
Perimeter erstellen
Verwenden Sie den Befehl
gcloud access-context-manager perimeters create
, um einen neuen Perimeter zum Schutz des BigQuery-Projekts zu erstellen:echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAME
Ersetzen Sie Folgendes:
POLICY_NAME
: die ID der ZugriffsrichtlinieACCESS_LEVEL_NAME
: die ID der ZugriffsebenePERIMETER
: die ID des PerimetersTITLE
: Der kurze, visuell lesbare Titel des DienstperimetersBIGQUERY_PROJECT_NUMBER
: die ID des BigQuery-ProjektsPOLICY_NAME
: die ID der Zugriffsrichtlinie
Perimeter aktualisieren
Verwenden Sie den Befehl
gcloud access-context-manager perimeters update
, um einen vorhandenen Perimeter zu aktualisieren:gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yaml
Ersetzen Sie
BIGQUERY_PERIMETER
durch die ID des Perimeters, der die BigQuery-Ressource schützt.
Perimeter testen
Testen Sie den VPC Service Controls-Perimeter, bevor Sie ihn erzwingen. Weitere Informationen finden Sie unter Probelaufmodus für Dienstperimeter und Mit dem Modus „Probelauf“ Ingress- oder Egress-Richtlinien testen.
Anwendungsfälle
In den folgenden Anwendungsbeispielen wird gezeigt, wie Sie Daten, die in BigQuery eingehen und aus BigQuery ausgehen, mit VPC Service Controls schützen.
Daten aus externen Tabellen aus einem Cloud Storage-Bucket in einem anderen Projekt abfragen
In den folgenden Beispielen wird gezeigt, wie Sie die Kommunikation zwischen den BigQuery- und Cloud Storage-Projekten selektiv zulassen, wenn sie durch Perimeter getrennt sind.
Gewähren Sie dem BigQuery-Projekt Zugriff auf das Cloud Storage-Projekt, indem Sie die Regeln für ausgehenden Traffic für den Perimeter um das Cloud Storage-Projekt aktualisieren:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/BIGQUERY_PROJECT_NUMBER """ > egress.yaml gcloud access-context-manager perimeters update CLOUD_STORAGE_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress.yaml
Ersetzen Sie Folgendes:
BIGQUERY_PROJECT_NUMBER
: die ID des BigQuery-ProjektsCLOUD_STORAGE_PERIMETER
: die ID des Perimeters, der die Cloud Storage-Ressourcen schütztPOLICY_NAME
: die ID der Zugriffsrichtlinie
Gewähren Sie dem Cloud Storage-Projekt Zugriff auf das BigQuery-Projekt, indem Sie die Regeln für den ausgehenden Traffic für den Perimeter um das BigQuery-Projekt aktualisieren:
echo """ - egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - projects/CLOUD_STORAGE_PROJECT_NUMBER """ > egress1.yaml gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress1.yaml
Ersetzen Sie Folgendes:
CLOUD_STORAGE_PROJECT_NUMBER
: die ID des Cloud Storage-ProjektsPERIMETER
: die ID des PerimetersPOLICY_NAME
: die ID der Zugriffsrichtlinie
Optional: Wenn
storage.googleapis.com
im Perimeter enthalten ist, der das BigQuery-Projekt schützt, müssen Sie die Regel für den eingehenden Traffic aktualisieren:echo """ - ingressFrom: identityType: ANY_IDENTITY sources: - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME ingressTo: operations: - methodSelectors: - method: '*' serviceName: bigquery.googleapis.com - methodSelectors: - method: '*' serviceName: storage.googleapis.com resources: - '*' """ > ingress.yaml gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \ --resources=BIGQUERY_PROJECT_NUMBER \ --restricted-services=bigquery.googleapis.com \ --ingress-policies=ingress.yaml --policy=POLICY_NAME
Daten aus BigQuery Omni importieren und exportieren
Sie können VPC Service Controls-Perimeter verwenden, um den Zugriff zwischen BigQuery Omni und einem externen Cloud-Dienst als zusätzliche Sicherheitsebene einzuschränken. Weitere Informationen und Beispiele finden Sie in der Konfiguration von VPC Service Controls für das Erstellen einer BigLake-Tabelle in Azure Blob Storage.
Nächste Schritte
- Weitere Informationen zu VPC Service Controls in Analytics Hub
- Informationen zum Einschränken des BigQuery Omni-Zugriffs mit einem externen Cloud-Dienst
- Risiken und Risikominderung durch VPC Service Controls
- Weitere Informationen zur Unterstützung und zu den Einschränkungen von VPC Service Controls in BigQuery
- Fehlerbehebung bei häufigen Problemen mit BigQuery und VPC Service Controls