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_ID
、AZURE_CLIENT_ID
和 AZURE_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 後端。
設定
tenant_id
、client_id
、client_secret
(使用 ClientSecretCredential)設定
managed_identity_client_id
、workload_identity_tenant_id
(使用帶有這些引數的 DefaultAzureCredential)不提供額外的連線設定以回退到 DefaultAzureCredential
參考¶
有關用戶端驗證的更多詳細資訊,請參閱 DefaultAzureCredential 類別參考。