Proteggere i job cron con i Controlli di servizio VPC

I Controlli di servizio VPC sono una funzionalità Google Cloud che ti consente di configurare un perimetro sicuro per proteggerti dall'esfiltrazione di dati. Questa guida mostra come includere i job Cloud Scheduler in un perimetro dei Controlli di servizio VPC.

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 alle creazioni e agli aggiornamenti 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 del job non fanno parte del perimetro di 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 le seguenti destinazioni. Gli endpoint HTTP sono supportati se elencati; tuttavia, gli endpoint HTTP arbitrari non sono supportati.

  • Servizi Cloud Run: devono utilizzare il dominio run.app predefinito canonico. I domini personalizzati e il DNS personalizzato non sono supportati e la creazione del job non andrà a buon fine.
  • Cloud Run Functions: deve utilizzare il dominio canonico predefinito cloudfunctions.net o run.app. I domini personalizzati e il DNS personalizzato non sono supportati e causeranno l'errore di creazione del job.
  • Le APIGoogle Cloud conformi ai Controlli di servizio VPC (in anteprima o GA) possono trovarsi in un progetto Google Cloud diverso dal tuo 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.
    • 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 di 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 una destinazione non supportata non andrà a buon fine e verrà restituito un codice di errore TARGET_TYPE_NOT_PERMITTED_FOR_VPC. Questa azione non genera un log delle violazioni quando viene utilizzata 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 della mancanza di credenziali nel perimetro, anche per i job preesistenti creati prima della registrazione al perimetro.

Per evitare di bloccare in modo imprevisto i tuoi carichi di lavoro, elimina tutti i job con destinazioni non supportate o con destinazioni al di fuori del perimetro di Controlli di servizio VPC che prevedi di utilizzare, prima di spostare il perimetro in modalità di applicazione forzata.

Elimina i job non conformi

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

  • Non supportato (vedi Target supportati)
  • Al di fuori del perimetro dei Controlli di servizio VPC che prevedi di utilizzare

Per istruzioni sull'eliminazione dei job, vedi Eliminare 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 target non supportato (come un endpoint HTTP arbitrario), il job continua a essere eseguito dopo aver aggiunto 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 una destinazione al di fuori del perimetro dei Controlli di servizio VPC. Tuttavia, se un job preesistente ha come target un dominio personalizzato serverless all'interno del tuo 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 disporre del ruolo IAM Agente di servizio Cloud Scheduler. Il account di servizio Cloud Scheduler viene creato automaticamente per il tuo progetto. Per verificare che disponga del ruolo IAM service agent Cloud Scheduler o per concederlo, 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 questo principal.

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

    • Service agent Cloud Scheduler

    Se il ruolo Service Account 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 che hanno target supportati. Entrambi gli approcci ti danno la possibilità di specificare i servizi da limitare. Specifica l'API Cloud Scheduler.

Applicare i Controlli di servizio VPC ai job preesistenti

Consigliato. 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 devi 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 tuo job.

Destinazioni Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Sostituisci JOB_ID con l'ID del tuo job.