New-AzRoleDefinition
Создает пользовательскую роль в Azure RBAC. Укажите файл определения роли JSON или объект PSRoleDefinition в качестве входных данных. Сначала используйте команду Get-AzRoleDefinition для создания объекта определения базовой роли. Затем измените его свойства по мере необходимости. Наконец, используйте эту команду для создания настраиваемой роли с помощью определения роли.
Синтаксис
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Описание
Командлет New-AzRoleDefinition создает пользовательскую роль в контроль доступа на основе ролей Azure. Укажите определение роли в качестве входных данных для команды в виде JSON-файла или объекта PSRoleDefinition. Определение входной роли должно содержать следующие свойства:
- DisplayName: имя настраиваемой роли
- Описание: краткое описание роли, которая суммирует доступ, предоставленный ролью.
- Действия: набор операций, которым пользовательская роль предоставляет доступ. Используйте Get-AzProviderOperation, чтобы получить операцию для поставщиков ресурсов Azure, которые можно защитить с помощью Azure RBAC. Ниже приведены некоторые допустимые строки операций:
- "*/чтение" предоставляет доступ к операциям чтения всех поставщиков ресурсов Azure.
- Microsoft.Network/*/read предоставляет доступ к операциям чтения для всех типов ресурсов в поставщике ресурсов Microsoft.Network в Azure.
- Microsoft.Compute/virtualMachines/*предоставляет доступ ко всем операциям виртуальных машин и его дочерним типам ресурсов.
- AssignableScopes: набор областей (подписки Или группы ресурсов Azure), в которых пользовательская роль будет доступна для назначения. С помощью AssignableScopes можно сделать настраиваемую роль доступной только для назначений в подписках или группах ресурсов, которым это нужно, и не загромождать взаимодействие с пользователем для остальных подписок или групп ресурсов. Ниже приведены некоторые допустимые области назначения:
- "/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: набор операций, которые должны быть исключены из действия, чтобы определить эффективные действия для пользовательской роли. Если существует определенная операция, к которой вы не хотите предоставлять доступ в настраиваемой роли, удобно использовать NotActions, чтобы исключить ее, а не указывать все операции, отличные от конкретной операции в Actions.
- DataActions: набор операций с данными, которым пользовательская роль предоставляет доступ.
- NotDataActions: набор операций, которые должны быть исключены из DataActions, чтобы определить эффективные действия данных для пользовательской роли. Если существует определенная операция с данными, к которой не требуется предоставлять доступ в настраиваемой роли, удобно использовать NotDataActions, чтобы исключить ее, а не указывать все операции, отличные от конкретной операции в Actions. ПРИМЕЧАНИЕ. Если пользователю назначена роль, указывающая операцию в NotActions, а также назначенная другая роль предоставляет доступ к той же операции. Пользователь сможет выполнить операцию. NotActions не является правилом запрета. Это просто удобный способ создания набора разрешенных операций, когда определенные операции необходимо исключить. Ниже приведен пример определения роли JSON, который можно указать в качестве входных данных { "Имя": "Обновленная роль", "Описание": "Может отслеживать все ресурсы и запускать и перезапускать виртуальные машины", "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ /write" ], "DataActions": [ "Microsoft.Storage/storageAccounts/blobServices/container/blobs/read" ], "NotDataActions": [ "Майкрософт". Storage/storageAccounts/blobServices/container/blobs/write" ], "AssignableScopes": ["/subscriptions/xxxx-xxxxx-xxxx"] }
Примеры
Пример 1. Создание с помощью PSRoleDefinitionObject
$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")
$role.Actions = @(
"Microsoft.Compute/*/read"
"Microsoft.Compute/virtualMachines/start/action"
"Microsoft.Compute/virtualMachines/restart/action"
"Microsoft.Compute/virtualMachines/downloadRemoteDesktopConnectionFile/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/*"
)
New-AzRoleDefinition -Role $role
Пример 2. Создание с помощью JSON-файла
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
Параметры
-DefaultProfile
Учетные данные, учетная запись, клиент и подписка, используемые для обмена данными с Azure
Тип: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputFile
Имя файла, содержащее одно определение роли JSON.
Тип: | String |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Role
Объект определения роли.
Тип: | PSRoleDefinition |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-SkipClientSideScopeValidation
Если задано, пропустите проверку области на стороне клиента.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Выходные данные
Примечания
Ключевые слова: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment