New-AzRoleDefinition
Crea un rol personalizado en Azure RBAC. 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
InputFileParameterSet
New-AzRoleDefinition
[-InputFile] <String>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
RoleDefinitionParameterSet
New-AzRoleDefinition
[-Role] <PSRoleDefinition>
[-SkipClientSideScopeValidation]
[-DefaultProfile <IAzureContextContainer>]
[<CommonParameters>]
Description
El cmdlet New-AzRoleDefinition crea un rol personalizado en Azure Role-Based Access Control. 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:
- Nombre: el nombre del rol personalizado.
- Descripción: una breve descripción del rol que resume el acceso que concede el rol.
- Permisos: una matriz de objetos de permiso, cada uno que contiene Acciones o DataActions.
Use Get-AzProviderOperation para obtener la operación de Azure proveedores de recursos que se pueden proteger mediante Azure RBAC.
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 de la Microsoft. Proveedor de recursos de red de Azure.
- "Microsoft. Compute/virtualMachines/*" concede acceso a todas las operaciones de máquinas virtuales y sus tipos de recursos secundarios.
- AssignableScopes: el conjunto de ámbitos (Azure suscripciones o grupos de recursos) en el que el rol personalizado estará disponible para la asignación.
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.
Cada objeto de permiso de la matriz Permissions PUEDE contener:
- Acciones: conjunto de operaciones del plano de control a las que el rol personalizado concede acceso.
- NotActions: conjunto de operaciones que se deben excluir de las acciones para determinar las acciones efectivas.
- DataActions: el conjunto de operaciones del plano de datos a las que el rol personalizado concede acceso.
- NotDataActions: conjunto de operaciones que se deben excluir de DataActions.
- Condición: una condición Attribute-Based Access Control (ABAC) que restringe los permisos.
- ConditionVersion: la versión de la sintaxis de la condición, por ejemplo, "2.0" (necesaria si se especifica Condition).
Note
Actualmente, la API de RBAC de Azure solo admite un único elemento de la matriz Permissions al crear roles personalizados. Aunque el modelo de datos admite varias entradas de permisos, las operaciones de creación deben usar exactamente un objeto de permiso.
A continuación se muestra una definición de rol JSON de ejemplo que se puede proporcionar como entrada: { "Name": "Custom VM Operator", "Description": "Can monitor all resources and start and restart virtual machines", "Permissions": [ { "Actions": [ "/read", "Microsoft. Compute/virtualMachines/restart/action", "Microsoft. Compute/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 un rol personalizado mediante el objeto 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
Crea un rol personalizado denominado "Operador de máquina virtual" con las acciones especificadas.
Ejemplo 2: Creación de un rol personalizado mediante un archivo JSON
New-AzRoleDefinition -InputFile C:\Temp\roleDefinition.json
Crea un rol personalizado a partir de un archivo de definición JSON.
Parámetros
-DefaultProfile
Las credenciales, la cuenta, el inquilino y la suscripción que se usan para la comunicación con Azure
Propiedades de parámetro
| Tipo: | IAzureContextContainer |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | AzContext, AzureRmContext, AzureCredential |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputFile
Nombre de archivo que contiene una única definición de rol json.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
InputFileParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Role
Objeto de definición de roles.
Propiedades de parámetro
| Tipo: | PSRoleDefinition |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
RoleDefinitionParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-SkipClientSideScopeValidation
Si se especifica, omita la validación del ámbito del lado cliente.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
None
Salidas
PSRoleDefinition
Notas
Palabras clave: azure, azurerm, arm, resource, management, manager, resource, group, template, deployment