如何授予 App Registration 访问 Azure KeyVault 的权限?
How do I give an App Registration permission to access Azure KeyVault?
我在需要访问 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 添加新的角色分配时,“应用程序注册”的“分配访问权限”下没有选项。我尝试了“用户、组或服务主体”和“用户分配的托管标识”,但我总是收到错误“找不到用户、组或服务主体”。
我在这里错过了什么?
What am I missing here?
这里有几个问题:
您正在尝试将 RBAC 角色分配给应用注册。您需要做的是为服务委托人分配一个 RBAC 角色。要获取服务主体 ID,您需要转到 Azure AD 中的 Enterprise Applications
部分并找到服务主体的 ID(对象 ID)。
分配 Reader
RBAC 角色将无法解决问题,因为此角色用于管理 Key Vault 本身,而不是其中的数据。有两种方法可以解决这个问题:
- 使用访问策略:您可以在 Azure Key Vault 中定义适当的访问策略,以向您的服务主体授予对密钥、机密和证书的访问权限。
- 使用数据 RBAC 角色:您需要使用 RBAC 角色来管理 Key Vault 中的数据,而不是使用管理 RBAC 角色(如 Reader、贡献者等)。
有关详细信息,请参阅此 link:https://docs.microsoft.com/en-us/azure/key-vault/general/assign-access-policy-portal。
我在需要访问 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 添加新的角色分配时,“应用程序注册”的“分配访问权限”下没有选项。我尝试了“用户、组或服务主体”和“用户分配的托管标识”,但我总是收到错误“找不到用户、组或服务主体”。
我在这里错过了什么?
What am I missing here?
这里有几个问题:
您正在尝试将 RBAC 角色分配给应用注册。您需要做的是为服务委托人分配一个 RBAC 角色。要获取服务主体 ID,您需要转到 Azure AD 中的
Enterprise Applications
部分并找到服务主体的 ID(对象 ID)。分配
Reader
RBAC 角色将无法解决问题,因为此角色用于管理 Key Vault 本身,而不是其中的数据。有两种方法可以解决这个问题:
- 使用访问策略:您可以在 Azure Key Vault 中定义适当的访问策略,以向您的服务主体授予对密钥、机密和证书的访问权限。
- 使用数据 RBAC 角色:您需要使用 RBAC 角色来管理 Key Vault 中的数据,而不是使用管理 RBAC 角色(如 Reader、贡献者等)。
有关详细信息,请参阅此 link:https://docs.microsoft.com/en-us/azure/key-vault/general/assign-access-policy-portal。