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, которое можно указать в качестве входных данных { "Имя": "Обновленная роль", "Описание": "Может отслеживать все ресурсы и запускать и перезапускать виртуальные машины", "Действия": [ /read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ /write", "DataActions": [ "Microsoft.служба хранилища/storageAccounts/blobServices/container/blobs/read" ], "NotDataActions": [ "Microsoft.служба хранилища/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

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

Имя файла, содержащее одно определение роли JSON.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

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

Type:PSRoleDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SkipClientSideScopeValidation

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

None

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

PSRoleDefinition

Примечания

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