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.cfg
という config file を生成します。この config file には設定情報が含まれており、興味深く、機密性の高い情報が含まれている可能性があります。
このファイルにアクセスする方法は2つあります: エアフロー マシンを侵害するか、ウェブコンソールにアクセスすることです。
config file 内の値 は **使用されているものではない可能性があることに注意してください。環境変数を設定することで上書きできます。例えば AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
のように。
ウェブサーバーの config file にアクセスできる場合、同じページで表示されている 実際の実行設定 を確認できます。 エアフロー環境内のマシンにアクセスできる場合、環境を確認してください。
config file を読む際に確認すべき興味深い値:
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
: これは airflow 内で composer user が取得する 役割 を示します (Op がデフォルト)。
Python で 独自の認証 メソッドを作成することもできます。
google_key_path
: GCP サービス アカウント キーへのパス
password
: Atlas パスワード
username
: Atlas ユーザー名
flower_basic_auth
: 認証情報 (user1:password1,user2:password2)
result_backend
: 機密情報を含む可能性のある Postgres URL。
ssl_cacert
: cacert へのパス
ssl_cert
: 証明書へのパス
ssl_key
: キーへのパス
dag_discovery_safe_mode
: デフォルトで有効。DAG を発見する際に、DAG
と airflow
の文字列を含まないファイルを無視します。
fernet_key
: 暗号化された変数を保存するためのキー (対称)
hide_sensitive_var_conn_fields
: デフォルトで有効、接続の機密情報を隠します。
security
: 使用するセキュリティモジュール (例えば kerberos)
tls_ca
: ca へのパス
tls_cert
: 証明書へのパス
tls_key
: tls キーへのパス
ccache
: ccache ファイルへのパス
forwardable
: デフォルトで有効
google_key_path
: GCP JSON 認証情報へのパス。
backend
: 有効にする秘密のバックエンドの完全なクラス名
backend_kwargs
: backend_kwargs パラメータは辞書に読み込まれ、秘密のバックエンドクラスの init に渡されます。
smtp_password
: SMTP パスワード
smtp_user
: SMTP ユーザー
cookie_samesite
: デフォルトでは Lax で、すでに最も弱い値です
cookie_secure
: セッションクッキーに secure flag を設定します
expose_config
: デフォルトは False で、true の場合、config はウェブ console から 読み取る ことができます
expose_stacktrace
: デフォルトでは True で、python tracebacks を表示します (攻撃者にとって潜在的に有用)
secret_key
: これは flask がクッキーに署名するために使用するキー です (これを持っていれば Airflow の任意のユーザーを偽装できます)
web_server_ssl_cert
: SSL 証明書 への パス
web_server_ssl_key
: SSL キー への パス
x_frame_enabled
: デフォルトは True で、デフォルトではクリックジャッキングは不可能です
デフォルトでは web authentication は webserver_config.py
ファイルに指定され、次のように設定されています
つまり、認証はデータベースに対してチェックされます。ただし、他の設定も可能です。
認証をサードパーティサービスに委ねる。
ただし、匿名ユーザーのアクセスを許可するオプションもあり、次のパラメータを希望するロールに設定します:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)