Best practice per la sicurezza

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Proteggere l'ambiente Cloud Composer è fondamentale per proteggere i dati sensibili e impedire l'accesso non autorizzato. Questa pagina descrive le best practice chiave, inclusi i suggerimenti per la sicurezza di rete, Identity and Access Management, la crittografia e la gestione della configurazione dell'ambiente.

Per saperne di più sulle funzionalità di sicurezza disponibili in Cloud Composer, consulta la panoramica sulla sicurezza.

Gestisci la configurazione dell'ambiente e i DAG utilizzando il controllo della versione

Un esempio di pipeline CI/CD di Airflow
Figura 1. Un esempio di pipeline CI/CD di Airflow (fai clic per ingrandire)
  • Crea l'ambiente utilizzando Terraform. In questo modo, puoi archiviare la configurazione dell'ambiente come codice in un repository. In questo modo, le modifiche alla configurazione dell'ambiente possono essere esaminate prima di essere applicate e puoi ridurre il numero di utenti che dispongono delle autorizzazioni per modificare la configurazione assegnando ruoli con meno autorizzazioni.

  • In Identity and Access Management, disattiva l'accesso diretto ai DAG e alla configurazione dell'ambiente per gli utenti regolari, come descritto nella sezione Identity and Access Management.

  • Esegui il deployment dei DAG nel tuo ambiente con una pipeline CI/CD, in modo che il codice DAG venga recuperato da un repository. In questo modo, i DAG vengono esaminati e approvati prima che le modifiche vengano unite al sistema di controllo delle versioni. Durante la procedura di revisione, gli autori dell'approvazione si assicurano che i DAG soddisfino i criteri di sicurezza stabiliti all'interno dei loro team. Il passaggio di revisione è fondamentale per impedire il deployment di DAG che potrebbero eseguire azioni indesiderate.

    Alcuni aspetti importanti della sicurezza da prendere in considerazione durante la revisione dei DAG sono:

    • I DAG che modificano i contenuti del bucket dell'ambiente non devono modificare il codice di altri DAG o accedere a dati sensibili, a meno che non sia previsto.

    • I DAG non devono eseguire query dirette sul database Airflow, a meno che non sia previsto. Un DAG in un ambiente Cloud Composer ha accesso a tutte le tabelle nel database Airflow. È possibile recuperare informazioni da qualsiasi tabella, elaborarle e poi archiviarle al di fuori del database Airflow.

Sicurezza della rete

  • Utilizza gli ambienti IP privati in modo che ai componenti Airflow che eseguono il cluster dell'ambiente non vengano assegnati indirizzi IP pubblici e comunichino solo tramite la rete interna di Google.

  • Implementa regole firewall rigorose per controllare il traffico da e verso il cluster del tuo ambiente.

  • Configura la connettività ai servizi e alle API di Google tramite il dominio private.googleapis.com in modo che il tuo ambiente acceda ai servizi e alle API di Google tramite indirizzi IP instradabili solo da Google Cloud.

  • Esamina le regole firewall generali nel tuo progetto e nella rete VPC in cui si trova il tuo ambiente. A seconda della configurazione, i componenti Airflow del tuo ambiente, come i worker Airflow che eseguono i DAG, potrebbero accedere a internet.

Identity and Access Management

  • Isolare le autorizzazioni. Crea service account dell'ambiente e utilizza service account diversi per ambienti diversi. Assegna a questi service account solo le autorizzazioni strettamente necessarie per gestire questi ambienti ed eseguire le operazioni definite nei DAG di Airflow che eseguono.

  • Evita di utilizzare service account con autorizzazioni ampie. Sebbene sia possibile creare un ambiente che utilizza un account con autorizzazioni ampie, come quelle concesse dal ruolo di base Editor, ciò crea il rischio che i DAG utilizzino autorizzazioni più ampie del previsto.

  • Non fare affidamento sugli account di servizio predefiniti dei servizi Google utilizzati da Cloud Composer. Spesso è impossibile ridurre le autorizzazioni disponibili per questi service account senza influire anche su altri servizi Google nel tuo progetto.

  • Assicurati di conoscere le considerazioni sulla sicurezza per i service account dell'ambiente e di comprendere come questo account interagisce con le autorizzazioni e i ruoli che concedi ai singoli utenti del tuo progetto.

  • Rispetta il principio del privilegio minimo. Concedi agli utenti solo le autorizzazioni minime necessarie. Ad esempio, assegna ruoli IAM, in modo che solo gli amministratori possano accedere al bucket dell'ambiente e al cluster dell'ambiente , e l'accesso diretto sia disattivato per gli utenti regolari. Ad esempio, il ruolo Utente Composer consente l'accesso solo all'interfaccia utente DAG e all'interfaccia utente Airflow.

  • Applica il controllo dell'accesso all'interfaccia utente di Airflow, che consente di ridurre la visibilità nell'interfaccia utente di Airflow e nell'interfaccia utente DAG in base al ruolo Airflow dell'utente e può essere utilizzato per assegnare autorizzazioni a livello di DAG per singoli DAG.

  • Controlla regolarmente. Controlla regolarmente i ruoli e le autorizzazioni IAM per identificare e rimuovere i privilegi eccessivi o inutilizzati.

  • Fai attenzione al trasferimento e all'archiviazione di dati sensibili:

    • Fai attenzione quando memorizzi dati sensibili come informazioni di identificazione personale o password. Se necessario,utilizza Secret Manager per archiviare in modo sicuro connessioni e secret Airflow, chiavi API, password e certificati. Non memorizzare queste informazioni nei DAG o nelle variabili di ambiente.

    • Concedi le autorizzazioni IAM al bucket dell'ambiente solo a utenti attendibili. Se possibile, utilizza le autorizzazioni per oggetto. Considerazioni sulla sicurezza per i service account dell'ambiente elenca diversi modi in cui gli utenti con accesso al bucket dell'ambiente possono eseguire azioni per conto del service account dell'ambiente.

    • Assicurati di conoscere quali dati vengono archiviati negli snapshot e fornisci le autorizzazioni per creare snapshot dell'ambiente e accedere al bucket in cui sono archiviati solo agli utenti attendibili.

    • Per impostazione predefinita, tutte le interfacce esterne di Cloud Composer utilizzano la crittografia. Quando ti connetti a prodotti e servizi esterni, assicurati di utilizzare la comunicazione crittografata (SSL/TLS).

Passaggi successivi