Configuration Airflow
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Fichier de Configuration
Apache Airflow gĂ©nĂšre un fichier de config sur toutes les machines airflow appelĂ© airflow.cfg dans le rĂ©pertoire personnel de lâutilisateur airflow. Ce fichier de config contient des informations de configuration et peut contenir des informations intĂ©ressantes et sensibles.
Il existe deux façons dâaccĂ©der Ă ce fichier : en compromettant une machine airflow ou en accĂ©dant Ă la console web.
Notez que les valeurs Ă lâintĂ©rieur du fichier de config peuvent ne pas ĂȘtre celles utilisĂ©es, car vous pouvez les Ă©craser en dĂ©finissant des variables dâenvironnement telles que AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'.
Si vous avez accĂšs au fichier de config sur le serveur web, vous pouvez vĂ©rifier la vraie configuration en cours sur la mĂȘme page oĂč la config est affichĂ©e.
Si vous avez accĂšs Ă une machine dans lâenvironnement airflow, vĂ©rifiez lâenvironnement.
Quelques valeurs intéressantes à vérifier lors de la lecture du fichier de config :
[api]
access_control_allow_headers: Cela indique les en-tĂȘtes autorisĂ©s pour CORSaccess_control_allow_methods: Cela indique les mĂ©thodes autorisĂ©es pour CORSaccess_control_allow_origins: Cela indique les origines autorisĂ©es pour CORSauth_backend: Selon la documentation, quelques options peuvent ĂȘtre mises en place pour configurer qui peut accĂ©der Ă lâAPI :airflow.api.auth.backend.deny_all: Par dĂ©faut, personne ne peut accĂ©der Ă lâAPIairflow.api.auth.backend.default: Tout le monde peut y accĂ©der sans authentificationairflow.api.auth.backend.kerberos_auth: Pour configurer lâauthentification kerberosairflow.api.auth.backend.basic_auth: Pour lâauthentification basiqueairflow.composer.api.backend.composer_auth: Utilise lâauthentification des compositeurs (GCP) (depuis ici).composer_auth_user_registration_role: Cela indique le rĂŽle que lâutilisateur compositeur obtiendra dans airflow (Op par dĂ©faut).- Vous pouvez Ă©galement crĂ©er votre propre mĂ©thode dâauthentification avec python.
google_key_path: Chemin vers la clé de compte de service GCP
[atlas]
password: Mot de passe Atlasusername: Nom dâutilisateur Atlas
[celery]
flower_basic_auth: Identifiants (user1:password1,user2:password2)result_backend: URL Postgres qui peut contenir des identifiants.ssl_cacert: Chemin vers le cacertssl_cert: Chemin vers le certssl_key: Chemin vers la clé
[core]
dag_discovery_safe_mode: Activé par défaut. Lors de la découverte des DAGs, ignorez tous les fichiers qui ne contiennent pas les chaßnesDAGetairflow.fernet_key: Clé pour stocker des variables chiffrées (symétrique)hide_sensitive_var_conn_fields: Activé par défaut, cache les informations sensibles des connexions.security: Quel module de sécurité utiliser (par exemple kerberos)
[dask]
tls_ca: Chemin vers catls_cert: Chemin vers le certtls_key: Chemin vers la clé tls
[kerberos]
ccache: Chemin vers le fichier ccacheforwardable: Activé par défaut
[logging]
google_key_path: Chemin vers les identifiants JSON GCP.
[secrets]
backend: Nom complet de la classe du backend des secrets à activerbackend_kwargs: Le paramÚtre backend_kwargs est chargé dans un dictionnaire et passé à init de la classe du backend des secrets.
[smtp]
smtp_password: Mot de passe SMTPsmtp_user: Utilisateur SMTP
[webserver]
cookie_samesite: Par dĂ©faut, câest Lax, donc câest dĂ©jĂ la valeur la plus faible possiblecookie_secure: DĂ©finir le drapeau sĂ©curisĂ© sur le cookie de sessionexpose_config: Par dĂ©faut, câest Faux, si vrai, la config peut ĂȘtre lue depuis la console webexpose_stacktrace: Par dĂ©faut, câest Vrai, cela affichera les tracebacks python (potentiellement utiles pour un attaquant)secret_key: Câest la clĂ© utilisĂ©e par flask pour signer les cookies (si vous avez cela, vous pouvez usurper lâidentitĂ© de nâimporte quel utilisateur dans Airflow)web_server_ssl_cert: Chemin vers le certificat SSLweb_server_ssl_key: Chemin vers la clĂ© SSLx_frame_enabled: Par dĂ©faut, câest Vrai, donc par dĂ©faut le clickjacking nâest pas possible
Authentification Web
Par dĂ©faut, lâauthentification web est spĂ©cifiĂ©e dans le fichier webserver_config.py et est configurĂ©e comme
AUTH_TYPE = AUTH_DB
Ce qui signifie que lâauthentification est vĂ©rifiĂ©e par rapport Ă la base de donnĂ©es. Cependant, dâautres configurations sont possibles comme
AUTH_TYPE = AUTH_OAUTH
Pour laisser lâauthentification aux services tiers.
Cependant, il existe Ă©galement une option pour permettre lâaccĂšs aux utilisateurs anonymes, en dĂ©finissant le paramĂštre suivant au rĂŽle souhaitĂ© :
AUTH_ROLE_PUBLIC = 'Admin'
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

