VPC Service Controls für BigQuery
Auf dieser Seite wird erläutert, wie Sie die Sicherheit von BigQuery-Ressourcen verbessern können, indem Sie mit VPC Service Controls Perimeter erstellen. Diese Perimeter schränken den Zugriff auf und von BigQuery ein und sind unabhängig von den Steuerelementen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM). Sie sind in den folgenden Anwendungsfällen nützlich:
- Datenlecks verhindern, indem der Zugriff auf Ressourcen eingeschränkt wird, mit Ausnahme der Ressourcen, die in den Regeln für ein- und ausgehenden Traffic ausdrücklich zulässig sind.
- Daten sicher aus Drittanbieterquellen oder Google Cloud diensten wie Cloud Storage in BigQuery laden.
- Datenexport aus BigQuery nach Cloud Storage oder zu anderen Zielen steuern.
Weitere Informationen finden Sie unter VPC Service Controls.
Hinweis
- 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.
VPC Service Controls-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 dazu
gcloud access-context-manager levels createden Befehl: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.yamlErsetzen Sie Folgendes:
ACCESS_LEVEL_NAME: die ID der ZugriffsebeneTITLE: der für Menschen lesbare Titel für den Dienstperimeter
Weitere Informationen zum Erstellen von Zugriffsebenen finden Sie in den Beispiel implementierungen.
Schützen Sie die BigQuery-Ressource, indem Sie einen Perimeter erstellen oder aktualisieren. In den folgenden Beispielen wird ein Projekt geschützt. Weitere Anwendungs fälle, z. B. zum Schutz der Datenübertragung aus einem Cloud Storage Bucket in einem anderen Projekt, finden Sie unter Anwendungsfälle.
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_NAMEErsetzen Sie Folgendes:
POLICY_NAME: die ID der ZugriffsrichtlinieACCESS_LEVEL_NAME: die ID der ZugriffsebenePERIMETER: die ID des PerimetersTITLE: der kurze, für Menschen lesbare Titel für den DienstperimeterBIGQUERY_PROJECT_NUMBER: die ID des BigQuery-ProjektsPOLICY_NAME: die ID der Zugriffsrichtlinie
Perimeter aktualisieren
Verwenden Sie den
gcloud access-context-manager perimeters update-Befehl, um einen vorhandenen Perimeter zu aktualisieren:gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yamlErsetzen Sie
BIGQUERY_PERIMETERdurch 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 Dienst perimeter und Probelauf modus zum Testen von Regeln für ein- und ausgehenden Traffic verwenden.
Anwendungsfälle
Die folgenden Anwendungsbeispiele zeigen, wie Sie Daten, die in BigQuery ein- und ausgehen, mit VPC Service Controls schützen.
Daten aus externen Tabellen in einem Cloud Storage-Bucket in einem anderen Projekt abfragen
Die folgenden Beispiele zeigen, wie Sie die Kommunikation zwischen den BigQuery- und Cloud Storage-Projekten selektiv zulassen, wenn sie durch Perimeter getrennt sind.
Aktualisieren Sie die Regeln für ausgehenden Traffic für den Perimeter um das Cloud Storage-Projekt, um dem BigQuery-Projekt den Zugriff auf das Cloud Storage-Projekt zu ermöglichen:
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.yamlErsetzen 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
Aktualisieren Sie die Regeln für ausgehenden Traffic für den Perimeter um das BigQuery-Projekt, um dem Cloud Storage-Projekt den Zugriff auf das BigQuery-Projekt zu ermöglichen:
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.yamlErsetzen Sie Folgendes:
CLOUD_STORAGE_PROJECT_NUMBER: die ID des Cloud Storage-ProjektsPERIMETER: die ID des PerimetersPOLICY_NAME: die ID der Zugriffsrichtlinie
Optional: Wenn der Perimeter, der das BigQuery-Projekt schützt,
storage.googleapis.comals eingeschränkten Dienst enthält, müssen Sie die Regel für 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
Als zusätzliche Sicherheitsebene können Sie VPC Service Controls-Perimeter verwenden, um den Zugriff zwischen BigQuery Omni und einem externen Clouddienst einzuschränken. Weitere Informationen und Beispiele finden Sie unter der VPC Service Controls Konfiguration beim Erstellen einer BigLake-Tabelle für Azure Blob Storage.
Nächste Schritte
- Weitere Informationen zu VPC Service Controls in der BigQuery-Freigabe.
- BigQuery Omni-Zugriff mit einem externen Cloud dienst einschränken
- Risiken und Risikominderung durch VPC Service Controls verstehen.
- Weitere Informationen zu VPC Service Controls-Unterstützung und -Einschränkungen in BigQuery
- Häufige Probleme bei BigQuery und VPC Service Controls beheben