我在尝试执行资源组部署时收到以下错误。
链接授权失败
“对象 ID 为 '' 的客户端 '' 有权在范围 /subscriptions/<subscriptionid1>/resourcegroups/<rgname1>/providers/Microsoft.Web/certificates/ 上执行操作 'Microsoft.Web/certificates/write' certificatename';但是,它没有权限 对链接范围“/subscriptions/<subscriptionid2>/resourceGroups/<rgname2>/providers/Microsoft.KeyVault/vaults/keyvault01”执行操作“write”。”
ARM 模板正在尝试从驻留在“不同订阅”中的 Keyvault 获取证书。该模板正在使用服务主体进行部署,并且已获得 KeyVault 的reader权限。 如果我在服务主体的 Keyvault 上设置
contributor角色或具有“Microsoft.KeyVault/vaults/write”权限的自定义角色,则效果很好。我已确保 Microsoft.Azure.WebSites 具有 GET 权限并选中“启用对 Azure 资源管理器的访问以进行模板部署”。 ARM 模板与您在此处看到的类似:
https://github.com/Azure/azure-quickstart-templates/tree/master/201-web-app-certificate-from-key-vault关于为什么“读者”角色失败的任何想法。授予对 Keyvault 的写入权限听起来像是分配了比所需更多的权限。