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.

Sintaxis

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

Tipo:IAzureContextContainer
Alias:AzContext, AzureRmContext, AzureCredential
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-InputFile

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

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Role

Objeto de definición de roles.

Tipo:PSRoleDefinition
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SkipClientSideScopeValidation

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

None

Salidas

PSRoleDefinition

Notas

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