我在尝试执行资源组部署时收到以下错误。
链接授权失败
“具有对象 id '' 的客户端 '' 有权在范围 /subscriptions/<subscriptionid1>/resourcegroups/<rgname1>/providers/Microsoft.Web/certificates/certificatename' 上执行操作 'Microsoft.Web/certificates / write ';但是,它无权对链接范围“/subscriptions/<subscriptionid2>/resourceGroups/<rgname2>/providers/Microsoft.KeyVault/vaults/keyvault01”执行“写入”操作。 ”
ARM 模板正在尝试从位于不同订阅中的 Keyvault 获取证书。该模板正在使用服务主体部署,并且已获得KeyVault 的读取权限。
如果我在服务主体的 Keyvault 上设置参与者角色或具有“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 的写入权限听起来像是分配了比所需更多的权限。