我试图在本地(Ubuntu 19.10)运行此从保管库检索秘密示例,以从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>>")
但是,我收到以下错误:
蔚蓝色的果心例外。ClientAuthenticationError:
此链中没有提供令牌的凭据。
尝试的凭据:
环境凭据:不完整的环境配置。有关预期的环境html" target="_blank">变量,请参见https://aka.ms/python-sdk-identity#environment-variables
IMDS凭据:IMDSendpoint不可用
请访问以下文档:
https://aka.ms/python-sdk-identity#defaultazurecredential
了解DefaultAzureCredential支持哪些选项
关于密钥库的服务到服务身份验证的文档似乎建议我应该能够通过Azure CLI进行身份验证,我已经按照步骤通过az login
登录,选择适当的订阅(我只是为了以防万一,尽管只有一个),并通过az account get access token--resource验证访问权限https://vault.azure.net
返回令牌,但仍会收到上述错误。
我是否错误地认为我应该能够在通过cli登录后进行身份验证?
如果是这样,我需要手动设置为环境凭据
提供的留档链接中描述的环境变量,我需要为AZURE_CLIENT_ID
和AZURE_CLIENT_SECRET
提供哪些值?
我是否错误地认为我应该能够在通过cli登录后进行身份验证?
你没有错,在我写这篇文章的时候,azure identity的当前预览版1.4.0b2是可能的。安装了它之后,您的代码应该在登录到CLI后就可以工作了。
...我需要为AZURE_CLIENT_ID
和AZURE_CLIENT_SECRET
提供哪些值?
这将是服务负责人的客户(或“应用程序”)ID及其机密之一。azure keyvault secrets文档描述了如何使用CLI创建服务主体并配置其对密钥库的访问。
在此处简单地重新列出该文档,您可以使用以下命令创建服务主体:
az ad sp create-for-rbac --name http://my-application
从该命令的输出来看,“appId”是AZURE\u CLIENT\u ID
的值,“password”是AZURE\u CLIENT\u SECRET
的值。
然后,授予服务负责人访问密钥库秘密的权限:
az keyvault set-policy --name <<vaultname>> --spn $AZURE_CLIENT_ID --secret-permissions get set list delete backup recover restore purge
我们有一个web api(.NET 5),可以访问Azure KeyVault中的一些秘密 在local machine for development中,由于我是新创建的vault的所有者,因此我的电子邮件具有访问keyvault的权限。 因此我选择了我的账户-- 我有下面的代码从Keyvault获取机密,并通过配置访问,就像访问appsettings值一样。 我们在服务层和控制器层访问像_co
我正在尝试对现有API启用Azure密钥库证书。我们已经在Azure Key Vault帐户中拥有秘密和Azure Key Vault证书。下面是配置证书的代码: 在我的本地计算机上,我正确地导入了证书,其中包括下载pfx格式。
问题内容: 我正在使用pysftp编写程序,它想针对验证SSH主机密钥。 终端程序使用PuTTY将其保存到Registry中。 如何调和pysftp和PuTTY之间的区别? 我的代码是: E:\Program Files (x86)\Anaconda3\lib\site-packages\pysftp__init__.py:61: UserWarning: Failed to load HostK
使用PuTTY,终端程序将其保存到注册表。 如何协调pysftp和Putty之间的差异? 我的代码是:
我们正在本地开发该函数,尽管我们可以使用 ConfigurationBuilder()。AddAzureKeyVault() 在启动以检索密钥保管库机密时,我们正在努力使队列触发器从 Key Vault 获取连接字符串。如下所示,连接当前是从 local.settings.json 中存在的 AzureWebJobsStorage 密钥检索的: local.settings.json