Set-AzRoleDefinition

Изменяет пользовательскую роль в Azure RBAC. Укажите измененное определение роли в виде JSON-файла или в виде PSRoleDefinition. Сначала используйте команду Get-AzRoleDefinition, чтобы получить пользовательскую роль, которую вы хотите изменить. Затем измените свойства, которые вы хотите изменить. Наконец, сохраните определение роли с помощью этой команды.

Синтаксис

InputFileParameterSet

Set-AzRoleDefinition
    -InputFile <String>
    [-SkipClientSideScopeValidation]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

RoleDefinitionParameterSet

Set-AzRoleDefinition
    -Role <PSRoleDefinition>
    [-SkipClientSideScopeValidation]
    [-DefaultProfile <IAzureContextContainer>]
    [<CommonParameters>]

Описание

Командлет Set-AzRoleDefinition обновляет существующую пользовательскую роль в Azure Role-Based контроль доступа. Укажите обновленное определение роли в качестве входных данных для команды в виде JSON-файла или объекта PSRoleDefinition.

Определение роли для обновленной настраиваемой роли должно содержать:

  • Идентификатор: уникальный идентификатор определения роли для обновления
  • Имя: имя настраиваемой роли
  • Описание: краткое описание роли
  • Разрешения: массив объектов разрешений, содержащих действия и (или) DataActions
  • AssignableScopes: области, в которых можно назначить роль

Каждый объект разрешений в массиве разрешений может содержать действия, NotActions, DataActions, NotDataActions, а также при необходимости ConditionVersion для условий Attribute-Based контроль доступа (ABAC).

Important

Изменена форма PSRoleDefinition и -InputFile json. Оба -Role (PSRoleDefinition) и -InputFile (JSON) теперь используют Permissions массив объектов разрешений вместо плоских объектов верхнего уровня ActionsNotActionsи DataActionsNotDataActions свойств. Скрипты, которые передаются Get-AzRoleDefinition в Set-AzRoleDefinition -Role него, должны считывать и изменять действия и условия $role.Permissions[n] , а не напрямую в объекте роли. JSON-файлы, используемые с -InputFile разрешениями вложения, должны быть аналогичным образом вложены в Permissions массив.

Note

В настоящее время API RBAC Azure поддерживает только один элемент в массиве разрешений при обновлении пользовательских ролей. Хотя модель данных поддерживает несколько записей разрешений, операции обновления должны использовать ровно один объект разрешения.

Примеры

Пример 1. Обновление с помощью PSRoleDefinitionObject

$roleDef = Get-AzRoleDefinition "Contoso On-Call"
$roleDef.Permissions[0].Actions.Add("Microsoft.ClassicCompute/virtualmachines/start/action")
$roleDef.Description = "Can monitor all resources and start and restart virtual machines"
$roleDef.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
Set-AzRoleDefinition -Role $roleDef

Пример 2. Обновление с помощью JSON-файла

Set-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json

Обновляет определение пользовательской роли из JSON-файла. JSON-файл должен содержать свойство идентификатора роли.

Параметры

-DefaultProfile

Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure

Свойства параметров

Тип:IAzureContextContainer
Значение по умолчанию:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:AzContext, AzureRmContext, AzureCredential

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-InputFile

Имя файла с одним определением роли JSON, который необходимо обновить. Только включите свойства, которые необходимо обновить в формате JSON. Свойство Id — Обязательный.

Свойства параметров

Тип:String
Значение по умолчанию:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

InputFileParameterSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Role

Объект определения роли для обновления

Свойства параметров

Тип:PSRoleDefinition
Значение по умолчанию:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

RoleDefinitionParameterSet
Position:Named
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-SkipClientSideScopeValidation

Если задано, пропустите проверку области на стороне клиента.

Свойства параметров

Тип:SwitchParameter
Значение по умолчанию:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

PSRoleDefinition

Выходные данные

PSRoleDefinition

Примечания

Ключевые слова: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment