Airflow Configuration

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Configuration File

Apache Airflow inazalisha config file katika mashine zote za airflow inayoitwa airflow.cfg katika nyumbani mwa mtumiaji wa airflow. Faili hii ya config ina taarifa za usanidi na inaweza kuwa na taarifa za kuvutia na nyeti.

Kuna njia mbili za kufikia faili hii: Kwa kuathiri mashine fulani ya airflow, au kwa kufikia console ya wavuti.

Kumbuka kwamba thamani ndani ya faili ya config zinaweza zisikuwa zile zinazotumika, kwani unaweza kuzibadilisha kwa kuweka mabadiliko ya mazingira kama AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'.

Ikiwa una ufikiaji wa faili ya config katika seva ya wavuti, unaweza kuangalia usanidi halisi unaoendesha katika ukurasa huo ambapo config inaonyeshwa.
Ikiwa una ufikiaji wa mashine fulani ndani ya mazingira ya airflow, angalia mazingira.

Baadhi ya thamani za kuvutia za kuangalia unapokuwa unakagua faili ya config:

[api]

  • access_control_allow_headers: Hii inaonyesha vichwa vilivyokubaliwa kwa CORS
  • access_control_allow_methods: Hii inaonyesha mbinu zilizokubaliwa kwa CORS
  • access_control_allow_origins: Hii inaonyesha michango iliyokubaliwa kwa CORS
  • auth_backend: Kulingana na docs chaguzi chache zinaweza kuwekwa ili kuunda nani anaweza kufikia API:
  • airflow.api.auth.backend.deny_all: Kwa default hakuna anayeweza kufikia API
  • airflow.api.auth.backend.default: Kila mtu anaweza kuifikia bila uthibitisho
  • airflow.api.auth.backend.kerberos_auth: Ili kuunda uthibitisho wa kerberos
  • airflow.api.auth.backend.basic_auth: Kwa uthibitisho wa msingi
  • airflow.composer.api.backend.composer_auth: Inatumia uthibitisho wa waandishi (GCP) (kutoka hapa).
  • composer_auth_user_registration_role: Hii inaonyesha nafasi ambayo mtumiaji wa muandishi atapata ndani ya airflow (Op kwa default).
  • Unaweza pia kuunda njia yako ya uthibitisho kwa kutumia python.
  • google_key_path: Njia ya GCP service account key

[atlas]

  • password: Nenosiri la Atlas
  • username: Jina la mtumiaji la Atlas

[celery]

  • flower_basic_auth : Akida (user1:password1,user2:password2)
  • result_backend: URL ya Postgres ambayo inaweza kuwa na akida.
  • ssl_cacert: Njia ya cacert
  • ssl_cert: Njia ya cheti
  • ssl_key: Njia ya ufunguo

[core]

  • dag_discovery_safe_mode: Imewezeshwa kwa default. Wakati wa kugundua DAGs, puuza faili zozote ambazo hazina nyuzi DAG na airflow.
  • fernet_key: Ufunguzi wa kuhifadhi mabadiliko yaliyosimbwa (symmetric)
  • hide_sensitive_var_conn_fields: Imewezeshwa kwa default, ficha taarifa nyeti za muunganisho.
  • security: Moduli gani ya usalama itumike (kwa mfano kerberos)

[dask]

  • tls_ca: Njia ya ca
  • tls_cert: Sehemu ya cheti
  • tls_key: Sehemu ya ufunguo wa tls

[kerberos]

  • ccache: Njia ya faili ya ccache
  • forwardable: Imewezeshwa kwa default

[logging]

  • google_key_path: Njia ya GCP JSON creds.

[secrets]

  • backend: Jina kamili la darasa la nyuma la siri ili kuwezesha
  • backend_kwargs: Param ya backend_kwargs inasomwa katika kamusi na kupitishwa kwa init ya darasa la nyuma la siri.

[smtp]

  • smtp_password: Nenosiri la SMTP
  • smtp_user: Mtumiaji wa SMTP

[webserver]

  • cookie_samesite: Kwa default ni Lax, hivyo tayari ni thamani dhaifu zaidi
  • cookie_secure: Weka bendera salama kwenye cookie ya kikao
  • expose_config: Kwa default ni False, ikiwa ni kweli, config inaweza kusomwa kutoka kwa console ya wavuti
  • expose_stacktrace: Kwa default ni Kweli, itaonyesha python tracebacks (inaweza kuwa na manufaa kwa mshambuliaji)
  • secret_key: Hii ni ufunguo unaotumiwa na flask kusaini cookies (ikiwa una hii unaweza kujifanya kuwa mtumiaji yeyote katika Airflow)
  • web_server_ssl_cert: Njia ya SSL cheti
  • web_server_ssl_key: Njia ya SSL Key
  • x_frame_enabled: Default ni True, hivyo kwa default clickjacking haiwezekani

Web Authentication

Kwa default uthibitisho wa wavuti umeainishwa katika faili webserver_config.py na umewekwa kama

bash
AUTH_TYPE = AUTH_DB

Ambayo inamaanisha kwamba uthibitishaji unakaguliwa dhidi ya hifadhidata. Hata hivyo, usanidi mwingine unaweza kuwa kama

bash
AUTH_TYPE = AUTH_OAUTH

Kuwaacha uthibitishaji kwa huduma za upande wa tatu.

Hata hivyo, pia kuna chaguo la kuruhusu watumiaji wasiojulikana kuingia, kuweka parameter ifuatayo kwa haki inayotakiwa:

bash
AUTH_ROLE_PUBLIC = 'Admin'

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks