Configurazione dei Controlli di servizio VPC

Cloud Composer 1 | Cloud Composer 2

I Controlli di servizio VPC consentono alle organizzazioni di definire un perimetro intorno alle risorse Google Cloud per mitigare i rischi di esfiltrazione di dati.

Il deployment degli ambienti Cloud Composer può essere eseguito all'interno di un perimetro di servizio. Configurando il tuo ambiente con i Controlli di servizio VPC, puoi mantenere privati i dati sensibili, sfruttando al contempo le funzionalità di orchestrazione dei flussi di lavoro completamente gestite di Cloud Composer.

Il supporto dei Controlli di servizio VPC per Cloud Composer significa che:

  • Ora è possibile selezionare Cloud Composer come servizio protetto all'interno di un perimetro Controlli di servizio VPC.
  • Tutte le risorse sottostanti utilizzate da Cloud Composer sono configurate per supportare l'architettura dei Controlli di servizio VPC e seguire le relative regole.

Il deployment di ambienti Cloud Composer con Controlli di servizio VPC ti offre:

  • Rischio ridotto di esfiltrazione di dati.
  • Protezione contro l'esposizione dei dati dovuta a controlli dell'accesso configurati in modo errato.
  • Riduzione del rischio che utenti malintenzionati copiano i dati in risorse Google Cloud non autorizzate o utenti malintenzionati esterni che accedono alle risorse Google Cloud da internet.

Server web Airflow in modalità Controlli di servizio VPC

In modalità Controlli di servizio VPC, l'accesso al server web è protetto dal perimetro e l'accesso dall'esterno del perimetro è bloccato.

Per consentire l'accesso dall'esterno del perimetro di servizio, configura il livello di accesso in modo appropriato.

Creazione di un perimetro di servizio

Consulta Creazione di un perimetro di servizio per scoprire come creare e configurare i perimetri di servizio. Assicurati di selezionare Cloud Composer come uno dei servizi protetti all'interno del perimetro.

Creazione di ambienti in un perimetro

Per eseguire il deployment di Cloud Composer all'interno di un perimetro, sono necessari passaggi aggiuntivi. Quando crei il tuo ambiente Cloud Composer:

  1. Abilita l'API Access Context Manager e l'API Cloud Composer per il tuo progetto. Per riferimento, consulta Abilitazione delle API.

  2. Assicurati che il tuo perimetro di servizio includa i seguenti servizi accessibili VPC, altrimenti il tuo ambiente potrebbe non riuscire a creare:

    • API Cloud Composer (composer.googleapis.com)
    • API Compute Engine (compute.googleapis.com)
    • API Kubernetes Engine (container.googleapis.com)
    • API Container Registry (containerregistry.googleapis.com)
    • API Artifact Registry (artifactregistry.googleapis.com)
    • API Cloud Storage (storage.googleapis.com)
    • API Cloud SQL Admin (sqladmin.googleapis.com)
    • API Cloud Build (cloudbuild.googleapis.com)
    • API Cloud Logging (logging.googleapis.com)
    • API Cloud Monitoring (monitoring.googleapis.com)
    • API Cloud Pub/Sub (pubsub.googleapis.com)
    • API Security Token Service (sts.googleapis.com)
    • API Cloud Resource Manager (cloudresourcemanager.googleapis.com)
    • API Service Directory (servicedirectory.googleapis.com)
    • API Cloud Key Management Service (cloudkms.googleapis.com), se utilizzi chiavi Cloud KMS o CMEK
    • API Secret Manager (secretmanager.googleapis.com), se utilizzi Secret Manager come backend secret

  3. Utilizza la versione composer-1.10.4 o versioni successive.

  4. Crea un nuovo ambiente Cloud Composer con l'IP privato abilitato. Tieni presente che questa impostazione deve essere configurata durante la creazione dell'ambiente.

  5. Per impostazione predefinita, l'accesso alla UI e all'API di Airflow è consentito solo dall'interno del perimetro di sicurezza. Se vuoi renderlo disponibile al di fuori del perimetro di sicurezza, configura il livello di accesso in modo appropriato, come descritto in Consentire l'accesso alle risorse protette dall'esterno di un perimetro.

Configurazione degli ambienti esistenti con i Controlli di servizio VPC

Puoi aggiungere al perimetro il progetto contenente il tuo ambiente se:

Installazione dei pacchetti PyPI

Nella configurazione predefinita di Controlli di servizio VPC, Cloud Composer supporta solo l'installazione di pacchetti PyPI da repository privati raggiungibili dallo spazio di indirizzi IP privati della rete VPC. La configurazione consigliata per questo processo consiste nel impostare un repository PyPI privato, compilarlo con pacchetti verificati utilizzati dalla tua organizzazione, quindi configurare Cloud Composer per installare le dipendenze Python da un repository privato.

È anche possibile installare pacchetti PyPI da repository esterni allo spazio IP privato. Segui questi passaggi:

  1. Configura Cloud NAT per consentire a Cloud Composer in esecuzione nello spazio dell'IP privato di connettersi ai repository PyPI esterni.
  2. Configura le tue regole firewall per consentire le connessioni in uscita dal cluster Composer al repository.

Quando utilizzi questa configurazione, assicurati di comprendere i rischi derivanti dall'utilizzo di repository esterni. Assicurati che i contenuti e l'integrità di tutti i repository esterni siano attendibili, poiché queste connessioni potrebbero essere potenzialmente utilizzate come vettore di esfiltrazione.

Configura la connettività alle API e ai servizi Google

In una configurazione di Controlli di servizio VPC, per controllare il traffico di rete, configura l'accesso alle API e ai servizi Google tramite restricted.googleapis.com. Questo dominio blocca l'accesso alle API e ai servizi Google che non supportano i Controlli di servizio VPC.

Gli ambienti Cloud Composer utilizzano i seguenti domini:

  • *.googleapis.com viene utilizzato per accedere ad altri servizi Google.
  • *.composer.cloud.google.com viene utilizzato per accedere alla UI Airflow e all'UI DAG del tuo ambiente.
  • *.pkg.dev viene utilizzato per ottenere immagini dell'ambiente, ad esempio durante la creazione o l'aggiornamento di un ambiente.
  • *.gcr.io GKE richiede la connettività al dominio Container Registry indipendentemente dalla versione di Cloud Composer.

Configura la connettività all'endpoint restricted.googleapis.com:

Dominio Nome DNS Record CNAME Record A
*.googleapis.com googleapis.com. Nome DNS: *.googleapis.com.
Tipo di record di risorse: CNAME
Nome canonico: googleapis.com.
Tipo di record di risorse: A
Indirizzi IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.composer.cloud.google.com composer.cloud.google.com. Nome DNS: *.composer.cloud.google.com.
Tipo di record di risorse: CNAME
Nome canonico: composer.cloud.google.com.
Tipo di record di risorse: A
Indirizzi IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.pkg.dev pkg.dev. Nome DNS: *.pkg.dev.
Tipo di record di risorse: CNAME
Nome canonico: pkg.dev.
Tipo di record di risorse: A
Indirizzi IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.gcr.io gcr.io. Nome DNS: *.gcr.io.
Tipo di record di risorse: CNAME
Nome canonico: gcr.io.
Tipo di record di risorse: A
Indirizzi IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

Per creare una regola DNS:

  1. Crea una nuova zona DNS e utilizza il nome DNS come nome DNS della zona.

    Esempio: pkg.dev.

  2. Aggiungi un set di record per il record CNAME.

    Esempio:

    • Nome DNS: *.pkg.dev.
    • Tipo di record di risorse: CNAME
    • Nome canonico: pkg.dev.
  3. Aggiungi un set di record con per A Record:

    Esempio:

    • Tipo di record di risorse: A
    • Indirizzi IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

Per maggiori informazioni, consulta Configurare la connettività privata alle API e ai servizi Google.

Configura le regole firewall

Se il tuo progetto prevede regole firewall non predefinite, ad esempio regole che eseguono l'override delle regole firewall semplificate o modificano le regole precompilate nella rete predefinita, verifica che siano configurate le seguenti regole firewall.

Ad esempio, Cloud Composer potrebbe non riuscire a creare un ambiente se è presente una regola firewall che nega tutto il traffico in uscita. Per evitare problemi, definisci regole allow selettive che seguono l'elenco e hanno una priorità maggiore rispetto alla regola deny globale.

Configura la tua rete VPC per consentire il traffico dal tuo ambiente:

  • Consulta Utilizzo delle regole firewall per scoprire come controllare, aggiungere e aggiornare le regole per la tua rete VPC.
  • Utilizza lo Strumento di connettività per convalidare la connettività tra intervalli IP.
  • Puoi utilizzare i tag di rete per limitare ulteriormente l'accesso. Puoi impostare questi tag quando crei un ambiente.
Descrizione Direzione Azione Origine o destinazione Protocolli Porte
DNS

Configura come descritto in Supporto dei Controlli di servizio VPC per Cloud DNS
- - - - -
API e servizi Google In uscita Consenti Indirizzi IPv4 di restricted.googleapis.com che utilizzi per le API e i servizi Google. TCP 443
Nodi del cluster dell'ambiente In uscita Consenti Intervallo di indirizzi IP principali della subnet dell'ambiente TCP, UDP tutte
Pod del cluster dell'ambiente In uscita Consenti Intervallo di indirizzi IP secondari per i pod nella subnet dell'ambiente TCP, UDP tutte
Piano di controllo del cluster dell'ambiente In uscita Consenti Intervallo IP del piano di controllo GKE TCP, UDP tutte
(Se il tuo ambiente utilizza Private Service Connect) Subnet di connessione In uscita Consenti Intervallo di subnet di connessione di Cloud Composer TCP 3306, 3307
(Se il tuo ambiente utilizza i peering VPC) Rete tenant In uscita Consenti Intervallo IP della rete tenant di Cloud Composer TCP 3306, 3307

Per ottenere gli intervalli IP:

  • Gli intervalli di indirizzi di pod, servizio e piano di controllo sono disponibili nella pagina Cluster del cluster del tuo ambiente:

    1. Nella console Google Cloud, vai alla pagina Ambienti.

      Vai ad Ambienti

    2. Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.

    3. Vai alla scheda Configurazione dell'ambiente.

    4. Segui il link per visualizzare i dettagli del cluster.

  • Puoi visualizzare l'intervallo IP della rete tenant Cloud Composer dell'ambiente nella scheda Configurazione ambiente.

  • Puoi visualizzare l'ID subnet dell'ambiente e l'ID della subnet della connessione di Cloud Composer nella scheda Configurazione ambiente. Per ottenere intervalli IP per una subnet, vai alla pagina Reti VPC e fai clic sul nome della rete per visualizzare i dettagli:

    Vai a Reti VPC

Log dei Controlli di servizio VPC

Per la risoluzione dei problemi relativi alla creazione dell'ambiente, puoi analizzare gli audit log generati dai Controlli di servizio VPC.

Oltre ad altri messaggi di log, puoi controllare i log per informazioni sugli account di servizio cloud-airflow-prod@system.gserviceaccount.com e service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com che configurano i componenti dei tuoi ambienti.

Il servizio Cloud Composer utilizza l'account di servizio cloud-airflow-prod@system.gserviceaccount.com per gestire i componenti del progetto tenant dei tuoi ambienti.

L'account di servizio service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com, chiamato anche Composer Service Agent Service Account, gestisce i componenti dell'ambiente nei progetti di servizio e host.

Limitazioni

  • Quando Cloud Composer è in esecuzione all'interno di un perimetro, l'accesso ai repository PyPI pubblici è limitato. Consulta Installazione delle dipendenze Python per scoprire come installare i moduli PyPI in modalità IP privato.