Ce document explique comment utiliser VPC Service Controls avec Batch. VPC Service Controls 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 pour utiliser Batch, consultez la section Configurer un périmètre de service pour Batch dans ce document.
- Si votre projet ou votre réseau utilise VPC Service Controls pour limiter l'accès réseau à Batch, vous devez configurer vos tâches Batch pour qu'elles s'exécutent dans le périmètre de service requis. Pour savoir comment procéder, consultez la section Créer une tâche qui s'exécute dans un périmètre de service de ce document.
Pour en savoir plus sur les concepts de mise en réseau et quand configurer la mise en réseau, consultez la section 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 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 une tâche :
-
É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 de la tâche, qui est par défaut 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'une tâche :
Lecteur de réseau Compute (
roles/compute.networkViewer
) 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 via 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 une tâche qui s'exécute dans un périmètre de service, vous devez identifier le réseau que vous souhaitez utiliser pour la tâche. Le réseau que vous spécifiez pour une tâche exécutée dans un périmètre de service doit répondre aux exigences suivantes :
- Le réseau est un réseau cloud privé virtuel (VPC) qui se trouve dans le même projet que la tâche ou un réseau VPC partagé hébergé par le projet de la tâche ou partagé avec celui-ci.
- Le réseau inclut un sous-réseau à l'emplacement où vous souhaitez exécuter la tâche.
- 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 pour les API et services que votre travail utilise. Pour en savoir plus, consultez la section Configurer un périmètre de service pour Batch de 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 VPC Service Controls sur les détails et la configuration des périmètres de service.
Pour utiliser Batch, le périmètre de service doit répondre aux exigences suivantes :
Services limités : pour sécuriser Batch dans un périmètre de service, vous devez inclure les services Google Cloud requis pour vos tâches Batch dans ce périmètre, tels que les services 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 une tâche qui utilise des conteneurs avec une image provenant de Container Registry. - API Artifact Registry (
artifactregistry.googleapis.com
): Obligatoire si vous envoyez une tâche qui utilise des conteneurs avec une image provenant de Artifact Registry. - API Filestore (
file.googleapis.com
): obligatoire si votre utilise un Partage de fichiers Filestore - API Cloud Storage (
storage.googleapis.com
) : requise pour certaines tâches qui utilisent un bucket Cloud Storage. Obligatoire si vous utilisez un pour votre job Batch qui ne dispose pas Agent de service Batch préinstallé.
Pour découvrir comment activer chacun de ces services dans votre périmètre de service, consultez la section Services accessibles par VPC.
Pour chaque service que vous incluez en dehors de Batch, vous devez également vérifier que votre périmètre de service répond aux exigences indiquées pour ce service dans la documentation Produits compatibles et limites de VPC Service Controls.
- API Batch (
Réseaux VPC : chaque tâche Batch nécessite un réseau VPC. Votre périmètre de service doit donc inclure un réseau VPC sur lequel les tâches Batch peuvent s'exécuter. Pour apprendre à configurer un réseau VPC pouvez 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 service, périmètre, consultez Gestion des réseaux VPC dans les périmètres de service.
- Pour découvrir comment utiliser l'Accès privé à Google avec VPC Service Controls pour configurer l'accès aux services Google Cloud requis pour vos tâches par lot, consultez la page Configurer une connectivité privée aux API et services Google.
- Pour en savoir plus sur les exigences de mise en réseau pour les tâches par lot, consultez la section Présentation de la mise en réseau des tâches.
Créez un périmètre de service ou modifiez 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 une tâche 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 la tâche s'exécute et spécifier un réseau et un sous-réseau qui permettent à la tâche d'accéder aux API requises.
Pour créer une tâche qui s'exécute dans un périmètre de service, suivez la procédure décrite dans la documentation Créer une tâche qui bloque l'accès externe pour toutes les VM et spécifiez un réseau qui répond aux exigences réseau pour une tâche exécutée dans un périmètre de service.
Étape suivante
- Si vous rencontrez des problèmes lors de la création ou de l'exécution d'un job, consultez la section Dépannage.
- En savoir plus sur la mise en réseau
- En savoir plus sur la création d'une offre d'emploi
- Découvrez comment afficher les jobs et les tâches.