# Airflow RBAC

{{#include ../../banners/hacktricks-training.md}}

## RBAC

(Dai documenti)\[https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html]: Airflow viene fornito con un **set di ruoli per impostazione predefinita**: **Admin**, **User**, **Op**, **Viewer** e **Public**. **Solo gli utenti `Admin`** possono **configurare/modificare i permessi per altri ruoli**. Ma non è consigliato che gli utenti `Admin` modifichino questi ruoli predefiniti in alcun modo rimuovendo o aggiungendo permessi a questi ruoli.

- **Gli utenti `Admin`** hanno tutti i permessi possibili.
- **Gli utenti `Public`** (anonimi) non hanno alcun permesso.
- **Gli utenti `Viewer`** hanno permessi di visualizzazione limitati (solo lettura). Non **possono vedere la configurazione.**
- **Gli utenti `User`** hanno permessi di `Viewer` più permessi aggiuntivi che consentono di gestire i DAG in parte. Possono **vedere il file di configurazione.**
- **Gli utenti `Op`** hanno permessi di `User` più permessi aggiuntivi di op.

Nota che gli utenti **admin** possono **creare più ruoli** con permessi **più granulari**.

Nota anche che l'unico ruolo predefinito con **permesso di elencare utenti e ruoli è Admin, nemmeno Op** sarà in grado di farlo.

### Permessi Predefiniti

Questi sono i permessi predefiniti per ruolo predefinito:

- **Admin**

\[può eliminare su Connections, può leggere su Connections, può modificare su Connections, può creare su Connections, può leggere su DAGs, può modificare su DAGs, può eliminare su DAGs, può leggere su DAG Runs, può leggere su Task Instances, può modificare su Task Instances, può eliminare su DAG Runs, può creare su DAG Runs, può modificare su DAG Runs, può leggere su Audit Logs, può leggere su ImportError, può eliminare su Pools, può leggere su Pools, può modificare su Pools, può creare su Pools, può leggere su Providers, può eliminare su Variables, può leggere su Variables, può modificare su Variables, può creare su Variables, può leggere su XComs, può leggere su DAG Code, può leggere su Configurations, può leggere su Plugins, può leggere su Roles, può leggere su Permissions, può eliminare su Roles, può modificare su Roles, può creare su Roles, può leggere su Users, può creare su Users, può modificare su Users, può eliminare su Users, può leggere su DAG Dependencies, può leggere su Jobs, può leggere su My Password, può modificare su My Password, può leggere su My Profile, può modificare su My Profile, può leggere su SLA Misses, può leggere su Task Logs, può leggere su Website, accesso al menu su Browse, accesso al menu su DAG Dependencies, accesso al menu su DAG Runs, accesso al menu su Documentation, accesso al menu su Docs, accesso al menu su Jobs, accesso al menu su Audit Logs, accesso al menu su Plugins, accesso al menu su SLA Misses, accesso al menu su Task Instances, può creare su Task Instances, può eliminare su Task Instances, accesso al menu su Admin, accesso al menu su Configurations, accesso al menu su Connections, accesso al menu su Pools, accesso al menu su Variables, accesso al menu su XComs, può eliminare su XComs, può leggere su Task Reschedules, accesso al menu su Task Reschedules, può leggere su Triggers, accesso al menu su Triggers, può leggere su Passwords, può modificare su Passwords, accesso al menu su List Users, accesso al menu su Security, accesso al menu su List Roles, può leggere su User Stats Chart, accesso al menu su User's Statistics, accesso al menu su Base Permissions, può leggere su View Menus, accesso al menu su Views/Menus, può leggere su Permission Views, accesso al menu su Permission on Views/Menus, può ottenere su MenuApi, accesso al menu su Providers, può creare su XComs]

- **Op**

\[può eliminare su Connections, può leggere su Connections, può modificare su Connections, può creare su Connections, può leggere su DAGs, può modificare su DAGs, può eliminare su DAGs, può leggere su DAG Runs, può leggere su Task Instances, può modificare su Task Instances, può eliminare su DAG Runs, può creare su DAG Runs, può modificare su DAG Runs, può leggere su Audit Logs, può leggere su ImportError, può eliminare su Pools, può leggere su Pools, può modificare su Pools, può creare su Pools, può leggere su Providers, può eliminare su Variables, può leggere su Variables, può modificare su Variables, può creare su Variables, può leggere su XComs, può leggere su DAG Code, può leggere su Configurations, può leggere su Plugins, può leggere su DAG Dependencies, può leggere su Jobs, può leggere su My Password, può modificare su My Password, può leggere su My Profile, può modificare su My Profile, può leggere su SLA Misses, può leggere su Task Logs, può leggere su Website, accesso al menu su Browse, accesso al menu su DAG Dependencies, accesso al menu su DAG Runs, accesso al menu su Documentation, accesso al menu su Docs, accesso al menu su Jobs, accesso al menu su Audit Logs, accesso al menu su Plugins, accesso al menu su SLA Misses, accesso al menu su Task Instances, può creare su Task Instances, può eliminare su Task Instances, accesso al menu su Admin, accesso al menu su Configurations, accesso al menu su Connections, accesso al menu su Pools, accesso al menu su Variables, accesso al menu su XComs, può eliminare su XComs]

- **User**

\[può leggere su DAGs, può modificare su DAGs, può eliminare su DAGs, può leggere su DAG Runs, può leggere su Task Instances, può modificare su Task Instances, può eliminare su DAG Runs, può creare su DAG Runs, può modificare su DAG Runs, può leggere su Audit Logs, può leggere su ImportError, può leggere su XComs, può leggere su DAG Code, può leggere su Plugins, può leggere su DAG Dependencies, può leggere su Jobs, può leggere su My Password, può modificare su My Password, può leggere su My Profile, può modificare su My Profile, può leggere su SLA Misses, può leggere su Task Logs, può leggere su Website, accesso al menu su Browse, accesso al menu su DAG Dependencies, accesso al menu su DAG Runs, accesso al menu su Documentation, accesso al menu su Docs, accesso al menu su Jobs, accesso al menu su Audit Logs, accesso al menu su Plugins, accesso al menu su SLA Misses, accesso al menu su Task Instances, può creare su Task Instances, può eliminare su Task Instances]

- **Viewer**

\[può leggere su DAGs, può leggere su DAG Runs, può leggere su Task Instances, può leggere su Audit Logs, può leggere su ImportError, può leggere su XComs, può leggere su DAG Code, può leggere su Plugins, può leggere su DAG Dependencies, può leggere su Jobs, può leggere su My Password, può modificare su My Password, può leggere su My Profile, può modificare su My Profile, può leggere su SLA Misses, può leggere su Task Logs, può leggere su Website, accesso al menu su Browse, accesso al menu su DAG Dependencies, accesso al menu su DAG Runs, accesso al menu su Documentation, accesso al menu su Docs, accesso al menu su Jobs, accesso al menu su Audit Logs, accesso al menu su Plugins, accesso al menu su SLA Misses, accesso al menu su Task Instances]

- **Public**

\[]

{{#include ../../banners/hacktricks-training.md}}
