Как я могу предоставить разрешение roleAssignement / write подключению к службе Azure Devops? - PullRequest
0 голосов
/ 09 апреля 2019

Я устанавливаю промежуточную среду для моего непрерывного развертывания.Я использую службу Devure Devops для репозиториев и конвейеров.

Мне нужно добавить имя входа Azure Active Directory в мои виртуальные машины Linux.До сих пор я следовал этому руководству.Он работает на моей машине, хотя, когда я пытаюсь запустить его на платформе Azure, я получаю следующую ошибку.

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 не хватает разрешения на назначение / запись.Не могу понять, как это добавить

1 Ответ

0 голосов
/ 09 апреля 2019

Самый простой способ - назначить роль владельца субъекту службы, найти ее можно на странице подключения службы, есть ссылка «Управление субъектом службы» или что-то в этом роде.

В качестве альтернативы вы можете создать пользовательскуюроль, которая может сделать это только и назначить субъекту службы, немного более безопасную, но не настолько, поскольку с этой ролью вы можете предоставить любые разрешения любому.

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
...