2

我正在为我的持续部署设置一个暂存环境。我将 Azure devops 服务用于存储库和管道。

我需要将 Azure Active Directory 登录添加到我的 Linux VM。到目前为止,我遵循了本指南。它可以在我的机器上运行,尽管当我尝试在 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 服务连接缺少角色分配/写入权限。我不知道如何添加它

4

2 回答 2

5

最简单的方法 - 将所有者角色分配给服务主体,您可以使用服务连接页面找到它,它有一个指向“管理服务主体”的链接或类似的东西。

或者,您可以创建只能执行此操作的自定义角色并将其分配给服务主体,更安全一点,但不是那么多,因为使用该角色您可以向任何人授予任何权限。

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
于 2019-04-09T12:52:23.037 回答
0

将以下角色授予 devops 服务原则

名称:特权角色管理员描述:具有此角色的用户可以在 Azure Active Directory 以及 Azure AD Privileged Identity Management 中管理角色分配。此外,此角色允许管理特权身份管理的所有方面。

于 2021-06-28T08:05:29.983 回答