Configurazione dei Controlli di servizio VPC

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Controlli di servizio VPC: consentono alle organizzazioni di definire un perimetro Risorse Google Cloud per mitigare i rischi di esfiltrazione di dati.

È possibile eseguire il deployment degli ambienti Cloud Composer all'interno di un servizio perimetrale. Configurando il tuo ambiente con Controlli di servizio VPC, può mantenere privati i dati sensibili, sfruttando al contempo i vantaggi dell'ambiente di orchestrazione dei flussi di lavoro di Cloud Composer.

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

  • Ora Cloud Composer può essere selezionato come servizio sicuro all'interno di un Perimetro Controlli di servizio VPC.
  • Tutte le risorse sottostanti utilizzate da Cloud Composer sono configurate in modo da supportano l'architettura dei Controlli di servizio VPC e ne seguono le regole.

Deployment di ambienti Cloud Composer con i Controlli di servizio VPC che 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 i dati in siti non autorizzati Risorse Google Cloud o utenti malintenzionati esterni che accedono delle 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 dalla il perimetro e l'accesso dall'esterno del perimetro è bloccato.

Per consentire l'accesso dall'esterno del perimetro di servizio, configura la 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

Sono necessari ulteriori passaggi per eseguire il deployment di Cloud Composer un perimetro. Quando crei il tuo ambiente Cloud Composer:

  1. Abilita l'API Access Context Manager e l'API Cloud Composer per del progetto. Per riferimento, consulta Attivazione delle API.

  2. Assicurati che il perimetro di servizio abbia i seguenti servizi accessibili da VPC: altrimenti il tuo ambiente potrebbe non 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. Crea un nuovo ambiente Cloud Composer con IP privato abilitato. Tieni presente che questa impostazione deve essere configurata durante la creazione dell'ambiente.

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

Configurazione di ambienti esistenti con Controlli di servizio VPC

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

Installazione dei pacchetti PyPI

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

È anche possibile installare pacchetti PyPI da repository al di fuori con lo spazio IP privato. Segui questi passaggi:

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

Quando utilizzi questa configurazione, assicurati di comprendere i rischi associati all'utilizzo di repository. Assicurati di fidarti dei contenuti e dell'integrità di qualsiasi repository, perché queste connessioni potrebbero potenzialmente 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 e configurare l'accesso alle API e ai servizi Google tramite restricted.googleapis.com. Questo dominio blocca l'accesso alle API di Google e che non supportano Controlli di servizio VPC.

Gli ambienti Cloud Composer utilizzano i domini seguenti:

  • L'app *.googleapis.com viene utilizzata per accedere ad altri servizi Google.

  • *.composer.cloud.google.com viene utilizzato per rendere il server web Airflow del tuo accessibile all'ambiente di gestione. Questa regola deve essere applicata prima di creare una completamente gestito di Google Cloud.

    • In alternativa, puoi creare una regola per una regione specifica. Per farlo, usa REGION.composer.cloud.google.com. Sostituisci REGION con la regione in cui si trova l'ambiente, per ad esempio us-central1.
  • (Facoltativo) *.composer.googleusercontent.com viene utilizzato per accedere alla il server web Airflow del tuo ambiente. Questa regola è obbligatoria solo se al server web Airflow da un'istanza in esecuzione rete VPC, altrimenti non è richiesta. Uno scenario comune per questo è quando vuoi chiamare l'API REST Airflow dall'interno della rete VPC.

    • In alternativa, puoi creare una regola per un ambiente specifico. A farlo, utilizza ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com di Google. Sostituisci ENVIRONMENT_WEB_SERVER_NAME con la parte univoca di l'URL UI di Airflow del tuo ambiente, ad esempio bffe6ce6c4304c55acca0e57be23128c-dot-us-central1.
  • *.pkg.dev viene utilizzato per ottenere immagini dell'ambiente, ad esempio durante la creazione o aggiornare un ambiente.

  • *.gcr.io GKE richiede la connettività a 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
*.composer.googleusercontent.com
(facoltativo, vedi descrizione)
composer.googleusercontent.com. Nome DNS: *.composer.googleusercontent.com.
Tipo di record di risorse: CNAME
Nome canonico: composer.googleusercontent.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 un nome DNS come nome DNS. di questa 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 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 e 199.36.153.7

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, come regole che hanno la precedenza regole firewall implicite oppure modificare le regole precompilate in la rete predefinita, quindi verifica che le seguenti regole firewall siano configurato.

Ad esempio, Cloud Composer potrebbe non creare un ambiente se esiste 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:

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
Subnet di connessione (se il tuo ambiente utilizza Private Service Connect) In uscita Consenti Intervallo di subnet di connessione Cloud Composer TCP 3306, 3307
(Se il tuo ambiente utilizza 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, servizi e piano di controllo sono disponibili la 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 dell'ambiente. Si apre la pagina Dettagli ambiente.

    3. Vai alla scheda Configurazione dell'ambiente.

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

  • Puoi vedere i dati sull'ambiente Intervallo IP della rete tenant di Cloud Composer nella scheda Configurazione dell'ambiente.

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

    Vai a Reti VPC

Log dei Controlli di servizio VPC

Durante la risoluzione dei problemi relativi alla creazione dell'ambiente, puoi analizzare gli audit log generate 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 che configurano i componenti degli ambienti.

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

La service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com dell'account di servizio, noto anche come Composer Service Agent Service Account gestisce componenti dell'ambiente progetti di servizio e host.

Limitazioni

  • Quando Cloud Composer è in esecuzione all'interno di un perimetro, i repository PyPI pubblici sono soggetti a restrizioni. Consulta Installare le dipendenze Python per apprendere come installare i moduli PyPI in modalità IP privato.

Passaggi successivi