将Azure DevOps发布管道与“ Azure资源组部署”任务结合使用,以从ARM模板创建新的资源组。
ARM模板包含在此新资源级别范围内的角色分配,例如:
{
"type": "Microsoft.Authorization/roleAssignments",
"name": "[guid(resourceGroup().id)]",
"apiVersion": "2017-05-01",
"properties": {
"roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
"principalId": "[parameters('rgOwnerGroupId')]",
"scope": "[resourceGroup().Id]"
}
}
这失败,并显示权限错误:
类型为Microsoft.Authorization / roleAssignments的模板资源'4778ab77-xxxx-xxxx-xxxx-xxxxxxxxxxxx'的授权失败。 客户ID为'6ced5214-xxxx-xxxx-xxxx-xxxxxxxxxxxx'的客户端'6ced5214-xxxx-xxxx-xxxx-xxxxxxxxxxxx' 没有权限在范围'/subscriptions/7a205db1-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/my-resource-group/providers/Microsoft.Authorization/roleAssignments/4778ab77-范围内执行操作'Microsoft.Authorization / roleAssignments / write' xxxx-xxxx-xxxx-xxxxxxxxxxxx'。
运行任务的用户是DevOps的项目用户,该用户在新创建的资源组上似乎具有内置的“贡献者”角色。因此,它没有权限在资源组上分配角色是很有意义的。作为资源组的创建者,很奇怪,它只是贡献者,而不是所有者。虽然在我的情况下,成为所有者仅对分配角色有用。
那么如何为同一模板创建的资源组将资源组范围的角色分配嵌入到ARM模板中?
唯一的授予DevOps项目用户更多权限的解决方案吗?
答案 0 :(得分:0)
您好,我遇到了同样的问题,您需要
请参阅permission-authorising-release-pipeline-agains
或者使用ARM模板并创建roleAssignments任务role-assignments-template