New-AzRoleDefinition
Создает пользовательскую роль в Azure RBAC. Укажите файл определения роли JSON или объект PSRoleDefinition в качестве входных данных. Сначала используйте команду Get-AzRoleDefinition для создания объекта определения базовой роли. Затем измените его свойства по мере необходимости. Наконец, используйте эту команду для создания настраиваемой роли с помощью определения роли.
Синтаксис
InputFileParameterSet
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Описание
Командлет New-AzRoleDefinition создает пользовательскую роль в Azure Role-Based контроль доступа. Укажите определение роли в качестве входных данных для команды в виде JSON-файла или объекта PSRoleDefinition.
Определение входной роли должно содержать следующие свойства:
- Имя: имя настраиваемой роли
- Описание: краткое описание роли, которая суммирует доступ, предоставленный ролью.
- Разрешения: массив объектов разрешений, каждый из которых содержит действия и (или) DataActions.
Используйте Get-AzProviderOperation, чтобы получить операцию для поставщиков ресурсов Azure, которые можно защитить с помощью Azure RBAC.
Ниже приведены некоторые допустимые строки операций:
- "*/чтение" предоставляет доступ ко всем операциям чтения всех поставщиков ресурсов Azure.
- "Microsoft. Network/*/read" предоставляет доступ к операциям чтения для всех типов ресурсов в Microsoft. Поставщик сетевых ресурсов Azure.
- "Microsoft. Compute/virtualMachines/*" предоставляет доступ ко всем операциям виртуальных машин и его дочерним типам ресурсов.
- AssignableScopes: набор областей (Azure подписок или групп ресурсов), в которых пользовательская роль будет доступна для назначения.
Ниже приведены некоторые допустимые области назначения:
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": делает роль доступной для назначения в двух подписках.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": делает роль доступной для назначения в одной подписке.
- "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": делает роль доступной только для назначения в группе сетевых ресурсов.
Каждый объект разрешений в массиве разрешений МОЖЕТ содержать:
- Действия: набор операций плоскости управления, которым пользовательская роль предоставляет доступ.
- NotActions: набор операций, которые должны быть исключены из действия, чтобы определить действующие действия.
- DataActions: набор операций плоскости данных, к которым пользовательская роль предоставляет доступ.
- NotDataActions: набор операций, которые должны быть исключены из DataActions.
- Условие: условие Attribute-Based контроль доступа (ABAC), которое ограничивает разрешения.
- ConditionVersion: версия синтаксиса условия, например "2.0" (требуется, если задано условие).
Note
В настоящее время API RBAC Azure поддерживает только один элемент в массиве разрешений при создании пользовательских ролей. Хотя модель данных поддерживает несколько записей разрешений, операции создания должны использовать ровно один объект разрешения.
Ниже приведен пример определения роли JSON, который можно указать в качестве входных данных: { "Имя": "Настраиваемый оператор виртуальной машины", "Описание": "Может отслеживать все ресурсы и запускать и перезапускать виртуальные машины", "Разрешения": [ { "Действия": [ "/read", "Microsoft". Compute/virtualMachines/restart/action, "Microsoft". Compute/virtualMachines/start/action" ], "NotActions": [ "/write" ], "DataActions": [ "Microsoft". Storage/storageAccounts/blobServices/container/blobs/read" ], "NotDataActions": [ "Microsoft". Storage/storageAccounts/blobServices/container/blobs/write] } ], "AssignableScopes": ["/subscriptions/xxxx-xxxx"] }
Примеры
Пример 1. Создание настраиваемой роли с помощью объекта PSRoleDefinition
$role = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition
$role.Name = 'Virtual Machine Operator'
$role.Description = 'Can monitor, start, and restart virtual machines.'
$role.IsCustom = $true
$role.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
$permission = New-Object -TypeName Microsoft.Azure.Commands.Resources.Models.Authorization.PSPermission
$permission.Actions = @(
"Microsoft.Compute/*/read"
"Microsoft.Compute/virtualMachines/start/action"
"Microsoft.Compute/virtualMachines/restart/action"
"Microsoft.Network/*/read"
"Microsoft.Storage/*/read"
"Microsoft.Authorization/*/read"
"Microsoft.Resources/subscriptions/resourceGroups/read"
"Microsoft.Resources/subscriptions/resourceGroups/resources/read"
"Microsoft.Insights/alertRules/*"
"Microsoft.Support/*"
)
$role.Permissions = @($permission)
New-AzRoleDefinition -Role $role
Создает пользовательскую роль с именем "Оператор виртуальной машины" с указанными действиями.
Пример 2. Создание настраиваемой роли с помощью JSON-файла
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
Создает пользовательскую роль из файла определения JSON.
Параметры
-DefaultProfile
Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure
Свойства параметров
| Тип: | IAzureContextContainer |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | AzContext, AzureRmContext, AzureCredential |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-InputFile
Имя файла, содержащее одно определение роли JSON.
Свойства параметров
| Тип: | String |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
InputFileParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Role
Объект определения роли.
Свойства параметров
| Тип: | PSRoleDefinition |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
RoleDefinitionParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | 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.
Входные данные
None
Выходные данные
PSRoleDefinition
Примечания
Ключевые слова: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment