gpt4 book ai didi

python-3.x - 设置 Azure 环境凭据()

转载 作者:行者123 更新时间:2023-12-02 23:00:16 25 4
gpt4 key购买 nike

我使用的是具有动态 IP 地址的 Azure VM。当我登录时,我可以使用以下 python 代码检索 secret ,没有任何问题;

from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
credential = DefaultAzureCredential()
secret_client = SecretClient(vault_url="https://xxxx/", credential=credential)
secret = secret_client.get_secret("testSecret")

我需要在虚拟机打开但未登录时检索 secret 以启用其他进程运行。我注意到当我注销时上面的代码失败了。系统管理员向我提供了 AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_IDVAULT_URL,以便我将它们设置为环境凭据。

我在CMD中设置它们如下;

SETX AZURE_CLIENT_ID "pppp"
SETX AZURE_CLIENT_SECRET "mmmm"
SETX AZURE_TENANT_ID "kkkk"
SETX VAULT_URL "xxxx"

当我检查系统环境设置时,我可以看到它们已设置enter image description here

我尝试使用此代码检索我的 secret ,

from azure.keyvault.secrets import SecretClient
VAULT_URL = os.environ["VAULT_URL"]
credential = EnvironmentCredential()
client = SecretClient(vault_url=VAULT_URL, credential=credential)
password = client.get_secret("testSecret").value

我收到这个错误

raise HttpResponseError(response=response, model=error)
azure.core.exceptions.HttpResponseError: (Forbidden) The user, group or application 'pppp;iss=https://sts.windows.net/kkkk/' does not have secrets get permission on key vault 'name of my vault-vault;location=australiasoutheast'. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287

问题系统管理员确认颁发的凭据是服务主体的正确详细信息。

  1. 如何纠正这个问题或者我做错了什么?
  2. 有没有办法让我打印 DefaultAzureCredentials,以便将其设置为与 EnvironmentCredential 相同,因为我相信登录时恢复 secret 的原因是登录时凭据会被缓存?

我们将非常感谢您的帮助。

最佳答案

How can correct this or what am I doing wrong?

该错误表示您的服务主体在 keyvault 中没有正确的 secret 权限 -> 访问策略,要解决此问题,请将错误消息中提到的应用程序(服务主体)添加到使用 Azure 门户中的 keyvault 中的 Get secret 权限访问策略。如果仍然不起作用,请尝试在系统变量中设置环境变量,而不是xxx的用户变量,如屏幕截图所示。

Is there a way for me to print DefaultAzureCredentials so that I set the same as EnvironmentCredential because I believe why I recover secrets when I am logged in is that the credentials are cached when I sign in?

无需执行此操作,DefaultAzureCredential 尝试按此顺序通过以下机制进行身份验证,请参阅 here 。如果您之前未设置环境变量,则应使用虚拟机的托管身份进行身份验证。

关于python-3.x - 设置 Azure 环境凭据(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64473359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com