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 situés en dehors du périmètre, ainsi que toutes les connexions Internet qui ne sont pas explicitement autorisées.
- Pour configurer un périmètre de service VPC Service Controls afin d'utiliser Batch, consultez la section Configurer un périmètre de service pour Batch de 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 en savoir plus, 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 sur leur configuration, consultez la page Présentation de la mise en réseau par lots.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez la page 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 attribuer 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 section Gérer les accès.
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 cette tâche. Le réseau que vous spécifiez pour une tâche qui s'exécute 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 associé à la tâche ou partagé avec lui.
- Le réseau comprend 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 des API et des services utilisés par votre tâche. Pour plus d'informations, 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 en savoir plus sur les étapes de configuration des périmètres de service, consultez la documentation de VPC Service Controls dans la section Détails et configuration des périmètres de service.
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 services suivants:
- API Batch (
batch.googleapis.com
) - API Cloud Logging (
logging.googleapis.com
): obligatoire si vous souhaitez que vos tâches écrivent des journaux dans Cloud Logging. (Recommandé) - API Container Registry (
containerregistry.googleapis.com
) : obligatoire si vous envoyez une tâche qui utilise n'importe quel conteneur avec une image de Container Registry. - API Artifact Registry (
artifactregistry.googleapis.com
) : obligatoire si vous envoyez une tâche qui utilise des conteneurs avec une image d'Artifact Registry. - API Filestore (
file.googleapis.com
): obligatoire si votre tâche utilise un partage de fichiers Filestore. - API Cloud Storage (
storage.googleapis.com
): obligatoire pour certaines tâches qui utilisent un bucket Cloud Storage. Obligatoire si vous utilisez une image pour votre tâche par lot sur laquelle l'agent de service Batch n'est pas préinstallé.
Pour découvrir comment activer chacun de ces services dans votre périmètre de service, consultez la page Services accessibles par VPC.
Pour chaque service que vous incluez autre que 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 savoir comment configurer un réseau VPC pouvant exécuter vos tâches Batch dans un périmètre de service, consultez les documents suivants:
- Pour en savoir plus sur l'utilisation de réseaux VPC dans un périmètre de service, consultez la page Gestion des 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 Cloud requis pour vos jobs Batch, 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 jobs par lot, consultez la page 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 une tâche 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 à toutes les VM sur lesquelles une 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 les étapes décrites dans la documentation Créer une tâche qui bloque l'accès externe pour toutes les VM et spécifiez un réseau répondant aux exigences réseau pour une tâche exécutée 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 une tâche.
- Découvrez comment afficher des tâches et des tâches.