如何解决 azure keyvault 机密(未经授权)AKV10032:无效的颁发者。Python 中的错误

mar*_*use 5 python azure pycharm python-3.x

我正在使用azure-keyvault-secrets包来管理 Python 3.8 中的资源机密,并在PyCharm中开发。

但是当我运行以下命令时:

import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

VAULT_URL = os.environ["VAULT_URL"]

credential = DefaultAzureCredential()
client = SecretClient(
    vault_url=VAULT_URL,
    credential=credential
)
client.set_secret('my-secret-name', 'my-secret-value')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

HttpResponseError: azure keyvault secrets (Unauthorized) AKV10032: Invalid issuer. error
Run Code Online (Sandbox Code Playgroud)

根据Microsoft Docs ,我已正确设置环境变量。我还多次重启了PyCharm中的运行时环境。

该怎么办?

Mad*_*dan 5

我也面临同样的问题。以下解决方案对我有用:

  1. 登录 Azure 门户并检查您有多少订阅。检查 Key Vault 位于哪个订阅/资源组下。

  2. 登录 Azure CLI 并执行以下命令:

az account list --output table
Run Code Online (Sandbox Code Playgroud)
  1. 将 KeyVault 设为默认订阅:
az account set --subscription "subscription name"
Run Code Online (Sandbox Code Playgroud)
  1. 重新执行代码:
import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

VAULT_URL = os.environ["VAULT_URL"]

credential = DefaultAzureCredential()
client = SecretClient(
    vault_url=VAULT_URL,
    credential=credential
)
client.set_secret('my-secret-name', 'my-secret-value')
Run Code Online (Sandbox Code Playgroud)

它应该有效。