Airflow Configuration

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Configuration File

Apache Airflow inazalisha config file katika mashine zote za airflow inayoitwa airflow.cfg katika nyumbani ya 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 maadili ndani ya faili ya config yanaweza kuwa si yale yanayotumika, kwani unaweza kuyabadilisha 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 maadili ya kuvutia ya kuangalia unapoisoma 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 nyaraka chaguzi chache zinaweza kuwekwa ili kuunda nani anaweza kufikia API:

  • airflow.api.auth.backend.deny_all: Kwa kawaida 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 composer atapata ndani ya airflow (Op kwa kawaida).

  • Unaweza pia kuunda njia yako ya uthibitisho kwa kutumia python.

  • google_key_path: Njia ya funguo ya akaunti ya huduma ya GCP

[atlas]

  • password: Nenosiri la Atlas

  • username: Jina la mtumiaji la Atlas

[celery]

  • flower_basic_auth : Taarifa za kuingia (user1:password1,user2:password2)

  • result_backend: URL ya Postgres ambayo inaweza kuwa na taarifa za kuingia.

  • ssl_cacert: Njia ya cacert

  • ssl_cert: Njia ya cheti

  • ssl_key: Njia ya funguo

[core]

  • dag_discovery_safe_mode: Imewezeshwa kwa kawaida. Wakati wa kugundua DAGs, puuza faili zozote ambazo hazina nyuzi DAG na airflow.

  • fernet_key: Funguo ya kuhifadhi mabadiliko yaliyosimbwa (symmetric)

  • hide_sensitive_var_conn_fields: Imewezeshwa kwa kawaida, ficha taarifa nyeti za muunganisho.

  • security: Moduli gani ya usalama itumike (kwa mfano kerberos)

[dask]

  • tls_ca: Njia ya ca

  • tls_cert: Njia ya cheti

  • tls_key: Njia ya funguo ya tls

[kerberos]

  • ccache: Njia ya faili ya ccache

  • forwardable: Imewezeshwa kwa kawaida

[logging]

  • google_key_path: Njia ya GCP JSON creds.

[secrets]

  • backend: Jina kamili la darasa la nyuma la siri ili kuwezesha

  • backend_kwargs: Parameta 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 kawaida ni Lax, hivyo tayari ni thamani dhaifu zaidi

  • cookie_secure: Weka bendera salama kwenye cookie ya kikao

  • expose_config: Kwa kawaida ni False, ikiwa ni kweli, config inaweza kusomwa kutoka kwa console ya wavuti

  • expose_stacktrace: Kwa kawaida ni Kweli, itaonyesha python tracebacks (inaweza kuwa na manufaa kwa mshambuliaji)

  • secret_key: Hii ni funguo inayotumiwa 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 funguo

  • x_frame_enabled: Kawaida ni Kweli, hivyo kwa kawaida clickjacking haiwezekani

Web Authentication

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

AUTH_TYPE = AUTH_DB

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

AUTH_TYPE = AUTH_OAUTH

Ili kuacha uthibitishaji kwa huduma za upande wa tatu.

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

AUTH_ROLE_PUBLIC = 'Admin'

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)

Support HackTricks

Last updated