Airflow Configuration

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin!

HackTricks'i desteklemenin diğer yolları:

Yapılandırma Dosyası

Apache Airflow, airflow makinelerinin ev dizininde airflow.cfg adında bir yapılandırma dosyası oluşturur. Bu yapılandırma dosyası, yapılandırma bilgilerini içerir ve ilginç ve hassas bilgiler içerebilir.

Bu dosyaya erişmenin iki yolu vardır: Bir airflow makinesini ele geçirerek veya web konsoluna erişerek.

Dikkat edin ki yapılandırma dosyasındaki değerler, AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true' gibi ortam değişkenlerini ayarlayarak üzerine yazabileceğiniz değerler olmayabilir.

Eğer web sunucusundaki yapılandırma dosyasına erişiminiz varsa, yapılandırmanın görüntülendiği aynı sayfada gerçek çalışan yapılandırmayı kontrol edebilirsiniz. Eğer airflow ortamındaki bazı makinelerde erişiminiz varsa, ortamı kontrol edin.

Yapılandırma dosyasını okurken kontrol etmek için bazı ilginç değerler:

[api]

  • 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 kaynakları gösterir.

  • auth_backend: Belgelere göre, API'ye kimin erişebileceğini yapılandırmak için birkaç seçenek mevcuttur:

  • airflow.api.auth.backend.deny_all: Varsayılan olarak kimse API'ye erişemez

  • airflow.api.auth.backend.default: Kimse 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: Bestecinin kimlik doğrulamasını kullanır (GCP) (buradan buradan).

  • composer_auth_user_registration_role: Bu, besteci kullanıcısının airflow içindeki rolünü belirtir (Op varsayılan olarak).

  • Kendi kimlik doğrulama yönteminizi python ile oluşturabilirsiniz.

  • google_key_path: GCP hizmet hesabı anahtarının yolu

[atlas]

  • password: Atlas şifresi

  • username: Atlas kullanıcı adı

[celery]

  • flower_basic_auth : Kimlik bilgileri (user1:password1,user2:password2)

  • result_backend: Kimlik bilgilerini içerebilecek Postgres url'i.

  • ssl_cacert: cacert'in yolu

  • ssl_cert: sertifikanın yolu

  • ssl_key: anahtarın yolu

[core]

  • dag_discovery_safe_mode: Varsayılan olarak etkinleştirilmiştir. DAG'ları keşfederken, DAG ve airflow dizelerini içermeyen dosyaları yok sayar.

  • fernet_key: Şifreli değişkenleri depolamak için anahtar (simetrik)

  • hide_sensitive_var_conn_fields: Varsayılan olarak etkinleştirilmiştir, bağlantıların hassas bilgilerini gizler.

  • security: Hangi güvenlik modülünün kullanılacağı (örneğin kerberos)

[dask]

  • tls_ca: ca'nın yolu

  • tls_cert: sertifikanın yolu

  • tls_key: tls anahtarının yolu

[kerberos]

  • ccache: ccache dosyasının yolu

  • forwardable: Varsayılan olarak etkinleştirilmiştir

[logging]

  • google_key_path: GCP JSON kimlik bilgilerinin yolu

[secrets]

  • backend: Etkinleştirilecek gizli backend'in tam sınıf adı

  • backend_kwargs: backend_kwargs parametresi bir sözlüğe yüklenir ve gizli backend sınıfının init'ine iletilir.

[smtp]

  • smtp_password: SMTP şifresi

  • smtp_user: SMTP kullanıcısı

[webserver]

  • cookie_samesite: Varsayılan olarak Lax olduğundan, zaten en zayıf değerdir

  • cookie_secure: Oturum çerezi üzerinde güvenli bayrak ayarla

  • expose_config: Varsayılan olarak False'dur, true ise yapılandırma web konsolundan okunabilir

  • expose_stacktrace: Varsayılan olarak True'dur, python iz sürümlerini gösterir (saldırgan için potansiyel olarak faydalı olabilir)

  • secret_key: Bu, çerezleri imzalamak için flask tarafından kullanılan anahtartır (bunu elde ederseniz Airflow'da 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 olarak True olduğundan, varsayılan olarak clickjacking mümkün değildir

Web Kimlik Doğrulama

Varsayılan olarak web kimlik doğrulaması, webserver_config.py dosyasında belirtilir ve yapılandırılır.

AUTH_TYPE = AUTH_DB

Bu, kimlik doğrulamanın veritabanına karşı kontrol edildiği anlamına gelir. Bununla birlikte, başka yapılandırmalar da mümkündür, örneğin

AUTH_TYPE = AUTH_OAUTH

Üçüncü taraf hizmetlerine kimlik doğrulamayı bırakmak için.

Ancak, anonim kullanıcılara erişim izni vermek için aşağıdaki parametreyi istenen role ayarlamak da mümkündür:

AUTH_ROLE_PUBLIC = 'Admin'
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Last updated