Airflow Configuration

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Konfigurasie-lêer

Apache Airflow genereer 'n konfigurasie-lêer op alle airflow-masjiene genaamd airflow.cfg in die tuiste van die airflow-gebruiker. Hierdie konfigurasie-lêer bevat konfigurasie-inligting en kan interessante en sensitiewe inligting bevat.

Daar is twee maniere om toegang tot hierdie lêer te verkry: Deur 'n airflow-masjien te kompromitteer, of deur toegang tot die webkonsol te verkry.

Let daarop dat die waardes binne die konfigurasie-lêer nie noodwendig die gebruikte waardes is nie, aangesien jy hulle kan oorskryf deur omgewingsveranderlikes soos AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true' in te stel.

As jy toegang het tot die konfigurasie-lêer in die webbediener, kan jy die werklike lopende konfigurasie op dieselfde bladsy as die konfigurasie sien. As jy toegang het tot 'n masjien binne die airflow-omgewing, kyk na die omgewing.

Sommige interessante waardes om na te kyk wanneer jy die konfigurasie-lêer lees:

[api]

  • access_control_allow_headers: Dit dui die toegelate koptekens vir CORS aan

  • access_control_allow_methods: Dit dui die toegelate metodes vir CORS aan

  • access_control_allow_origins: Dit dui die toegelate oorspronge vir CORS aan

  • auth_backend: Volgens die dokumentasie kan 'n paar opsies gebruik word om te konfigureer wie toegang tot die API kan verkry:

  • airflow.api.auth.backend.deny_all: Standaard kan niemand toegang tot die API verkry nie

  • airflow.api.auth.backend.default: Almal kan dit sonder verifikasie gebruik

  • airflow.api.auth.backend.kerberos_auth: Om kerberos-verifikasie te konfigureer

  • airflow.api.auth.backend.basic_auth: Vir basiese verifikasie

  • airflow.composer.api.backend.composer_auth: Gebruik komponiste-verifikasie (GCP) (van hier).

  • composer_auth_user_registration_role: Dit dui die rol aan wat die komponiste-gebruiker in airflow sal kry (Op standaard).

  • Jy kan ook jou eie verifikasiemetode met Python skep.

  • google_key_path: Pad na die GCP-diensrekening-sleutel

[atlas]

  • password: Atlas wagwoord

  • username: Atlas gebruikersnaam

[celery]

  • flower_basic_auth : Gelde (gebruiker1:wagwoord1,gebruiker2:wagwoord2)

  • result_backend: Postgres-url wat moontlik geloofsbriewe kan bevat.

  • ssl_cacert: Pad na die cacert

  • ssl_cert: Pad na die sertifikaat

  • ssl_key: Pad na die sleutel

[core]

  • dag_discovery_safe_mode: Standaard geaktiveer. Wanneer DAG's ontdek word, ignoreer enige lêers wat nie die strings DAG en airflow bevat nie.

  • fernet_key: Sleutel om versleutelde veranderlikes te stoor (simmetries)

  • hide_sensitive_var_conn_fields: Standaard geaktiveer, verberg sensitiewe inligting van verbindings.

  • security: Watter sekuriteitsmodule om te gebruik (byvoorbeeld kerberos)

[dask]

  • tls_ca: Pad na ca

  • tls_cert: Deel na die sertifikaat

  • tls_key: Deel na die tls-sleutel

[kerberos]

  • ccache: Pad na ccache-lêer

  • forwardable: Standaard geaktiveer

[logging]

  • google_key_path: Pad na GCP JSON-geloofsbriewe.

[secrets]

  • backend: Volledige klassenaam van die geheime agterkant om te aktiveer

  • backend_kwargs: Die backend_kwargs-param word in 'n woordeboek gelaai en aan die init van die geheime agterkantklas oorgedra.

[smtp]

  • smtp_password: SMTP-wagwoord

  • smtp_user: SMTP-gebruiker

[webserver]

  • cookie_samesite: Standaard is dit Lax, so dit is reeds die swakste moontlike waarde

  • cookie_secure: Stel die veilige vlag op die sessiekoekie in

  • expose_config: Standaard is dit vals, as waar, kan die konfigurasie van die webkonsol gelees word

  • expose_stacktrace: Standaard is dit waar, dit sal Python-stapelopsporings wys (moontlik nuttig vir 'n aanvaller)

  • secret_key: Dit is die sleutel wat deur flask gebruik word om die koekies te onderteken (as jy dit het, kan jy enige gebruiker in Airflow voorstaan)

  • web_server_ssl_cert: Pad na die SSL-sertifikaat

  • web_server_ssl_key: Pad na die SSL-sleutel

  • x_frame_enabled: Standaard is dit Waar, so klikkaping is nie moontlik nie

Web-verifikasie

Standaard word web-verifikasie gespesifiseer in die lêer webserver_config.py en is gekonfigureer as

AUTH_TYPE = AUTH_DB

Wat beteken dat die verifikasie teen die databasis gecheck word. Nietemin, ander konfigurasies is moontlik soos

AUTH_TYPE = AUTH_OAUTH

Om die verifikasie aan derdepartydiens oor te laat.

Daar is egter ook 'n opsie om anonieme gebruikers toegang te gee, deur die volgende parameter in te stel op die gewenste rol:

AUTH_ROLE_PUBLIC = 'Admin'
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated