VPC Service Controls für BigQuery
Auf dieser Seite wird beschrieben, wie Sie die Sicherheit von BigQuery-Ressourcen erhöhen, indem Sie Perimeter mit VPC Service Controls erstellen. Diese Perimeter beschränken den Zugriff auf und von BigQuery und sind unabhängig von IAM-Steuerelementen (Identity and Access Management). Sie sind in den folgenden Anwendungsfällen nützlich:
- Verhindern von Datenlecks durch Einschränken des Zugriffs auf Ressourcen, mit Ausnahme der Ressourcen, die in den Regeln für eingehenden und ausgehenden Traffic ausdrücklich zugelassen sind.
- Sicheres Laden von Daten aus Drittanbieterquellen oder Google Cloud -Diensten wie Cloud Storage in BigQuery.
- Datenexport aus BigQuery nach Cloud Storage oder zu anderen Zielen steuern.
Weitere Informationen finden Sie in der Übersicht zu VPC Service Controls.
Hinweis
- Informationen zum Abrufen der 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 externer IP-Adressen einschränkt, die auf ein BigQuery-Projekt zugreifen können.
Erstellen Sie eine Zugriffsebene, die den Zugriff nur auf einen bestimmten Bereich von IP-Adressen zulässt, z. B. auf Adressen innerhalb eines Unternehmensnetzwerks. Verwenden Sie zum Erstellen den Befehl
gcloud access-context-manager levels create: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 menschenlesbare Titel für den Dienstperimeter
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 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, menschenlesbare Titel für den DienstperimeterBIGQUERY_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.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 Dienstperimeter und Probelaufmodus zum Testen von Richtlinien für ein- oder ausgehenden Traffic verwenden.
Anwendungsfälle
Die folgenden Anwendungsbeispiele zeigen, wie Sie Daten, die in BigQuery ein- und ausgehen, mit VPC Service Controls schützen können.
Externe Tabellendaten 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.
Erlauben Sie dem BigQuery-Projekt den 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.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
Gewähren Sie dem Cloud Storage-Projekt Zugriff auf das BigQuery-Projekt, indem Sie die Regeln für 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.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 in der VPC Service Controls-Konfiguration für das Erstellen einer BigLake-Tabelle in Azure Blob Storage.
Nächste Schritte
- VPC Service Controls-Regeln für die BigQuery-Freigabe konfigurieren
- BigQuery Omni-Zugriff mit einem externen Clouddienst einschränken
- Risiken und Risikominderung durch VPC Service Controls
- Weitere Informationen zur Unterstützung und zu Einschränkungen von VPC Service Controls in BigQuery
- Fehlerbehebung bei häufigen Problemen mit BigQuery und VPC Service Controls.