Azure Key Vault 後端

要將 Azure Key Vault 用作 secrets 後端,請在 airflow.cfg 檔案的 [secrets] 部分中,將 backend 指定為 AzureKeyVaultBackend

以下是配置示例

[secrets]
backend = airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend
backend_kwargs = {"connections_prefix": "airflow-connections", "variables_prefix": "airflow-variables", "vault_url": "https://example-akv-resource-name.vault.azure.net/"}

對於客戶端身份驗證,使用來自 Azure Python SDK 的 DefaultAzureCredential 作為憑據提供者,它支援服務主體、託管標識和使用者憑據。

例如,要指定帶金鑰的服務主體,可以設定環境變數 AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRET

可選查詢

可選地,連線、變數或配置可以相互獨立地查詢,或以任意組合方式查詢。這將阻止向 Azure Key Vault 傳送被排除型別的請求。

如果您只想在 Azure Key Vault 中查詢部分內容而不是全部,可以將要排除內容的相應 *_prefix 引數設定為 null

例如,如果您想將引數 connections_prefix 設定為 "airflow-connections" 並且不查詢變數,您的配置檔案應如下所示:

[secrets]
backend = airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend
backend_kwargs = {"connections_prefix": "airflow-connections", "variables_prefix": null, "vault_url": "https://example-akv-resource-name.vault.azure.net/"}

儲存和檢索連線

如果您將 connections_prefix 設定為 airflow-connections,那麼對於連線 ID 為 smtp_default 的連線,您需要將其儲存在 airflow-connections-smtp-default

該機密的值必須是連線物件的連線 URI 表示形式

儲存和檢索變數

如果您將 variables_prefix 設定為 airflow-variables,那麼對於變數鍵為 hello 的變數,您需要將其儲存在 airflow-variables-hello

身份驗證

有 3 種方式對 Azure Key Vault 後端進行身份驗證。

  1. 設定 tenant_idclient_idclient_secret(使用 ClientSecretCredential

  2. 設定 managed_identity_client_idworkload_identity_tenant_id(使用帶這些引數的 DefaultAzureCredential

  3. 不提供額外的連線配置,以便回退到 DefaultAzureCredential

參考

有關客戶端身份驗證的更多詳細資訊,請參閱DefaultAzureCredential 類參考

此條目有幫助嗎?