Ce document explique comment utiliser VPC Service Controls avec Batch. VPC Service Controls vous permet de protéger les ressources et les données des services Google Cloud en isolant des ressources spécifiques dans des périmètres de service. Un périmètre de service bloque les connexions avec les services Google Cloud en dehors du périmètre et toutes les connexions provenant d'Internet qui ne sont pas explicitement autorisées.
- Pour configurer un périmètre de service VPC Service Controls à utiliser avec Batch, consultez Configurer un périmètre de service pour Batch dans ce document.
- Si votre projet ou votre réseau utilise VPC Service Controls pour restreindre l'accès au réseau pour Batch, vous devez configurer vos jobs Batch pour qu'ils s'exécutent dans le périmètre de service requis. Pour savoir comment faire, consultez Créer un job qui s'exécute dans un périmètre de service dans ce document.
Pour en savoir plus sur les concepts de mise en réseau et sur le moment où configurer la mise en réseau, consultez Présentation de la mise en réseau par lot.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires pour utiliser les VPC Service Controls avec Batch, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Pour configurer un périmètre de service :
Éditeur Access Context Manager (
roles/accesscontextmanager.policyEditor
) sur le projet -
Pour créer un job :
-
Éditeur de tâches par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service du job, qui par défaut est le compte de service Compute Engine par défaut
-
Éditeur de tâches par lot (
-
Pour identifier le périmètre de service d'un projet ou d'un réseau :
Lecteur Access Context Manager (
roles/accesscontextmanager.policyReader
) sur le projet -
Pour identifier le réseau et le sous-réseau d'un job :
Lecteur de réseau Compute (
roles/compute.networkViewer
) sur le projet
Pour en savoir plus sur l'attribution de rôles, consultez 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 configurer un périmètre de service :
Éditeur Access Context Manager (
-
Si vous créez un job qui s'exécute dans un périmètre de service, vous devez identifier le réseau que vous souhaitez utiliser pour le job. Le réseau que vous spécifiez pour un job exécuté dans un périmètre de service doit répondre aux exigences suivantes :
- Le réseau est un réseau de cloud privé virtuel (VPC) qui se trouve dans le même projet que le job ou qui est un réseau VPC partagé hébergé par le projet du job ou partagé avec lui.
- Le réseau inclut un sous-réseau à l'emplacement où vous souhaitez exécuter le job.
- Le réseau se trouve dans le périmètre de service requis et utilise l'accès privé à Google pour autoriser l'accès aux domaines des API et des services utilisés par votre job. Pour en savoir plus, consultez la section Configurer un périmètre de service pour Batch dans ce document.
Configurer un périmètre de service pour Batch
Pour configurer un périmètre de service pour Batch, procédez comme suit :
Planifiez la configuration de votre périmètre de service. Pour obtenir une présentation des étapes de configuration des périmètres de service, consultez la documentation de VPC Service Controls sur les périmètres de service : détails et configuration.
Pour utiliser Batch, le périmètre de service doit répondre aux exigences suivantes :
Services restreints : pour sécuriser Batch dans un périmètre de service, vous devez inclure les services Google Cloud requis pour vos jobs Batch dans ce périmètre, tels que les suivants :
- API Batch (
batch.googleapis.com
) - API Cloud Logging (
logging.googleapis.com
) : obligatoire si vous souhaitez que vos jobs écrivent des journaux dans Cloud Logging. (Recommandé) - API Container Registry (
containerregistry.googleapis.com
) : obligatoire si vous envoyez un job qui utilise des conteneurs avec une image provenant de Container Registry. - API Artifact Registry (
artifactregistry.googleapis.com
) : obligatoire si vous envoyez un job qui utilise des conteneurs avec une image provenant d'Artifact Registry. - API Filestore (
file.googleapis.com
) : obligatoire si votre job utilise un partage de fichiers Filestore. - API Cloud Storage (
storage.googleapis.com
) : requise pour certains jobs qui utilisent un bucket Cloud Storage. Obligatoire si vous utilisez une image pour votre job Batch qui n'a pas l'agent de service Batch préinstallé.
Pour savoir comment activer chacun de ces services dans votre périmètre de service, consultez Services accessibles par VPC.
Pour chaque service que vous incluez en plus de Batch, vous devez également vérifier que votre périmètre de service répond aux exigences listées pour ce service dans la documentation Produits et limites compatibles avec VPC Service Controls.
- API Batch (
Réseaux VPC : chaque job Batch nécessite un réseau VPC. Votre périmètre de service doit donc inclure un réseau VPC sur lequel les jobs Batch peuvent s'exécuter. Pour savoir comment configurer un réseau VPC capable d'exécuter vos jobs Batch dans un périmètre de service, consultez les documents suivants :
- Pour obtenir une présentation de l'utilisation des réseaux VPC dans un périmètre de service, consultez Gérer les réseaux VPC dans les périmètres de service.
- Pour savoir comment utiliser l'accès privé à Google avec VPC Service Controls afin de configurer l'accès aux services Google Cloudrequis pour vos jobs Batch, consultez Configurer une connectivité privée aux API et services Google.
- Pour en savoir plus sur les exigences de mise en réseau pour les jobs par lot, consultez Présentation de la mise en réseau des jobs.
Créez un périmètre de service ou mettez à jour un périmètre de service existant pour répondre à ces exigences.
Créer un job qui s'exécute dans un périmètre de service
Lorsque vous créez un job qui s'exécute dans un périmètre de service, vous devez également bloquer l'accès externe pour toutes les VM sur lesquelles le job s'exécute et spécifier un réseau et un sous-réseau qui permettent au job d'accéder aux API requises.
Pour créer un job qui s'exécute dans un périmètre de service, suivez les étapes de la documentation Créer un job qui bloque l'accès externe pour toutes les VM et spécifiez un réseau qui répond aux exigences réseau pour un job qui s'exécute dans un périmètre de service.
Étapes suivantes
- Si vous rencontrez des problèmes pour créer ou exécuter un job, consultez la section Dépannage.
- En savoir plus sur la mise en réseau
- Découvrez comment créer un job.
- Découvrez comment afficher les tâches et les jobs.