密鑰後端¶
1.10.10 版本新增。
除了從環境變數或中繼資料庫檢索連線和變數之外,您還可以啟用替代的密鑰後端,透過 Apache Airflow 社群提供的後端 在 密鑰後端 中檢索 Airflow 連線或 Airflow 變數。
注意
Airflow UI 僅顯示儲存在 Metadata DB 中的連線和變數,而不顯示透過任何其他方法儲存的。如果您使用替代的密鑰後端,請檢查您的後端以檢視您的變數和連線的值。
您也可以從密鑰後端取得包含敏感資料的 Airflow 組態。請參閱 設定組態選項 以取得更多詳細資訊。
搜尋路徑¶
當查找連線/變數時,預設情況下,Airflow 將首先搜尋環境變數,然後搜尋中繼資料庫。
如果您啟用替代的密鑰後端,它將首先被搜尋,然後是環境變數,最後是中繼資料庫。此搜尋順序是不可設定的。然而,在某些替代的密鑰後端中,您可能有選項可以篩選在密鑰後端中搜尋哪些連線/變數/組態。請查看您正在使用的密鑰後端的文件,以查看是否有此選項。
警告
當使用環境變數或替代的密鑰後端來儲存密鑰或變數時,可能會產生金鑰衝突。如果後端之間存在重複的金鑰,所有寫入操作都會更新中繼資料庫中的值,但所有讀取操作都將傳回請求金鑰的第一個匹配項,依序為自訂後端、環境變數,最後是中繼資料庫。
組態¶
[secrets]
區段具有以下選項
[secrets]
backend =
backend_kwargs =
將 backend
設定為您要啟用的後端的完整類別名稱。
您可以提供包含 json 的 backend_kwargs
,它將作為 kwargs 傳遞到您的密鑰後端的 __init__
方法。
如果您想檢查目前設定的密鑰後端,您可以使用 airflow config get-value secrets backend
命令,如下例所示。
$ airflow config get-value secrets backend
airflow.providers.google.cloud.secrets.secret_manager.CloudSecretManagerBackend
支援的核心後端¶
Apache Airflow 社群提供的密鑰後端¶
Apache Airflow 社群也發布社群開發的供應商(供應商套件),其中一些也提供處理程序,擴展了 Apache Airflow 的密鑰後端功能。您可以在 密鑰後端 中查看所有這些供應商。
自行開發密鑰後端¶
密鑰後端是 airflow.secrets.base_secrets.BaseSecretsBackend
的子類別,並且必須實作 get_connection()
或 get_conn_value()
以檢索連線,get_variable()
以檢索變數,以及 get_config()
以檢索 Airflow 組態。
在編寫您的後端類別之後,在 airflow.cfg
的 [secrets]
區段中的 backend
金鑰中提供完整類別名稱。
您的 SecretsBackend 的其他引數可以在 airflow.cfg
中設定,方法是將 JSON 字串提供給 backend_kwargs
,這將傳遞到您的 SecretsBackend 的 __init__
。請參閱 組態 以取得更多詳細資訊,並參閱 SSM Parameter Store 以取得範例。