如何使用Python SDK在Vault中创建椭圆曲线密钥

问题描述 投票:0回答:1

我正在关注本教程,了解如何在 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” }

你知道出了什么问题吗?我尝试修复它,但似乎没有任何效果。也许你可以看一下并帮助我?谢谢!

azure-keyvault azure-python-sdk
1个回答
0
投票

要创建密钥,在使用 RBAC 作为身份验证类型时,您在密钥保管库下至少需要具有 “Key Vault 加密官” 角色。

最初,我在没有分配所需角色的情况下运行了您的代码,并得到了相同的错误,如下所示:

enter image description here

要解决该错误,您需要至少向 Key Vault 下的用户或服务主体分配 “Key Vault 加密官” 角色:

enter image description here

当我现在再次运行相同的代码时,我成功地得到了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)

回复:

enter image description here

为了确认,我在门户中检查了相同的内容,密钥创建成功如下:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.