我们已将客户端 ID 和机密存储在 Azure 密钥保管库中。我需要访问 azure 之外的这些秘密(从 python 服务器)。我发现了使用服务原理从本地脚本连接到 azure key Vault 的概念,但为此 我们将有另一个客户端 ID 和秘密(用于应用程序注册)。另外我看到我们可以创建托管身份概念来克服服务原则问题。
是否可以使用本地 python 脚本中的托管身份访问密钥保管库?请告诉我。谢谢
无需服务原理即可访问azure kyVault的python脚本
System managed Identity
是为azure中的Azure资源设计的,不能像本地python脚本一样直接从外部访问。如果仍想通过托管身份访问,请创建一个虚拟机并启用Identity并向该身份提供角色,然后使用身份登录,无需 Service Principal
。
对于本地开发,您可以使用
DefaultAzureCredential
中的 azure.identity
,它将使用 Azure CLI (az login
) 而不是 service principal
进行身份验证。
这是使用默认凭据获取密钥保管库机密的
Python code
。
from azure.identity import AzureCliCredential
from azure.keyvault.secrets import SecretClient
credential = AzureCliCredential()
client = SecretClient(vault_url="https://demo-keyvaulttest.vault.azure.net/", credential=credential)
secret = client.get_secret("Demo-Secret")
print(secret.value)
输出: