airflow.providers.microsoft.azure.secrets.key_vault

本模块包含 Azure Key Vault 后端。

AzureKeyVaultBackend

从 Azure Key Vault 秘密检索 Airflow 连接或变量。

模块内容

class airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend(connections_prefix='airflow-connections', variables_prefix='airflow-variables', config_prefix='airflow-config', vault_url='', sep='-', *, tenant_id='', client_id=''', client_secret='', managed_identity_client_id='', workload_identity_tenant_id='', **kwargs)[source]

Bases: airflow.secrets.BaseSecretsBackend, airflow.utils.log.logging_mixin.LoggingMixin

从 Azure Key Vault 秘密检索 Airflow 连接或变量。

Azure Key Vault 可以配置为 airflow.cfg 中的秘密后端。

[secrets]
backend = airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend
backend_kwargs = {"connections_prefix": "airflow-connections", "vault_url": "<azure_key_vault_uri>"}

例如,如果秘密前缀是 airflow-connections-smtp-default,则如果您提供 {"connections_prefix": "airflow-connections"} 并请求 conn_id smtp-default,则可以访问此秘密。如果变量前缀是 airflow-variables-hello,则如果您提供 {"variables_prefix": "airflow-variables"} 并请求变量键 hello,则可以访问此变量。

对于客户端认证,使用 Azure Python SDK 中的 DefaultAzureCredential 作为凭据提供程序,它支持服务主体、托管标识和用户凭据。

例如,要指定一个带有秘密的服务主体,您可以设置环境变量 AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRET

另请参阅

有关客户端认证的更多详细信息,请参阅 DefaultAzureCredential 类参考:https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity.defaultazurecredential?view=azure-python

参数:
  • connections_prefix (str) – 指定读取秘密以获取连接的前缀。如果设置为 None (null),则不会向 Azure Key Vault 发送连接请求。

  • variables_prefix (str) – 指定读取秘密以获取变量的前缀。如果设置为 None (null),则不会向 Azure Key Vault 发送变量请求。

  • config_prefix (str) – 指定读取秘密以获取配置的前缀。如果设置为 None (null),则不会向 Azure Key Vault 发送配置请求。

  • vault_url (str) – 要使用的 Azure Key Vault 的 URL

  • sep (str) – 用于连接 secret_prefix 和 secret_id 的分隔符。默认值:“-”

  • tenant_id (str) – 要使用的 Azure Key Vault 的租户 ID。如果未指定,则回退到 DefaultAzureCredential

  • client_id (str) – 要使用的 Azure Key Vault 的客户端 ID。如果未指定,则回退到 DefaultAzureCredential

  • managed_identity_client_id (str) – 用户分配的托管标识的客户端 ID。如果与 workload_identity_tenant_id 一起提供,它们将被传递给 DefaultAzureCredential

  • workload_identity_tenant_id (str) – 应用程序的 Microsoft Entra 租户 ID。也称为其“目录”ID。如果与 managed_identity_client_id 一起提供,它们将被传递给 DefaultAzureCredential

vault_url = ''[source]
sep = '-'[source]
tenant_id = ''[source]
client_id = ''[source]
client_secret = ''[source]
managed_identity_client_id = ''[source]
workload_identity_tenant_id = ''[source]
kwargs[source]
property client: azure.keyvault.secrets.SecretClient[source]

创建一个 Azure Key Vault 客户端。

get_conn_value(conn_id)[source]

从 Azure Key Vault 秘密获取 Airflow 连接的序列化表示。

参数:

conn_id (str) – 要检索的 Airflow 连接 ID

get_variable(key)[source]

从 Azure Key Vault 秘密获取 Airflow 变量。

参数:

key (str) – 变量键

返回:

变量值

返回类型:

str | None

get_config(key)[source]

获取 Airflow 配置。

参数:

key (str) – 配置选项键

返回:

配置选项值

返回类型:

str | None

static build_path(path_prefix, secret_id, sep='-')[source]

给定 path_prefix 和 secret_id,为 Azure Key Vault 后端构建一个有效的秘密名称。

同时将路径中的下划线替换为破折号,以支持在环境变量之间轻松切换,例如 connection_default 变为 connection-default

参数:
  • path_prefix (str) – 要检索的秘密的路径前缀

  • secret_id (str) – 秘密的名称

  • sep (str) – 用于连接 path_prefix 和 secret_id 的分隔符

此条目有帮助吗?