Configurazione dei Controlli di servizio VPC

Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)

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

Gli ambienti Managed Airflow possono essere sottoposti a deployment all'interno di un perimetro di servizio. 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 Managed Airflow.

Il supporto dei Controlli di servizio VPC per Managed Airflow significa che:

  • Ora Managed Airflow può essere selezionato come servizio protetto all'interno di un perimetro dei Controlli di servizio VPC.
  • Tutte le risorse sottostanti utilizzate da Managed Airflow sono configurate per supportare l'architettura dei Controlli di servizio VPC e rispettarne le regole.

Il deployment di ambienti Managed Airflow con i Controlli di servizio VPC offre:

  • Rischio ridotto di esfiltrazione di dati.
  • Protezione dall'esposizione dei dati a causa di controlli di accesso configurati in modo errato.
  • Rischio ridotto di utenti malintenzionati che copiano i dati in risorse non autorizzate Google Cloud o di attacchi esterni che accedono alle Google Cloud risorse da internet.

Informazioni sui Controlli di servizio VPC in Managed Airflow

  • Tutti i vincoli di rete dei Controlli di servizio VPC si applicano anche agli ambienti Managed Airflow. Per maggiori dettagli, consulta la documentazione dei 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 Managed Airflow versione 1.12.0 o successive e Airflow versione 1.10.9 o successive.

  • L'impostazione del flag async_dagbag_loader su True non è supportata quando la serializzazione 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 è sottoposto a deployment Managed Airflow. Ciò non influisce sul comportamento dei plug-in dello scheduler o del worker, inclusi gli operatori e i sensori di Airflow.

  • Se un ambiente Airflow gestito è protetto da un perimetro, l'accesso ai repository PyPI pubblici è limitato. Per maggiori informazioni, consulta Installare i pacchetti PyPI nei Controlli di servizio VPC.

  • Se il tuo ambiente utilizza la rete IP privata, tutto il traffico interno viene instradato alla tua rete VPC, ad eccezione del traffico verso le API di Google, i servizi e i domini che sono disponibili per gli ambienti IP privati tramite l'accesso privato Google.

  • A seconda di come configuri la rete VPC, un ambiente IP privato può accedere a internet tramite la rete VPC.

  • In modalità Controlli di servizio VPC, Managed Airflow esegue due istanze del server web di 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 DAG.

    • I plug-in non vengono sincronizzati con il server web, quindi non puoi modificare o estendere le funzionalità del server web con i plug-in.

    • Il server web di Airflow utilizza un'immagine container precompilata dal servizio Managed Airflow. Se installi immagini PyPI nel tuo ambiente, queste immagini non vengono installate sull'immagine container del server web.

Perimetri per ambienti con VPC condiviso e CMEK

Se il tuo ambiente è protetto da un perimetro di servizio e utilizza il VPC condiviso, le chiavi di crittografia gestite dal cliente (CMEK) o entrambi, assicurati che i seguenti progetti si trovino nello stesso perimetro di servizio:

  • Progetto di servizio: il progetto che contiene l'ambiente Airflow gestito.
  • Progetto host: il progetto che contiene la rete VPC condiviso.
  • Progetto che ospita le chiavi di Cloud Key Management Service.

Creare ambienti in un perimetro

Per eseguire il deployment di Managed Airflow all'interno di un perimetro, sono necessari i seguenti passaggi:

  1. Abilita l'API Gestore contesto accesso e l'API Cloud Composer per il tuo progetto. Per riferimento, consulta Abilitare le API.

  2. Assicurati che il perimetro di servizio disponga dei seguenti servizi accessibili da 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.
  3. Crea un nuovo ambiente Airflow gestito con 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 DAG sia abilitata. Se il tuo ambiente utilizza Managed Airflow versione 1.15.0 e successive, la serializzazione è abilitata per impostazione predefinita.

    • Quando crei l'ambiente, ricordati di configurare l'accesso al server web di Airflow. Per migliorare la protezione, consenti l'accesso al server web solo da intervalli IP specifici. Per maggiori dettagli, consulta Configurare l'accesso alla rete del server web.

Aggiungere un ambiente esistente al perimetro

Installare i pacchetti PyPI nei Controlli di servizio VPC

Nella configurazione predefinita dei Controlli di servizio VPC, Managed Airflow 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 consiste nel configurare un repository PyPI privato:

  1. Compila il repository con i pacchetti verificati utilizzati dalla tua organizzazione, quindi configura Managed Airflow per installare le dipendenze Python da un repository privato.

  2. Concedi autorizzazioni aggiuntive per l'installazione di pacchetti da repository privati repository 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 i pacchetti da un repository pubblico.

Per installare i pacchetti PyPI da repository esterni allo spazio IP privato:

  1. Crea un repository remoto Artifact Registry.
  2. Concedi a questo repository l'accesso alle origini upstream.
  3. Configura Airflow per installare i pacchetti da un repository Artifact Registry.
  4. Concedi autorizzazioni aggiuntive per l'installazione di pacchetti da repository Artifact Registry al account di servizio del tuo ambiente, come descritto in Controllo dell'accesso.

Connessioni esterne

Per installare i pacchetti PyPI da repository esterni allo spazio IP privato:

  1. Configura Cloud NAT per consentire a Managed Airflow in esecuzione nello spazio IP privato di connettersi a repository PyPI esterni.

  2. Configura le tue regole firewall per consentire le connessioni in uscita dal cluster Composer al repository.

Configurare la connettività ai servizi e alle API di Google

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

Gli ambienti Managed Airflow 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 Managed Airflow.

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:

  1. Crea una nuova zona DNS e utilizza Nome DNS come nome DNS di questa zona.

    Esempio: pkg.dev.

  2. Aggiungi un set di record per 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 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

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

Configurazione delle regole del firewall

Se il tuo progetto ha regole firewall non predefinite, ad esempio regole che sostituiscono regole firewall implicite o modificano regole precompilate in rete predefinita, verifica che siano configurate le seguenti regole firewall.

Ad esempio, la creazione di un ambiente Airflow gestito potrebbe non riuscire se hai 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ù alta rispetto alla regola deny globale.

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

Descrizione Direzione Azione Origine o destinazione Protocolli Porte
DNS

Configura come descritto in Supporto dei Controlli di servizio VPC per Cloud DNS
- - - - -
Servizi e API di Google In uscita Consenti Indirizzi IPv4 di restricted.googleapis.com che utilizzi per i servizi e le API di Google. TCP 443
Nodi del cluster dell'ambiente In uscita Consenti Intervallo di indirizzi IP primario 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 control plane sono disponibili nella pagina Cluster del cluster dell'ambiente:

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

      Vai ad Ambienti

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

    3. Vai alla scheda Configurazione ambiente.

    4. Segui il link Visualizza dettagli cluster.

  • Puoi visualizzare l'intervallo 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 di 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

Quando risolvi i problemi di 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 su cloud-airflow-prod@system.gserviceaccount.com e service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com service account che configurano i componenti dei tuoi ambienti.

Il servizio Managed Airflow utilizza il cloud-airflow-prod@system.gserviceaccount.com account di servizio per gestire i componenti del progetto tenant dei tuoi ambienti.

Il service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com account di servizio, noto anche come service account dell'agente di servizio Composer, gestisce i componenti dell'ambiente nei progetti di servizio e host.

Passaggi successivi