如何通过Python手动传参连接Azure Key Vault Secret,无需配置环境变量?
Azure Key Vault Python SDK手动传参连接方案
核心逻辑说明
官方推荐的DefaultAzureCredential默认会优先读取系统环境变量中的服务主体认证参数,如果你不想配置全局环境变量,可以选择以下两种实现方式,都可以完全脱离环境变量完成认证。
方案1:使用ClientSecretCredential直接传参(最推荐)
直接使用专门的服务主体凭证类,参数完全由你手动传入,可从自定义配置文件、加密配置中心等任意位置读取,无需依赖环境变量。
第一步:安装依赖包
pip install azure-keyvault-secrets azure-identity
第二步:代码实现示例
from azure.identity import ClientSecretCredential from azure.keyvault.secrets import SecretClient # 以下参数手动替换为你的实际配置 tenant_id = "Azure租户ID" client_id = "服务主体应用ID" client_secret = "服务主体密钥" vault_url = "Key Vault访问地址,格式为https://<vault名称>.vault.azure.net/" # 初始化凭证与密钥客户端 credential = ClientSecretCredential( tenant_id=tenant_id, client_id=client_id, client_secret=client_secret ) secret_client = SecretClient(vault_url=vault_url, credential=credential) # 测试读取密钥 test_secret = secret_client.get_secret("你的密钥名称") print(test_secret.value)
注意:不要将认证参数硬编码到公开可访问的代码中,建议从加密配置文件或内部配置中心读取敏感信息。
方案2:代码内临时配置环境变量(兼容DefaultAzureCredential)
如果你需要保留使用DefaultAzureCredential的逻辑,也不需要修改系统环境变量,只需要在导入azure相关库前,通过os模块临时设置当前Python进程的环境变量即可,配置仅对当前运行的程序生效。
import os # 临时配置当前进程的环境变量 os.environ["AZURE_TENANT_ID"] = "Azure租户ID" os.environ["AZURE_CLIENT_ID"] = "服务主体应用ID" os.environ["AZURE_CLIENT_SECRET"] = "服务主体密钥" from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient vault_url = "Key Vault访问地址" credential = DefaultAzureCredential() secret_client = SecretClient(vault_url=vault_url, credential=credential) # 测试读取密钥 test_secret = secret_client.get_secret("你的密钥名称") print(test_secret.value)
相关说明配图


内容的提问来源于stack exchange,提问作者Murugaraju Perumalla
相关产品推荐
相关产品推荐

