Best practice per la sicurezza

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

Proteggere l'ambiente Airflow gestito è fondamentale per proteggere i dati sensibili e impedire l'accesso non autorizzato. Questa pagina illustra le best practice principali, inclusi i consigli per la sicurezza della rete, Identity and Access Management, la crittografia e la gestione della configurazione dell'ambiente.

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

Gestire 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 hanno le autorizzazioni per modificare la configurazione assegnando ruoli con meno autorizzazioni.

  • In Identity and Access Management, disabilita l'accesso diretto ai DAG e alla configurazione dell'ambiente per gli utenti normali, 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 della versione. Durante la procedura di revisione, gli approvatori si assicurano che i DAG soddisfino i criteri di sicurezza stabiliti nei loro team. Il passaggio di revisione è fondamentale per impedire il deployment di DAG che potrebbero eseguire azioni indesiderate.

    Di seguito sono riportati alcuni aspetti importanti della sicurezza da tenere in considerazione durante la revisione dei DAG:

    • I DAG che modificano il contenuto 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 al database Airflow, a meno che non sia previsto. Un DAG in un ambiente Airflow gestito ha accesso a tutte le tabelle del database Airflow. È possibile recuperare informazioni da qualsiasi tabella, elaborarle e poi archiviarle al di fuori del database Airflow.

Sicurezza della rete

Identity and Access Management

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

  • Evita di utilizzare account di servizio con autorizzazioni estese. Sebbene sia possibile creare un ambiente che utilizza un account con autorizzazioni estese, 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 Managed Airflow. Spesso è impossibile ridurre le autorizzazioni disponibili per questi account di servizio senza influire anche su altri servizi Google nel tuo progetto.

  • Assicurati di conoscere le considerazioni sulla sicurezza per gli account di servizio dell'ambiente e di comprendere in che modo 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 i ruoli IAM in modo che solo gli amministratori possano accedere al bucket dell'ambiente , e l'accesso diretto sia disabilitato per gli utenti normali. 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 Airflow, che consente di ridurre la visibilità nell'interfaccia utente 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 i singoli DAG.

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

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

    • Presta attenzione quando passi e archivi dati sensibili come informazioni che consentono l'identificazione personale o password. Se necessario, utilizza Secret Manager per archiviare in modo sicuro le connessioni e i secret Airflow, le chiavi API, le password e i certificati. Non archiviare queste informazioni nei DAG o nelle variabili di ambiente.

    • Concedi le autorizzazioni IAM al bucket dell'ambiente solo agli utenti attendibili. Se possibile, utilizza le autorizzazioni per oggetto. Le considerazioni sulla sicurezza per gli account di servizio dell'ambiente elencano diversi modi in cui gli utenti con accesso al bucket dell'ambiente possono eseguire azioni per conto dell'account di servizio dell'ambiente.

    • Assicurati di conoscere i dati 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 Airflow gestito utilizzano la crittografia. Quando ti connetti a prodotti e servizi esterni, assicurati di utilizzare la comunicazione criptata (SSL/TLS).

Passaggi successivi