Airflow Configuration
設定ファイル
Apache Airflowは、airflowユーザーのホームに**airflow.cfg
という設定ファイル**を生成します。この設定ファイルには設定情報が含まれており、興味深く機密性の高い情報が含まれる可能性があります。
このファイルにアクセスするには2つの方法があります:airflowマシンのいずれかを侵害するか、ウェブコンソールにアクセスするかです。
設定ファイル内の値は使用されているものとは限らないことに注意してください。環境変数を設定することで上書きできます(例:AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
)。
ウェブサーバーで設定ファイルにアクセスできる場合、設定が表示される同じページで実際の実行中の設定を確認できます。 airflow環境内のいずれかのマシンにアクセスできる場合は、環境をチェックしてください。
設定ファイルを読む際にチェックする興味深い値:
[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
: 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
: セッションクッキーにセキュアフラグを設定しますexpose_config
: デフォルトではFalseですが、trueの場合、ウェブコンソールから設定を読むことができますexpose_stacktrace
: デフォルトではTrueで、Pythonのトレースバックを表示します(攻撃者にとって有用な可能性があります)secret_key
: これはflaskがクッキーに署名するために使用するキーです(これを持っていれば、Airflowの任意のユーザーになりすますことができます)web_server_ssl_cert
: SSL 証明書へのパスweb_server_ssl_key
: SSL キーへのパスx_frame_enabled
: デフォルトはTrueなので、デフォルトではクリックジャッキングは不可能です
Web認証
デフォルトではウェブ認証は**webserver_config.py
**ファイルで指定されており、次のように設定されています
これは、認証がデータベースに対してチェックされることを意味します。しかし、他の設定も可能です。例えば
サードパーティサービスによる認証に委ねる。
ただし、以下のパラメータを望ましいロールに設定することで、匿名ユーザーのアクセスを許可するオプションもあります:
Last updated