Airflow Configuration
Файл налаштувань
Apache Airflow генерує файл конфігурації на всіх машинах Airflow під назвою airflow.cfg
в домашній директорії користувача Airflow. Цей файл конфігурації містить інформацію про налаштування і може містити цікаву та чутливу інформацію.
Є два способи доступу до цього файлу: шляхом компрометації деякої машини Airflow або доступу до веб-консолі.
Зверніть увагу, що значення всередині файлу конфігурації можуть не бути використані, оскільки ви можете їх перезаписати, встановивши змінні середовища, такі як AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
.
Якщо у вас є доступ до файлу конфігурації на веб-сервері, ви можете перевірити реальну конфігурацію, на тій самій сторінці, де відображається конфігурація. Якщо у вас є доступ до деякої машини всередині середовища Airflow, перевірте середовище.
Деякі цікаві значення для перевірки при читанні файлу конфігурації:
[api]
access_control_allow_headers
: Це вказує дозволені заголовки для CORSaccess_control_allow_methods
: Це вказує дозволені методи для CORSaccess_control_allow_origins
: Це вказує дозволені джерела для CORSauth_backend
: Згідно з документацією можна налаштувати кілька варіантів для конфігурації, хто може отримати доступ до API:airflow.api.auth.backend.deny_all
: За замовчуванням ніхто не може отримати доступ до APIairflow.api.auth.backend.default
: Кожен може отримати доступ до нього без аутентифікаціїairflow.api.auth.backend.kerberos_auth
: Для налаштування аутентифікації Kerberosairflow.api.auth.backend.basic_auth
: Для базової аутентифікаціїairflow.composer.api.backend.composer_auth
: Використовує аутентифікацію композиторів (GCP) (з тут).composer_auth_user_registration_role
: Це вказує роль, яку отримає користувач композитора всередині Airflow (Op за замовчуванням).Ви також можете створити свій власний метод аутентифікації за допомогою Python.
google_key_path
: Шлях до ключа облікового запису служби GCP
[atlas]
password
: Пароль Atlasusername
: Ім'я користувача Atlas
[celery]
flower_basic_auth
: Облікові дані (user1:password1,user2:password2)result_backend
: URL Postgres, який може містити облікові дані.ssl_cacert
: Шлях до cacertssl_cert
: Шлях до сертифікатаssl_key
: Шлях до ключа
[core]
dag_discovery_safe_mode
: Увімкнено за замовчуванням. Під час виявлення DAG ігнорувати будь-які файли, які не містять рядкиDAG
таairflow
.fernet_key
: Ключ для зберігання зашифрованих змінних (симетричний)hide_sensitive_var_conn_fields
: Увімкнено за замовчуванням, приховувати чутливу інформацію про підключення.security
: Який модуль безпеки використовувати (наприклад, Kerberos)
[dask]
tls_ca
: Шлях до catls_cert
: Частина сертифікатаtls_key
: Частина ключа TLS
[kerberos]
ccache
: Шлях до файлу ccacheforwardable
: Увімкнено за замовчуванням
[logging]
google_key_path
: Шлях до GCP JSON-даних.
[secrets]
backend
: Повне ім'я класу сховища секретів для активаціїbackend_kwargs
: Параметр backend_kwargs завантажується у словник та передається до init класу сховища секретів.
[smtp]
smtp_password
: Пароль SMTPsmtp_user
: Користувач SMTP
[webserver]
cookie_samesite
: За замовчуванням це Lax, тому вже є найслабший можливий значенняcookie_secure
: Встановити флаг безпеки на сесійному cookieexpose_config
: За замовчуванням False, якщо true, конфігурацію можна читати з веб-консоліexpose_stacktrace
: За замовчуванням True, він покаже сліди Python (потенційно корисно для атакуючого)secret_key
: Це ключ, який використовує flask для підпису cookie (якщо у вас є це, ви можете підробити будь-якого користувача в Airflow)web_server_ssl_cert
: Шлях до SSL сертифікатаweb_server_ssl_key
: Шлях до SSL ключаx_frame_enabled
: За замовчуванням True, тому за замовчуванням неможливий clickjacking
Веб-аутентифікація
За замовчуванням веб-аутентифікація вказана в файлі webserver_config.py
і налаштована як
Що означає, що аутентифікація перевіряється у базі даних. Однак інші конфігурації також можливі, наприклад
Для того щоб автентифікацію залишити на сторонніх службах.
Проте, також є опція дозволити доступ анонімним користувачам, встановивши наступний параметр на потрібну роль:
Last updated