airflow.providers.microsoft.azure.secrets.key_vault¶
此模块包含 Azure Key Vault 后端。
类¶
从 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 后端。[secrets] backend = airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend backend_kwargs = {"connections_prefix": "airflow-connections", "vault_url": "<azure_key_vault_uri>"}
例如,如果 secrets 前缀为
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_ID、AZURE_CLIENT_ID和AZURE_CLIENT_SECRET。另请参阅
有关客户端身份验证的更多细节,请参阅
DefaultAzureCredential类参考文档:https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity.defaultazurecredential?view=azure-python- 参数:
connections_prefix (str) – 指定用于读取连接的 secret 前缀。如果设为 None(null),则不会向 Azure Key Vault 发送连接请求
variables_prefix (str) – 指定用于读取变量的 secret 前缀。如果设为 None(null),则不会向 Azure Key Vault 发送变量请求
config_prefix (str) – 指定用于读取配置的 secret 前缀。如果设为 None(null),则不会向 Azure Key Vault 发送配置请求
vault_url (str) – 要使用的 Azure Key Vault 的 URL
sep (str) – 用于连接 secret_prefix 和 secret_id 的分隔符。默认:“-”
tenant_id (str) – Azure Key Vault 所在租户的 tenant_id。如果未提供,则回退到
DefaultAzureCredentialclient_id (str) – Azure Key Vault 所在租户的 client_id。如果未提供,则回退到
DefaultAzureCredentialmanaged_identity_client_id (str) – 用户分配托管标识的 client ID。如果与 workload_identity_tenant_id 一起提供,则会传递给
DefaultAzureCredential。workload_identity_tenant_id (str) – 应用程序的 Microsoft Entra 租户 ID,也称为“目录”ID。如果与 managed_identity_client_id 一起提供,则会传递给
DefaultAzureCredential。