Azure Key Vault 后端¶
要启用 Azure Key Vault 作为密钥后端,请在 airflow.cfg
的 [secrets]
部分中指定 AzureKeyVaultBackend
作为 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 类参考。