Sécuriser les jobs cron avec VPC Service Controls

VPC Service Controls est une Google Cloud fonctionnalité qui vous permet de configurer un périmètre sécurisé pour vous protéger contre l'exfiltration de données. Ce guide vous 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 jobs Cloud Scheduler
  • Mises à jour des jobs 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 n'est pas automatiquement appliqué aux 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 :

Cibles compatibles

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

  • Services Cloud Run : sur l'URL run.app.
  • Cloud Run Functions : sur l'URL functions.net.
  • Google Cloud Les APIcompatibles avec VPC Service Controls (en version Preview ou en disponibilité générale) peuvent se trouver dans un projet Google Cloud différent de celui de votre job Cloud Scheduler.

    • Pour les jobs Cloud Run, le format d'URI compatible est le suivant : https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

      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.

  • Pub/Sub

Cibles non compatibles

Lorsque Cloud Scheduler est un service restreint dans votre périmètre VPC Service Controls, toute tentative de création ou de mise à jour d'un job avec une cible non compatible échoue avec le code d'erreur TARGET_TYPE_NOT_PERMITTED_FOR_VPC. Cette action ne génère pas de journal de violation lorsque vous utilisez le mode d'exécution à sec.

Pour éviter de bloquer vos charges de travail de manière inattendue, supprimez tous les jobs avec des cibles non compatibles ou avec des cibles en dehors du périmètre VPC Service Controls que vous prévoyez d'utiliser, avant de passer votre périmètre en mode appliqué.

Supprimer les jobs non conformes

Recommended. Supprimez les jobs Cloud Scheduler avec des cibles qui sont :

  • Non compatibles (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 (telle qu'un domaine personnalisé Cloud Run), le job continue de s'exécuter après que vous avez ajouté 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 attribuer ce rôle, procédez comme suit :

  1. Dans la Google Cloud console, 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 compte principal.

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

    • 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 avec des cibles compatibles. Les deux approches vous permettent de spécifier les services à limiter. 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 une 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 pour le job à partir de la Google Cloud console (sélectionnez le job et utilisez le Modifier bouton), à l'aide de l'API ou avec la 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 JOB_ID par l'ID de votre job.

Cibles Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Remplacez JOB_ID par l'ID de votre job.