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_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 類參考。