Fernet

Airflow 使用 Fernet 來加密連線配置和變數配置中的密碼。它保證使用它加密的密碼在沒有金鑰的情況下無法被操縱或讀取。Fernet 是對稱(也稱為「密鑰」)身份驗證加密的實作。

第一次啟動 Airflow 時,會生成包含預設組態和唯一 Fernet 金鑰的 airflow.cfg 檔案。金鑰會儲存到 [core] 區段的 fernet_key 選項中。

您也可以使用環境變數組態 fernet 金鑰。這將覆寫 airflow.cfg 檔案中的值

# Note the double underscores
export AIRFLOW__CORE__FERNET_KEY=your_fernet_key

產生 Fernet 金鑰

如果您需要產生新的 fernet 金鑰,可以使用以下程式碼片段。

from cryptography.fernet import Fernet

fernet_key = Fernet.generate_key()
print(fernet_key.decode())  # your fernet_key, keep it in secured place!

輪替加密金鑰

一旦連線憑證和變數已使用 fernet 金鑰加密,變更金鑰將導致現有憑證的解密失敗。若要在不使現有加密值失效的情況下輪替 fernet 金鑰,請將新金鑰前置到 fernet_key 設定,執行 airflow rotate-fernet-key,然後從 fernet_key 中移除原始金鑰

  1. fernet_key 設定為 new_fernet_key,old_fernet_key

  2. 執行 airflow rotate-fernet-key 以使用新的 fernet 金鑰重新加密現有憑證

  3. fernet_key 設定為 new_fernet_key

此條目是否有幫助?