New-AzRoleDefinition

Crea un rol personalizado en RBAC de Azure. Proporcione un archivo de definición de roles JSON o un objeto PSRoleDefinition como entrada. En primer lugar, use el comando Get-AzRoleDefinition para generar un objeto de definición de roles de línea base. A continuación, modifique sus propiedades según sea necesario. Por último, use este comando para crear un rol personalizado mediante la definición de roles.

Syntax

New-AzRoleDefinition
   [-InputFile] <String>
   [-SkipClientSideScopeValidation]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
New-AzRoleDefinition
   [-Role] <PSRoleDefinition>
   [-SkipClientSideScopeValidation]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

El cmdlet New-AzRoleDefinition crea un rol personalizado en el control de acceso basado en rol de Azure. Proporcione una definición de rol como entrada al comando como un archivo JSON o un objeto PSRoleDefinition. La definición del rol de entrada DEBE contener las siguientes propiedades:

  1. DisplayName: el nombre del rol personalizado
  2. Descripción: una breve descripción del rol que resume el acceso que concede el rol.
  3. Acciones: conjunto de operaciones a las que el rol personalizado concede acceso. Use Get-AzProviderOperation para obtener la operación de los proveedores de recursos de Azure que se pueden proteger mediante RBAC de Azure. A continuación se muestran algunas cadenas de operación válidas:
  • "*/read" concede acceso a las operaciones de lectura de todos los proveedores de recursos de Azure.
  • "Microsoft.Network/*/read" concede acceso a las operaciones de lectura para todos los tipos de recursos del proveedor de recursos Microsoft.Network de Azure.
  • "Microsoft.Compute/virtualMachines/*" concede acceso a todas las operaciones de máquinas virtuales y sus tipos de recursos secundarios.
  1. AssignableScopes: el conjunto de ámbitos (suscripciones o grupos de recursos de Azure) en el que el rol personalizado estará disponible para la asignación. Con AssignableScopes, puede hacer que el rol personalizado esté disponible para la asignación solo en las suscripciones o grupos de recursos que lo necesitan, y no desordene la experiencia del usuario para el resto de las suscripciones o grupos de recursos. A continuación se muestran algunos ámbitos asignables válidos:
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624": pone el rol disponible para la asignación en dos suscripciones.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e": hace que el rol esté disponible para la asignación en una sola suscripción.
  • "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network": hace que el rol esté disponible solo para la asignación en el grupo de recursos de red. La definición del rol de entrada PUEDE contener las siguientes propiedades:
  1. NotActions: conjunto de operaciones que se deben excluir de las acciones para determinar las acciones efectivas para el rol personalizado. Si hay una operación específica a la que no desea conceder acceso en un rol personalizado, es conveniente usar NotActions para excluirlo, en lugar de especificar todas las operaciones que no sean esa operación específica en Acciones.
  2. DataActions: conjunto de operaciones de datos a las que el rol personalizado concede acceso.
  3. NotDataActions: conjunto de operaciones que se deben excluir de DataActions para determinar las acciones de datos eficaces para el rol personalizado. Si hay una operación de datos específica a la que no desea conceder acceso en un rol personalizado, es conveniente usar NotDataActions para excluirlo, en lugar de especificar todas las operaciones que no sean esa operación específica en Acciones. NOTA: Si a un usuario se le asigna un rol que especifica una operación en NotActions y también se le asigna otro rol concede acceso a la misma operación, el usuario podrá realizar esa operación. NotActions no es una regla de denegación: es simplemente una manera cómoda de crear un conjunto de operaciones permitidas cuando es necesario excluir operaciones específicas. A continuación se muestra una definición de rol json de ejemplo que se puede proporcionar como entrada { "Name": "Updated Role", "Description": "Can monitor all resources and start and restart virtual machines", "Actions": [ "/read", "Microsoft.ClassicCompute/virtualmachines/restart/action", "Microsoft.ClassicCompute/virtualmachines/start/action" ], "NotActions": [ "/write" ], "DataActions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" ], "NotDataActions": [ "Microsoft. Storage/storageAccounts/blobServices/containers/blobs/write" ], "AssignableScopes": ["/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] }

Ejemplos

Ejemplo 1: Crear mediante 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

Ejemplo 2: Creación mediante un archivo JSON

New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json

Parámetros

-DefaultProfile

Las credenciales, la cuenta, el inquilino y la suscripción que se usan para la comunicación con Azure

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

-InputFile

Nombre de archivo que contiene una única definición de rol json.

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

-Role

Objeto de definición de roles.

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

-SkipClientSideScopeValidation

Si se especifica, omita la validación del ámbito del lado cliente.

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

Entradas

None

Salidas

PSRoleDefinition

Notas

Palabras clave: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment