Sécuriser les tâches cron avec VPC Service Controls

VPC Service Controls est une fonctionnalité Google Cloud qui vous permet de configurer un périmètre sécurisé pour vous protéger contre l'exfiltration de données. Ce guide explique comment inclure des jobs Cloud Scheduler dans un périmètre VPC Service Controls.

Limites

Les limites suivantes s'appliquent à la compatibilité de VPC Service Controls avec Cloud Scheduler.

Actions appliquées

VPC Service Controls n'est appliqué qu'aux actions suivantes :

  • Création de tâches Cloud Scheduler
  • Mises à jour des tâches Cloud Scheduler

Pourquoi est-ce important ?

Étant donné que VPC Service Controls n'est appliqué qu'à la création et à la mise à jour des jobs, il ne l'est pas automatiquement pour les jobs créés avant que vous n'ayez ajouté Cloud Scheduler à votre périmètre VPC Service Controls. Les jobs continuent de s'exécuter même si les cibles de job ne font pas partie de votre périmètre VPC Service Controls ou ne sont pas des cibles compatibles. Pour appliquer VPC Service Controls à tous les jobs Cloud Scheduler :

  • Offres d'emploi avec des cibles non acceptées ou en dehors de votre zone géographique : supprimez les offres d'emploi. Dans ce document, consultez la section Supprimer les jobs non conformes.
  • Tâches avec des cibles à la fois compatibles et incluses dans votre périmètre : exécutez une mise à jour sur chaque tâche après avoir ajouté Cloud Scheduler à votre périmètre. Dans ce document, consultez Appliquer VPC Service Controls aux jobs préexistants.

Cibles compatibles

L'intégration de Cloud Scheduler à VPC Service Controls est compatible avec les cibles suivantes. Les points de terminaison HTTP sont acceptés s'ils sont listés. Toutefois, les points de terminaison HTTP arbitraires ne sont pas acceptés.

  • Fonctions Cloud Run : sur l'URL functions.net
  • Cloud Run : sur l'URL run.app des services Cloud Run. Les cibles de job Cloud Run ne sont pas acceptées. Pour en savoir plus sur la différence entre les ressources de service et de job Cloud Run, consultez Services et jobs : deux façons d'exécuter votre code.
  • API Dataflow : doit se trouver dans le même projet Google Cloud que votre tâche Cloud Scheduler
  • Pipelines de données : ils doivent se trouver dans le même projet Google Cloud que votre job Cloud Scheduler.
  • Pub/Sub : doit se trouver dans le même projet Google Cloud que votre tâche Cloud Scheduler

Supprimer les tâches non conformes

Recommended. Supprimez les jobs Cloud Scheduler dont les cibles sont :

  • Non compatible (voir Cibles compatibles)
  • En dehors du périmètre VPC Service Controls que vous prévoyez d'utiliser

Pour savoir comment supprimer des jobs, consultez Supprimer un job.

Si vous ne supprimez pas ces jobs avant d'ajouter Cloud Scheduler à votre périmètre VPC Service Controls, ils continueront de s'exécuter, mais VPC Service Controls ne leur sera pas appliqué. Dans ce document, consultez la section Actions appliquées.

Par exemple, si vous avez un job Cloud Scheduler qui cible une cible non compatible (comme un domaine personnalisé Cloud Run), le job continue de s'exécuter après l'ajout de Cloud Scheduler à votre périmètre VPC Service Controls, mais il n'est pas protégé par VPC Service Controls. Il en va de même pour un job préexistant avec une cible en dehors de votre périmètre VPC Service Controls.

Ajouter les rôles IAM requis

Obligatoire. Pour utiliser VPC Service Controls, le compte de service Cloud Scheduler doit disposer du rôle IAM Agent de service Cloud Scheduler. Le compte de service Cloud Scheduler est créé automatiquement pour votre projet. Pour vérifier qu'il dispose du rôle IAM Agent de service Cloud Scheduler ou pour accorder ce rôle, procédez comme suit :

  1. Dans la console Google Cloud , accédez à IAM.

    Accéder à IAM

  2. Cochez la case Inclure les attributions de rôles fournies par Google.

  3. Dans le filtre, saisissez Compte de service Cloud Scheduler, puis sélectionnez ce principal.

  4. Consultez la colonne Rôle pour le compte principal Compte de service Cloud Scheduler. Vous pouvez continuer si le rôle suivant est indiqué :

    • Agent de service Cloud Scheduler

    Si le rôle Compte de service Cloud Scheduler n'est pas listé, cliquez sur l'icône Modifier et attribuez le rôle Agent de service Cloud Scheduler au compte principal Compte de service Cloud Scheduler.

Spécifier un périmètre VPC Service Controls

Obligatoire. Vous pouvez utiliser un périmètre existant ou en créer un pour protéger vos jobs Cloud Scheduler qui comportent des cibles compatibles. Les deux approches vous permettent de spécifier les services à restreindre. Spécifiez l'API Cloud Scheduler.

Appliquer VPC Service Controls aux jobs préexistants

Recommended. Pour appliquer VPC Service Controls aux jobs Cloud Scheduler que vous avez créés avant d'ajouter Cloud Scheduler à votre périmètre VPC Service Controls, exécutez un update sur le job. Vous n'avez pas besoin de modifier le job, mais vous devez exécuter la mise à jour pour que VPC Service Controls s'applique au job et à ses futures exécutions.

Vous pouvez exécuter une mise à jour de la tâche depuis la console Google Cloud (sélectionnez la tâche et utilisez le bouton Modifier), à l'aide de l'API ou avec gcloud CLI.

Pour appliquer VPC Service Controls à un job préexistant à l'aide de gcloud CLI, exécutez la commande suivante :

Tâches HTTP Target

gcloud scheduler jobs update http JOB_ID

Remplacez les éléments suivants :

  • JOB_ID : ID de votre tâche

Cibles Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Remplacez les éléments suivants :

  • JOB_ID : ID de votre tâche