Airflow Configuration
Reading time: 7 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Configuration File
Apache Airflow は、すべての airflow マシンに airflow.cfg
という config file を生成します。この config file は、設定情報を含み、興味深く、機密性の高い情報を含む可能性があります。
このファイルにアクセスする方法は2つあります:airflow マシンを侵害するか、ウェブコンソールにアクセスすることです。
config file 内の値 は 使用されているものではない可能性があることに注意してください。環境変数を設定することで上書きできます。例えば、AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
。
ウェブサーバーの config file にアクセスできる場合、同じページで表示されている 実際の実行設定 を確認できます。
airflow 環境内のマシンにアクセスできる場合、環境を確認してください。
config file を読む際に確認すべき興味深い値:
[api]
access_control_allow_headers
: これは CORS のための 許可された ヘッダー を示しますaccess_control_allow_methods
: これは CORS のための 許可されたメソッド を示しますaccess_control_allow_origins
: これは CORS のための 許可されたオリジン を示しますauth_backend
: ドキュメントによると、API にアクセスできるユーザーを設定するためのいくつかのオプションがあります:airflow.api.auth.backend.deny_all
: デフォルトでは誰も API にアクセスできませんairflow.api.auth.backend.default
: 誰でも 認証なしでアクセスできますairflow.api.auth.backend.kerberos_auth
: kerberos 認証 を設定するためairflow.api.auth.backend.basic_auth
: 基本認証 のためairflow.composer.api.backend.composer_auth
: 作成者の認証を使用します (GCP) (こちらから)。composer_auth_user_registration_role
: これは composer ユーザー が airflow 内で取得する 役割 を示します (Op がデフォルト)。- また、Python で 独自の認証 メソッドを作成することもできます。
google_key_path
: GCP サービスアカウントキー へのパス
[atlas]
password
: Atlas パスワードusername
: Atlas ユーザー名
[celery]
flower_basic_auth
: 認証情報 (user1:password1,user2:password2)result_backend
: 認証情報 を含む可能性のある Postgres URL。ssl_cacert
: cacert へのパスssl_cert
: 証明書へのパスssl_key
: キーへのパス
[core]
dag_discovery_safe_mode
: デフォルトで有効。DAG を発見する際、DAG
とairflow
の文字列を含まないファイルは無視されます。fernet_key
: 暗号化された変数を保存するためのキー (対称)hide_sensitive_var_conn_fields
: デフォルトで有効、接続の機密情報を隠します。security
: 使用するセキュリティモジュール (例えば kerberos)
[dask]
tls_ca
: ca へのパスtls_cert
: 証明書へのパスtls_key
: tls キーへのパス
[kerberos]
ccache
: ccache ファイルへのパスforwardable
: デフォルトで有効
[logging]
google_key_path
: GCP JSON 認証情報へのパス。
[secrets]
backend
: 有効にする秘密のバックエンドの完全なクラス名backend_kwargs
: backend_kwargs パラメータは辞書に読み込まれ、秘密のバックエンドクラスの init に渡されます。
[smtp]
smtp_password
: SMTP パスワードsmtp_user
: SMTP ユーザー
[webserver]
cookie_samesite
: デフォルトでは Lax で、すでに最も弱い値ですcookie_secure
: セッション cookie に secure flag を設定しますexpose_config
: デフォルトは False で、true の場合、config はウェブ console から 読み取る ことができますexpose_stacktrace
: デフォルトでは True で、python tracebacks を表示します (攻撃者にとって潜在的に有用)secret_key
: これは flask が cookie に署名するために使用するキー です (これを持っていると、Airflow の任意のユーザーを偽装できます)web_server_ssl_cert
: SSL 証明書 への パスweb_server_ssl_key
: SSL キー への パスx_frame_enabled
: デフォルトは True で、デフォルトではクリックジャッキングは不可能です
Web Authentication
デフォルトでは web authentication は webserver_config.py
ファイルに指定され、次のように設定されています。
AUTH_TYPE = AUTH_DB
これは、認証がデータベースに対してチェックされることを意味します。ただし、他の構成も可能です。
AUTH_TYPE = AUTH_OAUTH
認証をサードパーティサービスに委ねること。
ただし、匿名ユーザーのアクセスを許可するオプションもあり、次のパラメータを希望するロールに設定します:
AUTH_ROLE_PUBLIC = 'Admin'
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。