Airflow Configuration
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apache Airflow, airflow kullanıcısının ana dizininde airflow.cfg
adında bir config dosyası oluşturur. Bu config dosyası yapılandırma bilgilerini içerir ve ilginç ve hassas bilgiler içerebilir.
Bu dosyaya erişmenin iki yolu vardır: bazı airflow makinelerini tehlikeye atarak veya web konsoluna erişerek.
Config dosyasındaki değerlerin kullanılanlar olmayabileceğini unutmayın, çünkü AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
gibi ortam değişkenleri ayarlayarak bunları geçersiz kılabilirsiniz.
Web sunucusundaki config dosyasına erişiminiz varsa, config'in görüntülendiği aynı sayfada gerçek çalışan yapılandırmayı kontrol edebilirsiniz. Airflow ortamındaki bazı makinelere erişiminiz varsa, ortamı kontrol edin.
Config dosyasını okurken kontrol edilecek bazı ilginç değerler:
access_control_allow_headers
: Bu, CORS için izin verilen başlıkları gösterir.
access_control_allow_methods
: Bu, CORS için izin verilen yöntemleri gösterir.
access_control_allow_origins
: Bu, CORS için izin verilen kökenleri gösterir.
auth_backend
: Belgelerine göre API'ye kimlerin erişebileceğini yapılandırmak için birkaç seçenek olabilir:
airflow.api.auth.backend.deny_all
: Varsayılan olarak kimse API'ye erişemez.
airflow.api.auth.backend.default
: Herkes kimlik doğrulaması olmadan erişebilir.
airflow.api.auth.backend.kerberos_auth
: Kerberos kimlik doğrulamasını yapılandırmak için.
airflow.api.auth.backend.basic_auth
: Temel kimlik doğrulaması için.
airflow.composer.api.backend.composer_auth
: Bestecilerin kimlik doğrulamasını kullanır (GCP) ( buradan).
composer_auth_user_registration_role
: Bu, besteci kullanıcısının airflow içindeki rolünü gösterir (Op varsayılan olarak).
Ayrıca kendi kimlik doğrulama yöntemlerinizi Python ile oluşturabilirsiniz.
google_key_path
: GCP hizmet hesabı anahtarının yolu.
password
: Atlas şifresi.
username
: Atlas kullanıcı adı.
flower_basic_auth
: Kimlik bilgileri (user1:password1,user2:password2)
result_backend
: Kimlik bilgilerini içerebilecek Postgres URL'si.
ssl_cacert
: cacert'in yolu.
ssl_cert
: sertifikanın yolu.
ssl_key
: anahtarın yolu.
dag_discovery_safe_mode
: Varsayılan olarak etkin. DAG'leri keşfederken, DAG
ve airflow
dizelerini içermeyen dosyaları göz ardı edin.
fernet_key
: Şifrelenmiş değişkenleri saklamak için anahtar (simetrik).
hide_sensitive_var_conn_fields
: Varsayılan olarak etkin, bağlantıların hassas bilgilerini gizler.
security
: Hangi güvenlik modülünün kullanılacağı (örneğin kerberos).
tls_ca
: ca'nın yolu.
tls_cert
: sertifikanın yolu.
tls_key
: tls anahtarının yolu.
ccache
: ccache dosyasının yolu.
forwardable
: Varsayılan olarak etkin.
google_key_path
: GCP JSON kimlik bilgilerine giden yol.
backend
: Etkinleştirilecek gizli arka uç sınıfının tam adı.
backend_kwargs
: backend_kwargs parametresi bir sözlüğe yüklenir ve gizli arka uç sınıfının init'ine geçirilir.
smtp_password
: SMTP şifresi.
smtp_user
: SMTP kullanıcısı.
cookie_samesite
: Varsayılan olarak Lax'dır, bu nedenle zaten mümkün olan en zayıf değerdir.
cookie_secure
: oturum çerezi üzerinde güvenli bayrağı ayarlayın.
expose_config
: Varsayılan olarak False'dur, eğer true ise, config web konsolundan okunabilir.
expose_stacktrace
: Varsayılan olarak True'dur, python traceback'lerini gösterecektir (potansiyel olarak bir saldırgan için yararlı).
secret_key
: Bu, çerezleri imzalamak için flask tarafından kullanılan anahtardır (eğer buna sahipseniz, Airflow'daki herhangi bir kullanıcıyı taklit edebilirsiniz).
web_server_ssl_cert
: SSL sertifikasının yolu.
web_server_ssl_key
: SSL Anahtarının yolu.
x_frame_enabled
: Varsayılan True'dur, bu nedenle varsayılan olarak clickjacking mümkün değildir.
Varsayılan olarak web authentication, webserver_config.py
dosyasında belirtilmiştir ve şu şekilde yapılandırılmıştır:
Bu, kimlik doğrulamanın veritabanına karşı kontrol edildiği anlamına gelir. Ancak, diğer yapılandırmalar da mümkündür, örneğin
Üçüncü taraf hizmetlere kimlik doğrulamasını bırakmak için.
Ancak, anonim kullanıcıların erişimine izin vermek için de bir seçenek vardır, aşağıdaki parametreyi istenen role ayarlayarak:
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)