Sécuriser les 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 tâches 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 tâches, il n'est pas appliqué automatiquement aux tâches créées avant que vous n'ayez ajouté Cloud Scheduler à votre périmètre VPC Service Controls. Les tâches continuent de s'exécuter, même si les cibles de tâche 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:

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

Cibles compatibles

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

  • Fonctions Cloud Run (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 acceptées. Pour en savoir plus sur la différence entre les ressources de service et de tâche pour Cloud Run, consultez la section Services et tâches: deux méthodes pour exécuter votre code.)
  • API Dataflow (doit se trouver dans le même projet Google Cloud que votre tâche Cloud Scheduler)
  • Canaux de données (ils doivent se trouver dans le même projet Google Cloud que votre tâche 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 tâches Cloud Scheduler dont les cibles sont:

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

Pour savoir comment supprimer des tâches, consultez la section Supprimer une tâche.

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

Par exemple, si vous disposez d'une tâche Cloud Scheduler qui cible une cible non prise en charge (comme un domaine personnalisé Cloud Run), la tâche continue de s'exécuter après avoir 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 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 Cloud Scheduler Service Agent (Agent de service Cloud Scheduler). Le compte de service Cloud Scheduler est automatiquement créé pour votre projet. Pour vérifier qu'il dispose du rôle IAM d'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 Compte de service Cloud Scheduler, puis sélectionnez ce principal.

  4. Consultez la colonne Rôle pour le 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 de compte de service Cloud Scheduler n'est pas indiqué, cliquez sur l'icône Modifier et attribuez le rôle Agent de service Cloud Scheduler au 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 jobs Cloud Scheduler qui ont 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 existants

Recommended. 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 un 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 futures exécutions.

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

Pour appliquer VPC Service Controls à 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 tâche

Cibles Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Remplacez les éléments suivants :

  • JOB_ID: ID de votre tâche