Azure Key Vault 後端

若要啟用 Azure Key Vault 作為密碼後端,請指定 AzureKeyVaultBackend 作為 airflow.cfg[secrets] 區段中的 backend

以下為範例設定

[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 類別參考

此條目是否有幫助?