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.

Определение входной роли должно содержать следующие свойства:

  1. Имя: имя настраиваемой роли
  2. Описание: краткое описание роли, которая суммирует доступ, предоставленный ролью.
  3. Разрешения: массив объектов разрешений, каждый из которых содержит действия и (или) DataActions. Используйте Get-AzProviderOperation, чтобы получить операцию для поставщиков ресурсов Azure, которые можно защитить с помощью Azure RBAC. Ниже приведены некоторые допустимые строки операций:
    • "*/чтение" предоставляет доступ ко всем операциям чтения всех поставщиков ресурсов Azure.
    • "Microsoft. Network/*/read" предоставляет доступ к операциям чтения для всех типов ресурсов в Microsoft. Поставщик сетевых ресурсов Azure.
    • "Microsoft. Compute/virtualMachines/*" предоставляет доступ ко всем операциям виртуальных машин и его дочерним типам ресурсов.
  4. 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": делает роль доступной только для назначения в группе сетевых ресурсов.

Каждый объект разрешений в массиве разрешений МОЖЕТ содержать:

  1. Действия: набор операций плоскости управления, которым пользовательская роль предоставляет доступ.
  2. NotActions: набор операций, которые должны быть исключены из действия, чтобы определить действующие действия.
  3. DataActions: набор операций плоскости данных, к которым пользовательская роль предоставляет доступ.
  4. NotDataActions: набор операций, которые должны быть исключены из DataActions.
  5. Условие: условие Attribute-Based контроль доступа (ABAC), которое ограничивает разрешения.
  6. 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