我正在关注本教程,了解如何在 Python 中生成椭圆曲线密钥 azure.keyvault.keys 包 — Azure SDK for Python 2.0.0 文档 (windows.net)
这是我当前执行的Python代码:
from azure.identity import DefaultAzureCredential
from azure.keyvault.keys import KeyClient
credential = DefaultAzureCredential()
key_client = KeyClient(vault_url="https://mykv.vault.azure.net/", credential=credential)
# Create an elliptic curve key
ec_key = key_client.create_ec_key("test-ec-key", curve="P-256")
print(ec_key.name)
print(ec_key.key_type)
但是我在代码方面遇到了一些麻烦,因为它一直失败并出现相同的错误消息:
azure.core.exceptions.HttpResponseError:(禁止)调用者无权对资源执行操作。
如果最近更改了角色分配、拒绝分配或角色定义,请观察传播时间。
调用者:appid=d5f43625-e0e3-4e27-a63d-477f9e91cb5c;oid=890cda89-b200-41a9-8453-454cd42698eb;iss=https://sts.windows.net/47ed4b29-d620-4166-975b-81fd ce3d3875/
操作:'Microsoft.KeyVault/vaults/keys/create/action'
资源:'/subscriptions/db002e19-6b8e-4b1b-a70d-a430eb7b5acf/resourcegroups/test_rg/providers/microsoft.keyvault/vaults/mykv/keys/test-ec-key'
作业:(未找到)
拒绝分配 ID:空
决策原因:“DeniedWithNoValidRBAC”
保险库:mykv;位置=eastus
内部错误:{ “代码”:“禁止通过Rbac” }
你知道出了什么问题吗?我尝试修复它,但似乎没有任何效果。也许你可以看一下并帮助我?谢谢!
要创建密钥,在使用 RBAC 作为身份验证类型时,您在密钥保管库下至少需要具有 “Key Vault 加密官” 角色。
最初,我在没有分配所需角色的情况下运行了您的代码,并得到了相同的错误,如下所示:
要解决该错误,您需要至少向 Key Vault 下的用户或服务主体分配 “Key Vault 加密官” 角色:
当我现在再次运行相同的代码时,我成功地得到了response,如下所示:
from azure.identity import DefaultAzureCredential
from azure.keyvault.keys import KeyClient
credential = DefaultAzureCredential()
key_client = KeyClient(vault_url="https://rgkvprod.vault.azure.net/", credential=credential)
# Create an elliptic curve key
ec_key = key_client.create_ec_key("test-ec-key", curve="P-256")
print(ec_key.name)
print(ec_key.key_type)
回复:
为了确认,我在门户中检查了相同的内容,密钥创建成功如下: