我正在为我的持续部署设置暂存环境。我正在将 Azure DevOps 服务用于存储库和管道。
我需要将 Azure Active Directory 登录添加到我的 Linux VM。到目前为止我关注了this指导。它可以在我的机器上运行,但当我尝试在 Azure DevOps 上运行它时,出现以下错误。
2019-04-08T14:54:33.7657868Z ERROR: The client '********-****-****-****-************' with object id '********-****-****-****-************' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/write' over scope '/subscriptions/***/resourceGroups/staging-rg/providers/Microsoft.Compute/virtualMachineScaleSets/webscaleset/providers/Microsoft.Authorization/roleAssignments/********-****-****-****-************'.
我的 azure devops 服务连接似乎缺少 roleAssignment/write 权限。我不知道如何添加它
最佳答案
最简单的方法 - 将所有者角色分配给服务主体,您可以使用服务连接页面找到它,它有一个指向“管理服务主体”或类似内容的链接。
或者,您可以创建只能执行此操作的自定义角色并将其分配给服务主体,安全性更高一些,但也不是那么安全,因为使用该角色您可以向任何人授予任何权限。
Powershell 创建自定义角色:
$role = Get-AzRoleDefinition "Virtual Machine Contributor"
$role.Id = $null
$role.Name = "Assign permissions role"
$role.Description = "Allow to assign permissions"
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Authorization/roleAssignments/write")
$role.AssignableScopes.Clear()
Get-AzSubscription | ForEach-Object {
$scope = "/subscriptions/{0}" -f $_.Id
$role.AssignableScopes.Add($scope)
}
$def = New-AzRoleDefinition -Role $role
关于azure - 如何向 azure devops 服务连接授予 roleAssignement/write 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55593312/