Konfiguracija Airflow-a
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Konfiguracioni Fajl
Apache Airflow generiše config fajl na svim airflow mašinama pod nazivom airflow.cfg
u home direktorijumu korisnika airflow. Ovaj config fajl sadrži informacije o konfiguraciji i može sadržati zanimljive i osetljive informacije.
Postoje dva načina da se pristupi ovom fajlu: kompromitovanjem neke airflow mašine ili pristupanjem web konzoli.
Imajte na umu da vrednosti unutar config fajla možda nisu one koje se koriste, jer ih možete prepisati postavljanjem env varijabli kao što su AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
.
Ako imate pristup config fajlu na web serveru, možete proveriti pravu aktivnu konfiguraciju na istoj stranici na kojoj se prikazuje konfiguracija.
Ako imate pristup nekoj mašini unutar airflow okruženja, proverite okruženje.
Neke zanimljive vrednosti koje treba proveriti prilikom čitanja config fajla:
[api]
access_control_allow_headers
: Ovo označava dozvoljene zaglavlja za CORSaccess_control_allow_methods
: Ovo označava dozvoljene metode za CORSaccess_control_allow_origins
: Ovo označava dozvoljene izvore za CORSauth_backend
: Prema dokumentaciji nekoliko opcija može biti postavljeno za konfiguraciju ko može pristupiti API-ju:airflow.api.auth.backend.deny_all
: Podrazumevano niko ne može pristupiti API-juairflow.api.auth.backend.default
: Svi mogu pristupiti bez autentifikacijeairflow.api.auth.backend.kerberos_auth
: Za konfiguraciju kerberos autentifikacijeairflow.api.auth.backend.basic_auth
: Za osnovnu autentifikacijuairflow.composer.api.backend.composer_auth
: Koristi autentifikaciju kompozitora (GCP) (iz ovde).composer_auth_user_registration_role
: Ovo označava ulogu koju će korisnik kompozitora dobiti unutar airflow-a (Op podrazumevano).- Takođe možete napraviti svoju vlastitu autentifikaciju metodom u python-u.
google_key_path
: Putanja do GCP servisnog naloga
[atlas]
password
: Atlas lozinkausername
: Atlas korisničko ime
[celery]
flower_basic_auth
: Akreditivi (user1:password1,user2:password2)result_backend
: Postgres url koji može sadržati akreditive.ssl_cacert
: Putanja do cacertssl_cert
: Putanja do certifikatassl_key
: Putanja do ključa
[core]
dag_discovery_safe_mode
: Omogućeno podrazumevano. Prilikom otkrivanja DAG-ova, ignorišite sve fajlove koji ne sadrže stringoveDAG
iairflow
.fernet_key
: Ključ za čuvanje enkriptovanih varijabli (simetričan)hide_sensitive_var_conn_fields
: Omogućeno podrazumevano, sakrijte osetljive informacije o konekcijama.security
: Koji sigurnosni modul koristiti (na primer kerberos)
[dask]
tls_ca
: Putanja do catls_cert
: Putanja do certifikatatls_key
: Putanja do tls ključa
[kerberos]
ccache
: Putanja do ccache fajlaforwardable
: Omogućeno podrazumevano
[logging]
google_key_path
: Putanja do GCP JSON akreditiva.
[secrets]
backend
: Puno ime klase backend-a za tajne koje treba omogućitibackend_kwargs
: Parametar backend_kwargs se učitava u rečnik i prosleđuje init klasi backend-a za tajne.
[smtp]
smtp_password
: SMTP lozinkasmtp_user
: SMTP korisnik
[webserver]
cookie_samesite
: Podrazumevano je Lax, tako da je već najslabija moguća vrednostcookie_secure
: Postavite sigurnu oznaku na sesijskom kolačićuexpose_config
: Podrazumevano je False, ako je tačno, config se može pročitati iz web konzoleexpose_stacktrace
: Podrazumevano je True, prikazaće python tracebacks (potencijalno korisno za napadača)secret_key
: Ovo je ključ koji koristi flask za potpisivanje kolačića (ako imate ovo možete imitirati bilo kog korisnika u Airflow-u)web_server_ssl_cert
: Putanja do SSL certifikataweb_server_ssl_key
: Putanja do SSL ključax_frame_enabled
: Podrazumevano je True, tako da podrazumevano clickjacking nije moguć
Web Autentifikacija
Podrazumevano je web autentifikacija specificirana u fajlu webserver_config.py
i konfiguriše se kao
AUTH_TYPE = AUTH_DB
Što znači da se autentifikacija proverava u odnosu na bazu podataka. Međutim, druge konfiguracije su moguće kao
AUTH_TYPE = AUTH_OAUTH
Da se autentifikacija prepusti uslugama trećih strana.
Međutim, postoji i opcija da se omogući pristup anonimnim korisnicima, postavljanjem sledećeg parametra na željenu ulogu:
AUTH_ROLE_PUBLIC = 'Admin'
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.