VPC Service Controls est une fonctionnalité Google Cloud qui vous permet de configurer un périmètre pour vous protéger contre l'exfiltration de données. Ce guide explique comment utiliser VPC Service Controls avec Dataform pour renforcer la sécurité de vos services.
VPC Service Controls offre un niveau de protection supplémentaire pour les servicesGoogle Cloud , indépendamment de la protection fournie par Identity and Access Management (IAM).
Pour en savoir plus sur VPC Service Controls, consultez la page Présentation de VPC Service Controls.
Limites
Dataform est compatible avec VPC Service Controls, mais avec les limites suivantes :
Vous devez définir la règle d'administration
dataform.restrictGitRemotes.Dataform et BigQuery doivent être restreints par le même périmètre de service VPC Service Controls.
Pour permettre à des utilisateurs spécifiques de s'authentifier avec les identifiants de leur compte Google lorsqu'ils planifient des exécutions, déclenchent manuellement des exécutions ou exécutent des pipelines avec VPC Service Controls configuré, vous devez ajouter leurs identités utilisateur à vos règles d'entrée. Pour en savoir plus, consultez Mettre à jour les règles d'entrée et de sortie pour un périmètre de service et Documentation de référence sur les règles d'entrée.
Considérations de sécurité
Lorsque vous configurez un périmètre VPC Service Controls pour Dataform, vous devez examiner les autorisations accordées à vos agents et comptes de service Dataform pour vérifier qu'elles correspondent à votre architecture de sécurité.
Selon les autorisations que vous accordez à l'agent de service Dataform ou au compte de service personnalisé, cet agent de service ou ce compte de service peut avoir accès aux données BigQuery ou Secret Manager du projet auquel il appartient, quels que soient les contrôles du service VPC. Dans ce cas, la restriction de Dataform avec un périmètre VPC Service Controls ne bloque pas la communication avec BigQuery ni Secret Manager.
Vous devez bloquer la communication avec BigQuery si vous n'avez pas besoin d'exécuter d'invocations de workflow provenant de vos dépôts Dataform. Pour en savoir plus sur le blocage de la communication avec BigQuery, consultez Bloquer la communication avec BigQuery.
Vous devez bloquer la communication avec Secret Manager si aucun de vos dépôts Dataform ne se connecte à un dépôt Git tiers. Pour en savoir plus sur le blocage de la communication avec Secret Manager, consultez Bloquer la communication avec Secret Manager.
Avant de commencer
Avant de configurer un périmètre de service VPC Service Controls pour Dataform, suivez le guide Restreindre les dépôts distants pour définir la règle d'administration dataform.restrictGitRemotes.
La règle d'administration dataform.restrictGitRemotes est requise pour s'assurer que les vérifications VPC Service Controls sont appliquées lors de l'utilisation de Dataform et que l'accès tiers aux dépôts Git Dataform est limité.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer un périmètre de service VPC Service Controls, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Access Context Manager (roles/accesscontextmanager.policyEditor) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour en savoir plus sur les autorisations VPC Service Controls, consultez Contrôle des accès avec IAM.
Configurez VPC Service Controls
Vous pouvez restreindre Dataform avec un périmètre de service VPC Service Controls de différentes manières :
- Ajoutez Dataform à un périmètre de service existant qui restreint BigQuery.
- Créez un périmètre de service qui restreint à la fois Dataform et BigQuery.
Pour ajouter Dataform à un périmètre de service qui limite BigQuery, suivez le guide Mettre à jour un périmètre de service dans la documentation de VPC Service Controls.
Pour créer un périmètre de service qui restreint à la fois Dataform et BigQuery, suivez le guide Créer un périmètre de service dans la documentation de VPC Service Controls.
Facultatif : Bloquer la communication avec BigQuery
La façon dont Dataform communique avec BigQuery dépend du type de compte de service utilisé dans Dataform.
Utiliser un compte de service personnalisé
Les comptes de service personnalisés utilisent les autorisations et les rôles suivants pour communiquer avec BigQuery :
- Autorisation
bigquery.jobs.createaccordée au compte de service personnalisé. - Le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator) est attribué à l'agent de service Dataform par défaut sur le compte de service personnalisé.
Vous pouvez bloquer la communication entre un compte de service personnalisé et BigQuery de l'une des manières suivantes :
Révoquez tous les rôles prédéfinis et personnalisés accordés au niveau du projet au compte de service personnalisé qui contient l'autorisation
bigquery.jobs.create. Pour obtenir la liste de ces rôles, consultez Rôles disposant de l'autorisationbigquery.jobs.create. Pour révoquer des rôles, suivez le guide Gérer l'accès aux projets, aux dossiers et aux organisations.Révoquez le rôle Créateur de jetons du compte de service accordé à l'agent de service Dataform par défaut sur le compte de service personnalisé sélectionné. Pour révoquer le rôle de créateur de jetons du compte de service, suivez le guide Gérer l'accès aux comptes de service.
Utiliser l'agent de service Dataform par défaut
L'agent de service Dataform par défaut utilise l'autorisation bigquery.jobs.create pour communiquer avec BigQuery. Vous accordez les rôles d'agent de service Dataform par défaut qui contiennent cette autorisation lorsque vous accordez les rôles requis pour que Dataform exécute des workflows dans BigQuery.
Pour bloquer la communication entre l'agent de service Dataform par défaut et BigQuery, vous devez révoquer tous les rôles prédéfinis et personnalisés qui contiennent l'autorisation bigquery.jobs.create et qui ont été accordés à l'agent de service Dataform par défaut.
Pour obtenir la liste de ces rôles, consultez Rôles disposant de l'autorisation bigquery.jobs.create.
Pour révoquer des rôles, suivez le guide Gérer l'accès aux projets, aux dossiers et aux organisations.
Rôles disposant de l'autorisation bigquery.jobs.create
L'autorisation bigquery.jobs.create est incluse dans les rôles IAM BigQuery prédéfinis suivants qui doivent être révoqués :
- Administrateur BigQuery (
roles/bigquery.admin) - Utilisateur de job BigQuery (
roles/bigquery.jobUser) - Utilisateur BigQuery (
roles/bigquery.user) - Administrateur BigQuery Studio (
roles/bigquery.studioAdmin) - Utilisateur BigQuery Studio (
roles/bigquery.studioUser)
Facultatif : Bloquer la communication avec Secret Manager
Dataform utilise l'autorisation secretmanager.versions.access pour accéder aux secrets Secret Manager individuels. Vous accordez cette autorisation à l'agent de service Dataform par défaut sur un secret Secret Manager sélectionné lorsque vous associez un dépôt Dataform à un dépôt tiers.
Pour bloquer la communication entre Dataform et Secret Manager, vous devez révoquer l'accès à tous les secrets de l'agent de service Dataform par défaut.
Pour révoquer l'accès à un secret Secret Manager depuis l'agent de service Dataform par défaut, suivez le guide Gérer l'accès aux secrets dans la documentation Secret Manager. Vous devez révoquer tous les rôles prédéfinis et personnalisés qui contiennent l'autorisation secretmanager.versions.access accordée à l'agent de service Dataform par défaut sur le secret sélectionné.
L'autorisation secretmanager.versions.access est incluse dans les rôles IAM Secret Manager prédéfinis suivants :
- Administrateur Secret Manager (
roles/secretmanager.admin) - Accesseur de secrets Secret Manager (
roles/secretmanager.secretAccessor) - Gestionnaire de versions de secrets Secret Manager (
roles/secretmanager.secretVersionManager)
Étape suivante
- Pour en savoir plus sur VPC Service Controls, consultez la page Présentation de VPC Service Controls.
- Pour en savoir plus sur les règles d'administration, consultez la présentation du service de règles d'administration.
- Pour en savoir plus sur les comptes de service dans Dataform, consultez À propos des agents de service Dataform et des comptes de service personnalisés.