azure - 如何向 azure devops 服务连接授予 roleAssignement/write 权限

标签 azure azure-devops azure-cli hcl

我正在为我的持续部署设置暂存环境。我正在将 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/

相关文章:

azure - 为什么 Azure CLI 在尝试运行 New-AzResourceGroupDeployment 时报告 ResourceGroupNotFound?

azure - PowerShell 或 Azure CLI - 显示/创建已设置 PIM 的 Azure 安全组

Azure CLI - AKS 通信问题

azure-devops - VSTS不支持添加标签时自动发布吗?

Azure DevOps - 使用管道触发器进行批处理

powershell - Azure 软限制和 ARM 资源

c# - Azure Function c# - 检索订阅的 WebApp 列表

azure - 禁用/删除 Azure Boards 团队板

azure "Unauthorized. Access token is missing, invalid, audience is incorrect or have expired"

TFS Visual Studio 测试任务未填充 TRX 文件