Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
I Controlli di servizio VPC consentono alle organizzazioni di definire un perimetro attorno alle risorseGoogle Cloud per mitigare i rischi di esfiltrazione di dati.
Gli ambienti Cloud Composer possono essere implementati all'interno di un service perimeter. Configurando l'ambiente con i Controlli di servizio VPC, puoi mantenere privati i dati sensibili, sfruttando le funzionalità di orchestrazione del flusso di lavoro completamente gestite di Cloud Composer.
Il supporto di Controlli di servizio VPC per Cloud Composer significa che:
- Ora Cloud Composer può essere selezionato come servizio protetto all'interno di un perimetro di Controlli di servizio VPC.
- Tutte le risorse sottostanti utilizzate da Cloud Composer sono configurate per supportare l'architettura dei Controlli di servizio VPC e rispettarne le regole.
Il deployment di ambienti Cloud Composer con i Controlli di servizio VPC ti offre:
- Riduzione del rischio di esfiltrazione di dati.
- Protezione dall'esposizione dei dati dovuta a controlli dell'accesso configurati in modo errato.
- Rischio ridotto che utenti malintenzionati copino dati in risorseGoogle Cloud non autorizzate o che malintenzionati esterni accedano a risorseGoogle Cloud da internet.
Informazioni sui Controlli di servizio VPC in Cloud Composer
- Tutti i vincoli di rete dei Controlli di servizio VPC si applicano anche ai tuoi ambienti Cloud Composer. Per maggiori dettagli, consulta la documentazione sui controlli di servizio VPC.
La visualizzazione di un modello sottoposto a rendering con funzioni nell'interfaccia utente web con la serializzazione DAG abilitata è supportata per gli ambienti che eseguono Cloud Composer versione 1.12.0 o successive e Airflow versione 1.10.9 o successive.
L'impostazione del flag
async_dagbag_loader
suTrue
non è supportata mentre è abilitata la serializzazione DAG.L'attivazione della serializzazione DAG disattiva tutti i plug-in del server web Airflow, in quanto potrebbero compromettere la sicurezza della rete VPC in cui è implementato Cloud Composer. Ciò non influisce sul comportamento dei plug-in dello scheduler o del worker, inclusi gli operatori e i sensori Airflow.
Se un ambiente Cloud Composer è protetto da un perimetro, l'accesso ai repository PyPI pubblici è limitato. Per ulteriori informazioni, consulta la sezione Installare pacchetti PyPI nei Controlli di servizio VPC.
Se il tuo ambiente utilizza il networking con IP privato, tutto il traffico interno viene indirizzato alla tua rete VPC, ad eccezione del traffico verso API, servizi e domini Google che sono disponibili per gli ambienti con IP privato tramite l'accesso privato Google.
A seconda di come configuri la rete VPC, un ambiente con IP privato può accedere a internet tramite la rete VPC.
In modalità Controlli di servizio VPC, Cloud Composer esegue due istanze del server web Airflow. Identity-Aware Proxy bilancia il traffico degli utenti tra queste istanze. I server web Airflow vengono eseguiti in modalità "sola lettura", il che significa che:
La serializzazione DAG è attivata. Di conseguenza, il server web di Airflow non analizza i file DAG.
I plug-in non vengono sincronizzati con il server web, pertanto non puoi modificare o estendere le 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 non vengono installate nell'immagine container del server web.
Creare ambienti in un perimetro
Per eseguire il deployment di Cloud Composer all'interno di un perimetro sono necessari i seguenti passaggi:
Abilita l'API Access Context Manager e l'API Cloud Composer per il tuo progetto. Per riferimento, consulta Attivazione delle API.
Assicurati che il perimetro di servizio disponga dei seguenti servizi accessibili al 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 Logging (logging.googleapis.com)
- API Cloud Monitoring (monitoring.googleapis.com)
- API Cloud Pub/Sub (pubsub.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 dei secret.
Crea un nuovo ambiente Cloud Composer con l'IP privato abilitato. Tieni presente che questa impostazione deve essere configurata durante la creazione dell'ambiente.
Utilizza la versione composer-1.10.4 o successive.
Assicurati che la serializzazione dei DAG sia abilitata. Se il tuo ambiente utilizza Cloud Composer versione 1.15.0 e successive, la serializzazione è abilitata per impostazione predefinita.
Quando crei l'ambiente, ricorda di configurare l'accesso al server web Airflow. Per migliorare la protezione, consenti l'accesso al server web solo da intervalli IP specifici. Per maggiori dettagli, vedi Configurare l'accesso alla rete del server web.
Aggiungere un ambiente esistente al perimetro
- Hai già creato o configurato il perimetro come descritto nella sezione precedente.
- Il tuo ambiente utilizza l'IP privato.
- Nei tuoi ambienti è abilitata la serializzazione DAG.
Installare i pacchetti PyPI nei Controlli di servizio VPC
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 interni della rete VPC.
Installare da un repository privato
La configurazione consigliata prevede la configurazione di un repository PyPI privato:
Compilalo con i pacchetti verificati utilizzati dalla tua organizzazione, poi configura Cloud Composer per installare le dipendenze Python da un repository privato.
Concedi autorizzazioni aggiuntive per l'installazione di pacchetti da repository privati al account di servizio del tuo ambiente, come descritto in Controllo dell'accesso.
Installare da un repository pubblico
Repository remoto
Questo è l'approccio consigliato per installare pacchetti da un repository pubblico.
Per installare i pacchetti PyPI dai repository al di fuori dello spazio IP privato:
- Crea un repository remoto Artifact Registry.
- Concedi a questo repository l'accesso alle origini upstream.
- Configura Airflow per installare pacchetti da un repository Artifact Registry.
- Concedi autorizzazioni aggiuntive per l'installazione di pacchetti dai repository Artifact Registry al account di servizio del tuo ambiente, come descritto in Controllo dell'accesso.
Connessioni esterne
Per installare i pacchetti PyPI dai repository al di fuori dello spazio IP privato:
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.
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 di 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.*.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
|
*.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:
Crea una nuova zona DNS e utilizza Nome DNS come nome DNS di questa zona.
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 con per Record A:
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
- Tipo di record di risorse:
Per ulteriori informazioni, vedi Configurazione della connettività privata alle API e ai servizi Google.
Configurazione delle regole del firewall
Se il tuo progetto ha regole firewall non predefinite, ad esempio regole che sostituiscono le 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
hai una regola firewall che nega tutto il traffico in uscita. Per evitare problemi,
definisci regole allow
selettive che seguano l'elenco e abbiano una priorità superiore
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 gli 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 di 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 | tutti |
Pod del cluster dell'ambiente | In uscita | Consenti | Intervallo di indirizzi IP secondario per i pod nella subnet dell'ambiente | TCP, UDP | tutti |
Control plane del cluster dell'ambiente | In uscita | Consenti | Intervallo IP del control plane GKE | TCP, UDP | tutti |
Server web | In uscita | Consenti | Intervallo IP di rete del server web | TCP | 3306, 3307 |
Per ottenere gli intervalli IP del cluster dell'ambiente:
Gli intervalli di indirizzi di pod, servizi e piano di controllo sono disponibili nella pagina Cluster del cluster del tuo ambiente:
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.
Vai alla scheda Configurazione ambiente.
Segui il link Visualizza i dettagli del cluster.
Puoi visualizzare l'intervallo di indirizzi IP del server web dell'ambiente nella scheda Configurazione ambiente.
Puoi visualizzare l'ID di rete dell'ambiente nella scheda Configurazione ambiente. Per ottenere gli 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
Quando risolvi i problemi di creazione dell'ambiente, puoi analizzare i log di controllo generati da Controlli di servizio VPC.
Oltre ad altri messaggi di log, puoi controllare i log per informazioni su
cloud-airflow-prod@system.gserviceaccount.com
e
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
account di servizio 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
, noto anche come service account dell'agente di servizio Composer, gestisce i componenti dell'ambiente nei
progetti di servizio e host.