Sécuriser des tâches Cron avec VPC Service Controls

VPC Service Controls est une fonctionnalité de 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 d'un job Cloud Scheduler
  • Mises à jour des jobs Cloud Scheduler

Pourquoi est-ce important ?

Étant donné que VPC Service Controls n'est appliqué que lors de la création et des mises à jour de tâches, VPC Service Controls n'est pas automatiquement appliqué aux tâches créées avant l'ajout de Cloud Scheduler à votre périmètre VPC Service Controls. Les tâches continuent de s'exécuter même si les cibles de tâches ne font pas partie de votre périmètre VPC Service Controls ou ne sont pas des cibles compatibles. Pour appliquer VPC Service Controls à toutes les tâches Cloud Scheduler:

  • Jobs avec des cibles non compatibles ou situées en dehors de votre périmètre:supprimez les tâches. Consultez la section Supprimer les jobs non conformes.
  • Jobs avec des cibles compatibles et situées dans votre périmètre:exécutez une mise à jour de chaque tâche après avoir ajouté Cloud Scheduler à votre périmètre. Consultez la section Appliquer à des tâches préexistantes.

Cibles compatibles

L'intégration de Cloud Scheduler à VPC Service Controls n'est compatible qu'avec les cibles suivantes:

  • Cloud Functions (sur l'URL functions.net)
  • Cloud Run (sur l'URL run.app pour les services Cloud Run). Les cibles de jobs Cloud Run ne sont pas compatibles. Pour en savoir plus sur la différence entre les ressources de service et de tâche pour Cloud Run, consultez la page Services et tâches: deux façons d'exécuter votre code.)
  • API Dataflow (doit se trouver dans le même projet Google Cloud que votre job Cloud Scheduler)
  • Pipelines de données (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 job Cloud Scheduler)

Supprimer les jobs non conformes

Recommandé. Supprimez les tâches 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 obtenir des instructions sur la suppression de tâches, consultez la page Supprimer une tâche.

Si vous ne supprimez pas ces tâches avant d'avoir ajouté Cloud Scheduler à votre périmètre VPC Service Controls, elles continuent de s'exécuter, mais VPC Service Controls ne leur est pas appliqué (voir Actions appliquées).

Par exemple, si vous avez une tâche Cloud Scheduler qui cible une cible non compatible (telle qu'un domaine personnalisé Cloud Run), elle continue de s'exécuter une fois que vous avez ajouté Cloud Scheduler à votre périmètre VPC Service Controls, mais elle n'est pas protégée par VPC Service Controls. Il en va de même pour une tâche préexistante dont la cible se trouve en dehors de votre périmètre VPC Service Controls.

Ajouter les rôles IAM requis

Obligatoire. Pour que vous puissiez 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 lui 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 Cloud Scheduler Service Account (Compte de service Cloud Scheduler), puis sélectionnez ce compte principal.

  4. Examinez la colonne Rôle du compte principal Cloud Scheduler Service Account (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" ne figure pas dans la liste, cliquez sur l'icône Modifier et attribuez le rôle Agent de service Cloud Scheduler au compte principal du 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 tâches Cloud Scheduler comportant des cibles compatibles. Les deux approches vous permettent de spécifier les services à restreindre. Spécifiez l'API Cloud Scheduler.

Appliquer VPC Service Controls à des tâches préexistantes

Recommandé. Pour appliquer VPC Service Controls aux tâches Cloud Scheduler que vous avez créées avant d'ajouter Cloud Scheduler à votre périmètre VPC Service Controls, exécutez une commande update sur la tâche. Vous n'avez pas besoin de modifier la tâche, mais vous devez exécuter la mise à jour pour que VPC Service Controls s'applique à la tâche et à ses exécutions futures.

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

Pour appliquer VPC Service Controls sur une tâche préexistante à l'aide de la 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 job

Cibles Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Remplacez les éléments suivants :

  • JOB_ID: ID de votre job