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_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 类参考

此条目是否有帮助?