Proteggere i job cron con i Controlli di servizio VPC

I Controlli di servizio VPC ti consentono di configurare un perimetro sicuro attorno alle risorse Google Cloud per proteggerti dall'esfiltrazione di dati. Puoi includere i job Cloud Scheduler in un perimetro dei Controlli di servizio VPC per proteggere i workload pianificati e limitare i target dei job.

Limitazioni

Le seguenti limitazioni si applicano al supporto dei Controlli di servizio VPC per Cloud Scheduler.

Azioni applicate

I Controlli di servizio VPC vengono applicati alle seguenti azioni:

  • Creazioni di job Cloud Scheduler
  • Aggiornamenti dei job Cloud Scheduler

Perché è importante?

Poiché i Controlli di servizio VPC vengono applicati solo alla creazione e all'aggiornamento dei job, non vengono applicati automaticamente ai job creati prima dell'aggiunta di Cloud Scheduler al perimetro dei Controlli di servizio VPC. I job continuano a essere eseguiti anche se i target dei job non fanno parte del perimetro dei Controlli di servizio VPC o non sono target supportati. Per applicare i Controlli di servizio VPC a tutti i job Cloud Scheduler:

Target supportati

L'integrazione di Cloud Scheduler con i Controlli di servizio VPC supporta i seguenti target. Gli endpoint HTTP sono supportati se elencati, ma gli endpoint HTTP arbitrari non sono supportati.

  • Servizi Cloud Run: devono utilizzare il dominio canonico predefinito run.app. I domini personalizzati e il DNS personalizzato non sono supportati e causano l'errore di creazione del job.
  • Cloud Run Functions: deve utilizzare il dominio predefinito canonico cloudfunctions.net o run.app. I domini personalizzati e il DNS personalizzato non sono supportati e causano l'errore di creazione del job.
  • Le APIGoogle Cloud compatibili con i Controlli di servizio VPC (in anteprima o GA) possono trovarsi in un progetto Google Cloud diverso dal job Cloud Scheduler.

    • Devi utilizzare il formato dell'endpoint globale (https://SERVICE.googleapis.com). Gli endpoint regionali, come *.rep.googleapis.com, LOCATION.SERVICE.googleapis.com e REGION-SERVICE.googleapis.com, e gli endpoint mTLS (*.mtls.googleapis.com) vengono rifiutati.

      Questo requisito si applica solo agli URI di destinazione dei job. Per inviare le tue richieste all'API Cloud Scheduler tramite un endpoint regionale, consulta Utilizza gli endpoint regionali.

    • Per i job Cloud Run, il formato URI supportato è il seguente: https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

      Per scoprire la differenza tra le risorse di servizio e di job Cloud Run, consulta Servizi, job, pool di worker e istanze: quattro modi per eseguire il codice.

  • Pub/Sub

Target non supportati

Quando Cloud Scheduler è un servizio limitato nel perimetro dei Controlli di servizio VPC, qualsiasi tentativo di creare o aggiornare un job con un target non supportato non andrà a buon fine e verrà visualizzato un codice di errore TARGET_TYPE_NOT_PERMITTED_FOR_VPC. Questa azione non genera un log delle violazioni quando utilizzi la modalità dry run.

I domini personalizzati (come i bilanciatori del carico delle applicazioni esterni o il DNS personalizzato) per gli endpoint serverless non sono target supportati. Le chiamate di runtime ai domini personalizzati vengono bloccate dal servizio di destinazione a causa di credenziali mancanti all'interno del perimetro, anche per i job preesistenti creati prima della registrazione al perimetro.

Per evitare di bloccare inaspettatamente i workload, elimina tutti i job con target non supportati o con target esterni al perimetro dei Controlli di servizio VPC che prevedi di utilizzare, prima di spostare il perimetro in modalità di applicazione forzata.

Elimina i job non conformi

Consigliata. Elimina i job Cloud Scheduler con target che sono:

  • Non supportato (vedi Target supportati)
  • All'esterno del perimetro dei Controlli di servizio VPC che prevedi di utilizzare

Per istruzioni sull'eliminazione dei job, consulta Elimina un job.

Se non elimini questi job prima di aggiungere Cloud Scheduler al perimetro dei Controlli di servizio VPC, i job continuano a essere eseguiti, ma i Controlli di servizio VPC non vengono applicati. Consulta Azioni applicate in questo documento.

Ad esempio, se hai un job Cloud Scheduler che ha come target un endpoint non supportato (come un endpoint HTTP arbitrario), il job continua a essere eseguito dopo l'aggiunta di Cloud Scheduler al perimetro dei Controlli di servizio VPC, ma non è protetto dai Controlli di servizio VPC. Lo stesso vale per un job preesistente con un target esterno al perimetro dei Controlli di servizio VPC. Tuttavia, se un job preesistente ha come target un dominio personalizzato serverless all'interno del perimetro, il servizio di destinazione blocca le chiamate di runtime.

Aggiungi i ruoli IAM richiesti

Obbligatorio. Per utilizzare i Controlli di servizio VPC, il account di servizio Cloud Scheduler deve avere il ruolo IAM Cloud Scheduler Service Agent. Il account di servizio Cloud Scheduler viene creato automaticamente per il tuo progetto. Per verificare che disponga del ruolo IAM Agente di servizio Cloud Scheduler o per concedere questo ruolo, segui questi passaggi:

  1. Nella console Google Cloud , vai a IAM.

    Vai a IAM

  2. Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.

  3. Nel filtro, digita Service account Cloud Scheduler e seleziona questa entità.

  4. Guarda la colonna Ruolo per l'entità Service account Cloud Scheduler. Puoi procedere se è elencato il seguente ruolo:

    • Cloud Scheduler Service Agent

    Se il ruolo Agente di servizio Cloud Scheduler non è elencato, fai clic sull'icona Modifica e concedi il ruolo Agente di servizio Cloud Scheduler all'entità Service account Cloud Scheduler.

Specifica un perimetro dei Controlli di servizio VPC

Obbligatorio. Puoi utilizzare un perimetro esistente o crearne uno nuovo per proteggere i job Cloud Scheduler con target supportati. Entrambi gli approcci ti consentono di specificare i servizi da limitare. Specifica l'API Cloud Scheduler.

Applica i Controlli di servizio VPC ai job preesistenti

Consigliata. Per applicare i Controlli di servizio VPC ai job Cloud Scheduler che hai creato prima di aggiungere Cloud Scheduler al perimetro dei Controlli di servizio VPC, esegui un update sul job. Non è necessario modificare il job, ma devi eseguire l'aggiornamento affinché i Controlli di servizio VPC vengano applicati al job e alle sue esecuzioni future.

Puoi eseguire un aggiornamento del job utilizzando la console Google Cloud (seleziona il job e fai clic su Modifica), l'API o gcloud CLI.

Per applicare i Controlli di servizio VPC a un job preesistente utilizzando gcloud CLI, esegui questo comando:

Target HTTP

gcloud scheduler jobs update http JOB_ID

Sostituisci JOB_ID con l'ID del job.

Target Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Sostituisci JOB_ID con l'ID del tuo job.