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)[源代码]

基类: 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/zh-cn/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

client()[源代码]

创建 Azure Key Vault 客户端。

get_conn_value(conn_id)[源代码]

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

参数

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

get_variable(key)[源代码]

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

参数

key (str) – 变量键

返回

变量值

返回类型

str | None

get_config(key)[源代码]

获取 Airflow 配置。

参数

key (str) – 配置选项键

返回

配置选项值

返回类型

str | None

static build_path(path_prefix, secret_id, sep='-')[源代码]

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

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

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

  • secret_id (str) – secret 的名称

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

此条目是否有帮助?