Azure 密钥库后端¶
要将 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 中。
Authentication¶
有 3 种方式可以对 Azure Key Vault 后端进行身份验证。
设置
tenant_id、client_id、client_secret(使用 ClientSecretCredential)设置
managed_identity_client_id、workload_identity_tenant_id(使用带有这些参数的 DefaultAzureCredential)未提供额外的连接配置,将回退到 DefaultAzureCredential
参考¶
有关客户端身份验证的更多细节,请参阅 DefaultAzureCredential 类参考。