VPC Service Controls pour BigQuery
Cette page explique comment renforcer la sécurité des ressources BigQuery en créant des périmètres avec VPC Service Controls. Ces périmètres limitent l'accès à BigQuery et en provenance de BigQuery, et sont indépendants des contrôles IAM (Identity and Access Management). Ils sont utiles dans les cas d'utilisation suivants :
- Prévenir les fuites de données en limitant l'accès aux ressources, sauf celles spécifiquement autorisées dans les règles d'entrée et de sortie.
- Charger des données de manière sécurisée dans BigQuery à partir de sources tierces ou de services Google Cloud, tels que Cloud Storage
- Contrôler l'exportation des données de BigQuery vers Cloud Storage ou d'autres cibles
Pour en savoir plus, consultez la page Présentation de VPC Service Controls.
Avant de commencer
- Pour obtenir les autorisations nécessaires à la configuration des périmètres de service, consultez la section Contrôle des accès avec IAM pour VPC Service Controls.
- Vous devez disposer d'une règle d'accès pour votre organisation. Pour en savoir plus, consultez la section Créer une règle d'accès.
Créer le périmètre
L'exemple suivant montre comment créer un périmètre VPC Service Controls qui limite la plage d'adresses IP externes pouvant accéder à un projet BigQuery.
Créez un niveau d'accès qui n'autorise l'accès qu'à une plage d'adresses IP spécifique (par exemple, celles d'un réseau d'entreprise). Pour le créer, utilisez la commande
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.yaml
Remplacez les éléments suivants :
ACCESS_LEVEL_NAME
: ID du niveau d'accèsTITLE
: titre lisible du périmètre de service
Pour en savoir plus sur la création de niveaux d'accès, consultez les exemples d'implémentations.
Protégez la ressource BigQuery en créant ou en mettant à jour un périmètre. Les exemples suivants protègent un projet. Pour d'autres cas d'utilisation, tels que la protection du transfert de données à partir d'un bucket Cloud Storage dans un autre projet, consultez les cas d'utilisation.
Créer un périmètre
Pour créer un périmètre afin de protéger le projet BigQuery, utilisez la commande
gcloud access-context-manager perimeters create
: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
Remplacez les éléments suivants :
POLICY_NAME
: ID de la règle d'accès.ACCESS_LEVEL_NAME
: ID du niveau d'accèsPERIMETER
: ID du périmètreTITLE
: titre court et lisible du périmètre de serviceBIGQUERY_PROJECT_NUMBER
: ID du projet BigQueryPOLICY_NAME
: ID de la règle d'accès.
Mettre à jour le périmètre
Pour mettre à jour un périmètre existant, utilisez la commande
gcloud access-context-manager perimeters update
:gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yaml
Remplacez
BIGQUERY_PERIMETER
par l'ID du périmètre qui protège la ressource BigQuery.
Tester le périmètre
Testez votre périmètre VPC Service Controls avant de l'appliquer. Pour en savoir plus, consultez Mode de simulation pour les périmètres de service et Utiliser le mode de simulation pour tester les règles d'entrée ou de sortie.
Cas d'utilisation
Les exemples de cas d'utilisation suivants montrent comment protéger les données entrantes et sortantes de BigQuery avec VPC Service Controls.
Interroger les données de table externe à partir d'un bucket Cloud Storage dans un autre projet
Les exemples suivants montrent comment autoriser de manière sélective la communication entre les projets BigQuery et Cloud Storage lorsqu'ils sont séparés par des périmètres.
Autorisez le projet BigQuery à accéder au projet Cloud Storage en mettant à jour les règles de sortie du périmètre autour du projet Cloud Storage :
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
Remplacez les éléments suivants :
BIGQUERY_PROJECT_NUMBER
: ID du projet BigQueryCLOUD_STORAGE_PERIMETER
: ID du périmètre protégeant les ressources Cloud StoragePOLICY_NAME
: ID de la règle d'accès.
Autorisez le projet Cloud Storage à accéder au projet BigQuery en mettant à jour les règles de sortie pour le périmètre autour du projet BigQuery :
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
Remplacez les éléments suivants :
CLOUD_STORAGE_PROJECT_NUMBER
: ID du projet Cloud StoragePERIMETER
: ID du périmètrePOLICY_NAME
: ID de la règle d'accès.
Facultatif : Si le périmètre qui protège le projet BigQuery inclut
storage.googleapis.com
en tant que service restreint, vous devez mettre à jour la règle d'entrée :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
Importer et exporter des données depuis BigQuery Omni
Vous pouvez utiliser les périmètres VPC Service Controls en tant que couche de défense supplémentaire pour limiter l'accès entre BigQuery Omni et un service cloud externe. Pour en savoir plus et obtenir des exemples, consultez la configuration de VPC Service Controls lorsque vous créez une table BigLake Azure Blob Storage.
Étape suivante
- En savoir plus sur VPC Service Controls dans Analytics Hub
- Découvrez comment limiter l'accès à BigQuery Omni avec un service cloud externe.
- Comprendre les risques et leur atténuation grâce à VPC Service Controls.
- En savoir plus sur la compatibilité et les limites de VPC Service Controls dans BigQuery.
- Résoudre les problèmes courants liés à BigQuery et VPC Service Controls.