我在需要访问 Azure 中的 KeyVault 的 Ubuntu Linux 虚拟机上运行了一个 python 脚本。如果根据“应用注册”配置了以下环境变量。
AZURE_CLIENT_ID=<Client ID from App Registration>
AZURE_TENANT_ID=<Tenent ID from App Registration>
AZURE_CLIENT_SECRET=<SECRET Created in App Registration>
当我尝试访问 KeyVault 时,出现访问被拒绝错误。
Code: Forbidden
Message: The user, group or application 'appid=<APP_ID>;oid=
<GUID_VALUE>;iss=https://sts.windows.net/<GUID_VALUE>/' does not have secrets get permission
on key vault '<KEY_VAULT_NAME>;location=westus'. For help resolving this issue, please see
https://go.microsoft.com/fwlink/?linkid=2125287
Inner error: {
"code": "AccessDenied"
}
我想我得到了这个,因为 KeyVault 中没有角色分配,但是我可能错了。
当我尝试向 KeyVault 添加新角色分配时,“分配访问”下没有“应用注册”选项。我尝试了“用户、组或服务主体”和“用户分配的托管标识”,但总是收到错误消息“找不到用户、组或服务主体。”。
我在这里遗漏了什么?
答案 0 :(得分:0)
我在这里遗漏了什么?
这里有几个问题:
您正在尝试为应用注册分配 RBAC 角色。您需要做的是为服务主体分配一个 RBAC 角色。要获取服务主体 ID,您需要转到 Azure AD 中的 Enterprise Applications
部分并找到服务主体的 ID(对象 ID)。
分配 Reader
RBAC 角色不起作用,因为该角色用于管理 Key Vault 本身,而不是其中的数据。有两种方法可以解决这个问题:
有关详细信息,请参阅此链接:https://docs.microsoft.com/en-us/azure/key-vault/general/assign-access-policy-portal。