【发布时间】:2020-07-22 07:30:25
【问题描述】:
我正在尝试在本地 (Ubuntu 19.10) 运行此 'Retrieve a secret from the vault' 示例以从 Azure Key Vault 检索机密:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
client = SecretClient(vault_url="https://<<vaultname>>.vault.azure.com",
credential=DefaultAzureCredential())
secret = client.get_secret("<<mysecret>>")
但是我收到以下错误:
azure.core.exceptions.ClientAuthenticationError:
此链中没有凭据提供令牌。
尝试的凭据:
EnvironmentCredential:环境配置不完整。见https://aka.ms/python-sdk-identity#environment-variables 预期的环境变量
ImdsCredential:IMDS 端点不可用
请访问文档
https://aka.ms/python-sdk-identity#defaultazurecredential
了解 DefaultAzureCredential 支持哪些选项
documentation on Service-to-Service authentication to Key Vault 似乎表明我应该能够通过 Azure CLI 进行身份验证,并且我已按照步骤通过az login 登录,选择适当的订阅(我已经这样做以防万一,尽管只有一个),并通过确实返回令牌的az account get-access-token --resource https://vault.azure.net 验证访问权限,但仍然收到上述错误。
我是否错误地假设我应该能够在通过 cli 登录后进行身份验证?
如果是这样,并且我需要手动设置为EnvironmentCredential 提供的文档链接中描述的环境变量,我需要为AZURE_CLIENT_ID 和AZURE_CLIENT_SECRET 提供什么值?
【问题讨论】:
标签: python azure azure-keyvault azure-sdk-python