Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Controlli di servizio VPC consentono alle organizzazioni di definire un perimetro intorno alle risorse Google Cloud per mitigare i rischi di esfiltrazione di dati.
È possibile eseguire il deployment degli ambienti Cloud Composer 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 del flusso di lavoro completamente gestite di Cloud Composer.
Il supporto dei Controlli di servizio VPC per Cloud Composer significa che:
- Ora Cloud Composer può essere selezionato come servizio protetto all'interno di un perimetro dei Controlli di servizio VPC.
- Tutte le risorse sottostanti utilizzate da Cloud Composer sono configurate per supportare l'architettura dei Controlli di servizio VPC e seguirne le regole.
Il deployment di ambienti Cloud Composer con Controlli di servizio VPC offre:
- Riduzione del rischio di esfiltrazione di dati.
- Protezione dall'esposizione dei dati dovuta a controlli di accesso configurati in modo errato.
- Riduzione del rischio di utenti malintenzionati che copiano dati in risorse Google Cloud non autorizzate o di utenti malintenzionati esterni che accedono alle risorse di Google Cloud da internet.
Server web Airflow in modalità Controlli di servizio VPC
In modalità Controlli di servizio VPC, Cloud Composer esegue due istanze del server web Airflow. Identity-Aware Proxy bilancia il carico del traffico utente tra queste istanze. I server web di Airflow vengono eseguiti in modalità di "sola lettura", il che significa che:
La Serializzazione DAG è abilitata. Di conseguenza, il server web di Airflow non analizza i file di definizione dei DAG.
I plug-in non vengono sincronizzati con il server web, quindi non puoi modificare o estendere la funzionalità del server web con i plug-in.
Il server web Airflow utilizza un'immagine container predefinita dal servizio Cloud Composer. Se installi immagini PyPI nel tuo ambiente, queste immagini non vengono installate nell'immagine del container del server web.
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 altri passaggi. Quando crei il tuo ambiente Cloud Composer:
Abilita l'API Access Context Manager e l'API Cloud Composer per il tuo progetto. Per riferimento, consulta Attivazione delle API.
Assicurati che il tuo perimetro di servizio includa i seguenti servizi accessibili VPC, altrimenti la creazione dell'ambiente potrebbe non riuscire:
- 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 Cloud 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
Utilizza la versione composer-1.10.4 o successiva.
Assicurati che la serie DAG sia abilitata. Se il tuo ambiente utilizza Cloud Composer versione 1.15.0 e successive, la serializzazione è abilitata per impostazione predefinita.
Crea un nuovo ambiente Cloud Composer con IP privato abilitato. Tieni presente che questa impostazione deve essere configurata durante la creazione dell'ambiente.
Quando crei il tuo ambiente, ricordati di configurare l'accesso al server web Airflow. Per la massima protezione, consenti l'accesso al server web solo da intervalli IP specifici. Per maggiori dettagli, vedi Configurare l'accesso di rete al server web.
Configurazione di ambienti esistenti con Controlli di servizio VPC
Puoi aggiungere al perimetro il progetto contenente il tuo ambiente se:
Hai creato il perimetro come descritto nella sezione precedente.
I tuoi ambienti sono ambienti IP privati.
- Nei tuoi ambienti è abilitata la serie DAG.
Installazione dei pacchetti PyPI
Nella configurazione predefinita dei 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 è impostare un repository PyPI privato, popolarlo 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 dell'IP privato. Segui questi passaggi:
- Configura Cloud NAT per consentire a Cloud Composer in esecuzione nello spazio IP privato di connettersi a repository PyPI esterni.
- Configura le regole firewall per consentire le connessioni in uscita dal cluster Composer al repository.
Quando utilizzi questa configurazione, assicurati di comprendere i rischi associati all'utilizzo di repository esterni. Assicurati di considerare attendibili i contenuti e l'integrità di eventuali repository esterni, in quanto queste connessioni potrebbero essere utilizzate come vettore di esfiltrazione.
Configura la connettività alle API e ai servizi Google
In una configurazione dei 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 domini seguenti:
L'app
*.googleapis.com
viene utilizzata per accedere ad altri servizi Google.*.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 risorsa: 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
|
*.pkg.dev
|
pkg.dev. |
Nome DNS: *.pkg.dev. Tipo di record di risorsa: 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 risorsa: 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:
Crea una nuova zona DNS e utilizza il nome DNS della zona come nome DNS.
Esempio:
pkg.dev.
Aggiungi un set di record per il record CNAME.
Esempio:
- Nome DNS:
*.pkg.dev.
- Tipo di record di risorse:
CNAME
- Nome canonico:
pkg.dev.
- Nome DNS:
Aggiungi un set di record per A Record (Record A):
Esempio:
- Tipo di record di risorse:
A
- Indirizzi IPv4:
199.36.153.4
,199.36.153.5
,199.36.153.6
e199.36.153.7
- Tipo di record di risorse:
Per maggiori informazioni, consulta Configurazione della connettività privata alle API e ai servizi Google.
Configura le regole firewall
Se il tuo progetto ha regole firewall non predefinite, ad esempio regole che eseguono l'override delle regole firewall implicite 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à più elevata
rispetto alla regola deny
globale.
Configura la 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 tag di networking 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 |
Server web | In uscita | Consenti | Intervallo IP di rete server web | TCP | 3306, 3307 |
Per ottenere gli intervalli IP:
Gli intervalli di indirizzi di pod, servizi e piano di controllo sono disponibili nella pagina Cluster del cluster dell'ambiente:
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Vai alla scheda Configurazione dell'ambiente.
Segui il link per visualizzare i dettagli del cluster.
Puoi visualizzare l'intervallo IP del server web dell'ambiente nella scheda Configurazione dell'ambiente.
Puoi visualizzare l'ID rete dell'ambiente nella scheda Configurazione dell'ambiente. Per ottenere intervalli IP per una subnet, vai alla pagina Reti VPC e fai clic sul nome della rete per visualizzare i dettagli:
Log dei Controlli di servizio VPC
Durante 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 degli ambienti.
Il servizio Cloud Composer utilizza l'account di servizio cloud-airflow-prod@system.gserviceaccount.com
per gestire i componenti dei progetti tenant dei tuoi ambienti.
L'account di servizio service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
, noto anche come Composer Service Agent Service Account
, gestisce i componenti dell'ambiente nei progetti di servizio e host.
Limitazioni
- Tutti i vincoli di rete dei Controlli di servizio VPC si applicano anche ai tuoi ambienti Cloud Composer. Per maggiori dettagli, consulta la documentazione relativa a Controlli di servizio VPC.
La visualizzazione di un modello visualizzato con funzioni nella UI web con la serializzazione dei DAG abilitata è supportata per gli ambienti che eseguono Cloud Composer 1.12.0 o versioni successive e Airflow versione 1.10.9 o successive.
L'impostazione del flag
async_dagbag_loader
suTrue
non è supportata quando la serializzazione del DAG è abilitata.L'abilitazione della serializzazione DAG disabilita tutti i plug-in del server web di Airflow, in quanto potrebbero mettere a rischio la sicurezza della rete VPC in cui è stato eseguito il deployment di Cloud Composer. Ciò non influisce sul comportamento dei plug-in di scheduler o worker, inclusi operatori Airflow, sensori e così via.
- 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.