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. Определение входной роли должно содержать следующие свойства:

  1. DisplayName: имя настраиваемой роли
  2. Описание: краткое описание роли, которая суммирует доступ, предоставленный ролью.
  3. Действия: набор операций, которым пользовательская роль предоставляет доступ. Используйте Get-AzProviderOperation, чтобы получить операцию для поставщиков ресурсов Azure, которые можно защитить с помощью Azure RBAC. Ниже приведены некоторые допустимые строки операций:
  • "*/чтение" предоставляет доступ к операциям чтения всех поставщиков ресурсов Azure.
  • Microsoft.Network/*/read предоставляет доступ к операциям чтения для всех типов ресурсов в поставщике ресурсов Microsoft.Network в Azure.
  • Microsoft.Compute/virtualMachines/*предоставляет доступ ко всем операциям виртуальных машин и его дочерним типам ресурсов.
  1. 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": делает роль доступной только для назначения в группе сетевых ресурсов. Определение входной роли МОЖЕТ содержать следующие свойства:
  1. NotActions: набор операций, которые должны быть исключены из действия, чтобы определить эффективные действия для пользовательской роли. Если существует определенная операция, к которой вы не хотите предоставлять доступ в настраиваемой роли, удобно использовать NotActions, чтобы исключить ее, а не указывать все операции, отличные от конкретной операции в Actions.
  2. DataActions: набор операций с данными, которым пользовательская роль предоставляет доступ.
  3. 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

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

PSRoleDefinition

Примечания

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