Airflow 峰會 2025 將於 10 月 07-09 日舉行。立即註冊獲取早鳥票!

Fernet

Airflow 使用 Fernet 來加密連線配置和變數配置中的密碼。它保證使用 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

此條目是否有幫助?