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