Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Questa pagina descrive diversi meccanismi di controllo dell'accesso per l'interfaccia utente di Airflow e per l'interfaccia utente del DAG. Puoi utilizzare questi meccanismi, oltre al controllo dell'accesso fornito da IAM, per separare gli utenti nell'interfaccia utente di Airflow e nell'interfaccia utente del DAG del tuo ambiente.
Panoramica del controllo dell'accesso alla UI di Airflow in Cloud Composer
L'accesso all'interfaccia utente di Airflow e all'interfaccia utente del DAG e la visibilità dei dati e delle operazioni in queste interfacce utente sono controllati su due livelli in Cloud Composer:
L'accesso alla UI di Airflow e di DAG in Cloud Composer è controllate da IAM.
Se un account non ha un ruolo che visualizzare gli ambienti Cloud Composer nel tuo progetto, le UI di Airflow e DAG non sono disponibili.
IAM non fornisce alcun controllo granulare aggiuntivo delle autorizzazioni nell'interfaccia utente di Airflow o DAG.
Il modello di controllo dell'accesso di Apache Airflow consente di ridurre la visibilità nell'interfaccia utente di Airflow e DAG in base al ruolo utente.
Il controllo degli accessi di Apache Airflow è una funzionalità di Airflow, con il suo modello di utenti, ruoli, autorizzazioni, che differisce da o IAM.
Il controllo degli accessi di Apache Airflow utilizza autorizzazioni basate sulle risorse. Tutto Airflow
gli utenti con un ruolo Airflow specifico ricevono le autorizzazioni di questo ruolo. Ad esempio:
Utenti Airflow che hanno un ruolo con l'autorizzazione can delete on Connections
può eliminare le connessioni nella pagina Connessioni della UI di Airflow.
Puoi anche assegnare autorizzazioni a livello di DAG per i singoli DAG. Ad esempio, in modo che solo gli utenti con un ruolo Airflow specifico possano visualizzare un determinato DAG nell'interfaccia utente di Airflow. In Cloud Composer, puoi assegna automaticamente autorizzazioni a livello di DAG, in base alla sottocartella in cui si trova il file DAG nella di sincronizzare la directory di una VM con un bucket.
Prima di iniziare
La UI di Airflow con controllo dell'accesso è disponibile per Cloud Composer 1.13.4 o versioni successive. Airflow 1.10.10 e versioni successive. L'ambiente deve anche eseguire Python 3.
La registrazione dei ruoli per cartella è disponibile in Cloud Composer 1.18.12 e versioni successive in Airflow 2 e Cloud Composer 1.13.4 e versioni successive in Airflow 1.
Abilita il controllo dell'accesso alla UI di Airflow
Airflow 2
L'interfaccia utente di Airflow con il controllo dell'accesso è sempre attiva in Airflow 2.
Airflow 1
Per attivare l'interfaccia utente di Airflow con il controllo dell'accesso, sostituisci la seguente opzione di configurazione di Airflow:
Sezione | Chiave | Valore |
---|---|---|
webserver |
rbac |
True |
Puoi farlo per un ambiente esistente o quando ne crei uno nuovo.
Con questa configurazione, il tuo ambiente esegue la UI di Airflow con accesso Controllo anziché la UI classica di Airflow.
Gestisci i ruoli e le impostazioni di controllo dell'accesso di Airflow
Gli utenti con il ruolo Amministratore (o equivalente) possono visualizzare e modificare il controllo dell'accesso nella UI di Airflow.
Nella UI di Airflow, puoi configurare le impostazioni di controllo dell'accesso nel menu Sicurezza. Per ulteriori informazioni sul modello di controllo dell'accesso di Airflow, sulle autorizzazioni disponibili e sui ruoli predefiniti, consulta la documentazione del controllo dell'accesso all'interfaccia utente di Airflow.
Airflow 1 tratta il ruolo Utente come un modello per tutti i ruoli personalizzati. Airflow
copia continuamente le autorizzazioni dal ruolo Utente a tutti i ruoli personalizzati, tranne
le autorizzazioni per all_dags
.
Airflow gestisce il proprio elenco di utenti. Gli utenti con il ruolo Amministratore (o equivalente) possono visualizzare l'elenco degli utenti che hanno aperto l'interfaccia utente di Airflow di un ambiente e che sono stati registrati in Airflow. Questo elenco include anche gli utenti preregistrata manualmente da un amministratore, come descritto nella sezione seguente.
Registra gli utenti nell'interfaccia utente di Airflow
I nuovi utenti vengono registrati automaticamente quando aprono l'interfaccia utente di Airflow di un ambiente Cloud Composer per la prima volta.
Al momento della registrazione, agli utenti viene assegnato il ruolo specificato nell'opzione di configurazione di Airflow[webserver]rbac_user_registration_role
. Puoi controllare il ruolo degli utenti appena registrati sovrascrivendo questa opzione di configurazione di Airflow con un valore diverso.
Se non specificato, il ruolo di registrazione predefinito è Op
in ambienti con
Airflow 2.
Negli ambienti con Airflow 1.10.*, il ruolo di registrazione predefinito è Admin
.
I passaggi seguenti sono consigliati per creare una configurazione dei ruoli di base per dell'UI di Airflow:
Airflow 2
Gli amministratori dell'ambiente aprono l'interfaccia utente di Airflow per l'ambiente appena creato.
Concedi agli account amministratore il ruolo
Admin
. Il ruolo predefinito per nuovi account in ambienti con Airflow 2 èOp
. Per assegnare il ruoloAdmin
, esegui questo comando Comando interfaccia a riga di comando Airflow congcloud
:gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION \ users add-role -- -e USER_EMAIL -r Admin
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.USER_EMAIL
con l'indirizzo email di un account utente.
Ora gli amministratori possono configurare il controllo dell'accesso per i nuovi utenti, inclusa la concessione del ruolo
Admin
ad altri utenti.
Flusso d'aria 1
Gli amministratori dell'ambiente aprono l'interfaccia utente di Airflow per l'ambiente appena creato, dove vengono registrati automaticamente con il ruolo
Admin
.Sostituisci il parametro seguendo l'opzione di configurazione Airflow al ruolo richiesto per i nuovi utenti. Ad esempio, per
User
.Sezione Chiave Valore webserver
rbac_user_registration_role
User
o un altro ruolo diverso da AmministratoreOra gli amministratori possono configurare il controllo dell'accesso all'interfaccia utente di Airflow per i nuovi utenti, ad esempio concedere il ruolo
Admin
ad altri utenti.
Preregistrare gli utenti
Gli utenti vengono registrati automaticamente con ID numerici degli account utente Google (non indirizzi email) come nomi utente. Puoi anche preregistrare manualmente un utente e assegna loro un ruolo aggiungendo un record utente con il campo del nome utente impostato all'indirizzo email principale dell'utente. Quando un utente con un indirizzo email abbinando un record di un utente preregistrato accede per la prima volta alla UI di Airflow, il loro nome utente viene sostituito con l'ID utente attualmente (al momento al primo accesso) identificati dal loro indirizzo email. La relazione tra le identità Google (indirizzi email) e gli account utente (ID utente) non è fissa. I gruppi Google non possono essere preregistrati.
Per preregistrare gli utenti, puoi utilizzare l'interfaccia utente di Airflow o eseguire un comando dell'interfaccia a riga di comando di Airflow tramite Google Cloud CLI.
Per preregistrare un utente con un ruolo personalizzato tramite Google Cloud CLI, esegui il seguente comando Airflow CLI:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
users create -- \
-r ROLE \
-e USER_EMAIL \
-u USER_EMAIL \
-f FIRST_NAME \
-l LAST_NAME \
--use-random-password # The password value is required, but is not used
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome dell'ambienteLOCATION
: la regione in cui si trova l'ambienteROLE
: un ruolo Airflow per l'utente, ad esempioOp
USER_EMAIL
: l'indirizzo email dell'utenteFIRST_NAME
eLAST_NAME
: nome e cognome dell'utente
Esempio:
gcloud composer environments run example-environment \
--location us-central1 \
users create -- \
-r Op \
-e "example-user@example.com" \
-u "example-user@example.com" \
-f "Name" \
-l "Surname" \
--use-random-password
Rimuovi utenti
L'eliminazione di un utente da Airflow non comporta la revoca del suo accesso, perché viene registrato di nuovo automaticamente alla successiva accesso all'interfaccia utente di Airflow. Per revocare l'accesso all'intera UI di Airflow, rimuovi l'autorizzazione composer.environments.get
dal criterio di autorizzazione per il tuo progetto.
Puoi anche cambiare il ruolo dell'utente in Pubblico, per mantenere registrazione dell'utente, ma rimuove tutte le autorizzazioni per la UI di Airflow.
Configura automaticamente le autorizzazioni a livello di DAG
La funzione di registrazione dei ruoli per cartella crea automaticamente
ruolo Airflow personalizzato per ogni sottocartella
direttamente all'interno della cartella /dags
e concede a questo ruolo l'accesso a livello di DAG a tutti
I DAG i cui file di origine sono archiviati nella rispettiva sottocartella. Questo
semplifica la gestione dei ruoli Airflow personalizzati e del loro accesso ai DAG.
Come funziona la registrazione dei ruoli per cartella
La registrazione dei ruoli per cartella è un modo automatico per configurare i ruoli e le relative autorizzazioni a livello di DAG. Di conseguenza, può causare conflitti con altri meccanismi Airflow che concedono autorizzazioni a livello di DAG:
- Assegnazione manuale delle autorizzazioni DAG ai ruoli.
- Assegnazione dei DAG ai ruoli tramite la proprietà
access_control
in un DAG.
Per evitare questi conflitti, abilitando anche la registrazione dei ruoli per cartella cambia il comportamento di questi meccanismi.
In Airflow 1, la possibilità di utilizzare questi meccanismi è disabilitata quando La registrazione dei ruoli per cartella è abilitata. Tutta la gestione delle autorizzazioni a livello di DAG avviene solo tramite la registrazione dei ruoli per cartella.
In Airflow 2:
- Puoi concedere l'accesso DAG ai ruoli tramite la proprietà
access_control
definita nel codice sorgente dei DAG. - La concessione manuale delle autorizzazioni DAG (tramite l'interfaccia utente di Airflow o gcloud CLI) può causare conflitti. Ad esempio, se concedi manualmente autorizzazioni a livello di DAG a un ruolo per cartella, queste autorizzazioni possono essere rimosse o sovrascritte quando il gestore DAG sincronizza un DAG. Ti consigliamo di non concedere manualmente le autorizzazioni DAG.
- I ruoli hanno un'unione di autorizzazioni di accesso al DAG registrate tramite la registrazione dei ruoli per ogni cartella e definite nella proprietà
access_control
del DAG.
I DAG che si trovano direttamente nella cartella di primo livello /dags
non vengono assegnati automaticamente
con qualsiasi ruolo per cartella. Non sono accessibili con nessun ruolo per cartella. Altro
quali Amministratore, Operatore, Utente o qualsiasi ruolo personalizzato a cui sono state concesse le autorizzazioni,
per accedervi tramite la UI di Airflow e DAG.
Se carichi i DAG in sottocartelle con nomi che corrispondono ai ruoli Airflow integrati
e ruoli creati da Cloud Composer, quindi le autorizzazioni per i DAG
queste sottocartelle sono ancora assegnate a questi ruoli. Ad esempio, il caricamento di un DAG nella cartella /dags/Admin
concede le autorizzazioni per questo DAG al ruolo Amministratore. I ruoli Airflow integrati includono Amministratore, Operatore, Utente, Visualizzatore e Pubblico.
Cloud Composer crea NoDags e UserNoDags dopo l'attivazione della funzionalità di registrazione dei ruoli per cartella.
Airflow esegue la registrazione dei ruoli per cartella quando elabora i DAG
nello scheduler di Airflow. Se il tuo ambiente contiene più di cento DAG, potresti notare un aumento del tempo di analisi del DAG.
In questo caso, ti consigliamo di aumentare il parametro [scheduler]max_threads
per un ambiente Airflow 1 o [scheduler]parsing_processes
per Airflow 2.
Assegnare automaticamente i DAG ai ruoli per cartella
Per assegnare automaticamente i DAG ai ruoli per cartella:
Esegui l'override della seguente opzione di configurazione di Airflow:
Sezione Chiave Valore webserver
rbac_autoregister_per_folder_roles
True
Modifica il ruolo di registrazione del nuovo utente in un ruolo senza accesso ai DAG. In questo modo, i nuovi utenti non hanno accesso a nessun DAG fino a quando un amministratore assegna ai propri account un ruolo con autorizzazioni per DAG specifici.
UserNoDags e NoDags sono ruoli creati da Cloud Composer solo quando è abilitata la funzionalità di registrazione dei ruoli per cartella. Si tratta di un equivalente al ruolo Utente, ma senza accesso ai DAG. Il ruolo UserNoDags viene creato in Airflow 2 e il ruolo NoDags in Airflow 1.
In Airflow 2, esegui l'override della seguente configurazione di Airflow :
Sezione Chiave Valore webserver
rbac_user_registration_role
UserNoDags
In Airflow 1, esegui l'override della seguente configurazione di Airflow :
Sezione Chiave Valore webserver
rbac_user_registration_role
NoDags
Assicurati che gli utenti siano registrati in Airflow.
Assegna i ruoli agli utenti utilizzando uno dei seguenti approcci:
- Consenti ad Airflow di creare ruoli automaticamente in base alle sottocartelle dei DAG, e assegnare agli utenti questi ruoli.
- Pre-crea ruoli vuoti per le sottocartelle DAG, con nomi corrispondenti al nome di una sottocartella, quindi assegna gli utenti a questi ruoli. Ad esempio:
per la cartella
/dags/CustomFolder
, crea un ruolo denominatoCustomFolder
.
Carica i DAG in sottocartelle con nomi corrispondenti ai ruoli assegnati agli utenti. Queste sottocartelle devono trovarsi all'interno della cartella
/dags
nel bucket dell'ambiente. Airflow aggiunge le autorizzazioni ai DAG in un sottocartella, in modo che solo gli utenti con il ruolo corrispondente possano accedervi. tramite la UI di Airflow e di DAG.
Configurare manualmente le autorizzazioni a livello di DAG
Puoi configurare autorizzazioni a livello di DAG per i ruoli personalizzati per specificare quali DAG sono visibili per gruppi di utenti specifici.
Per configurare le autorizzazioni a livello di DAG nella UI di Airflow:
- L'amministratore crea ruoli vuoti per il raggruppamento dei DAG.
- L'amministratore assegna gli utenti ai ruoli appropriati.
- L'amministratore o gli utenti assegnano i DAG ai ruoli.
- Nell'interfaccia utente di Airflow, gli utenti possono vedere solo i DAG assegnati al loro gruppo.
I DAG possono essere assegnati ai ruoli tramite le proprietà DAG o dall'interfaccia utente di Airflow.
Assegnare i DAG ai ruoli nell'interfaccia utente di Airflow
Un amministratore può assegnare le autorizzazioni a livello di DAG necessarie ruoli nella UI di Airflow.
Questa operazione non è supportata nella UI dei DAG.
Assegnare i DAG ai ruoli nelle proprietà DAG
Puoi impostare
access_control
parametro DAG su un DAG, specificando
il ruolo o i ruoli di raggruppamento dei DAG a cui è assegnato il DAG.
Airflow 2
dag = DAG(
access_control={
'DagGroup': {'can_edit', 'can_read'},
},
...
)
Flusso d'aria 1
dag = DAG(
access_control={
'DagGroup': {'can_dag_edit', 'can_dag_read'},
},
...
)
Mappa i log di controllo nell'interfaccia utente di Airflow agli utenti
Gli audit log nella UI di Airflow sono mappati ID numerici degli account utente Google. Ad esempio, se un utente mette in pausa un DAG, viene aggiunta una voce ai log.
Airflow 2
In Airflow 2, puoi visualizzare i log di controllo nella pagina Sfoglia > Log di controllo dell'interfaccia utente di Airflow.
Airflow 1
In Airflow 1, puoi visualizzare gli audit log in Sfoglia > Pagina Log.
Una voce tipica elenca un ID numerico nel campo Proprietario:
accounts.google.com:NUMERIC_ID
. Puoi mappare gli ID numerici alle email degli utenti nella pagina Sicurezza > Elenca utenti. Questa pagina è disponibile per gli utenti con il ruolo Admin
.
Nota che la relazione tra Identità (indirizzi email) e account utente (ID utente) Google non è stato corretto.
Passaggi successivi
- Eseguire l'override delle opzioni di configurazione di Airflow
- Panoramica sulla sicurezza
- Controllo dell'accesso di Cloud Composer