Roles personalizados de AzureAzure custom roles

Importante

La adición de un grupo de administración a AssignableScopes está actualmente en versión preliminar.Adding a management group to AssignableScopes is currently in preview. Esta versión preliminar se ofrece sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción.This preview version is provided without a service level agreement, and it's not recommended for production workloads. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.Certain features might not be supported or might have constrained capabilities. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Si los roles integrados de Azure no cumplen las necesidades específicas de su organización, puede crear sus propios roles personalizados.If the Azure built-in roles don't meet the specific needs of your organization, you can create your own custom roles. Al igual que en el caso de los roles integrados, se pueden asignar roles personalizados a usuarios, grupos y entidades de servicio en los ámbitos del grupo de administración, de la suscripción y del grupo de recursos.Just like built-in roles, you can assign custom roles to users, groups, and service principals at management group, subscription, and resource group scopes.

Los roles personalizados se pueden compartir entre suscripciones que confían en el mismo directorio de Azure AD.Custom roles can be shared between subscriptions that trust the same Azure AD directory. Hay un límite de 5000 roles personalizados por directorio.There is a limit of 5,000 custom roles per directory. (En Azure Alemania y Azure China 21Vianet, el límite es 2000 roles personalizados). Se pueden crear roles personalizados con Azure Portal, Azure PowerShell, la CLI de Azure o la API REST.(For Azure Germany and Azure China 21Vianet, the limit is 2,000 custom roles.) Custom roles can be created using the Azure portal, Azure PowerShell, Azure CLI, or the REST API.

Ejemplo de rol personalizadoCustom role example

A continuación se muestra el aspecto de un rol personalizado en formato JSON a través de Azure PowerShell.The following shows what a custom role looks like as displayed using Azure PowerShell in JSON format. Este rol personalizado puede usarse para supervisar y reiniciar máquinas virtuales.This custom role can be used for monitoring and restarting virtual machines.

{
  "Name": "Virtual Machine Operator",
  "Id": "88888888-8888-8888-8888-888888888888",
  "IsCustom": true,
  "Description": "Can monitor and restart virtual machines.",
  "Actions": [
    "Microsoft.Storage/*/read",
    "Microsoft.Network/*/read",
    "Microsoft.Compute/*/read",
    "Microsoft.Compute/virtualMachines/start/action",
    "Microsoft.Compute/virtualMachines/restart/action",
    "Microsoft.Authorization/*/read",
    "Microsoft.ResourceHealth/availabilityStatuses/read",
    "Microsoft.Resources/subscriptions/resourceGroups/read",
    "Microsoft.Insights/alertRules/*",
    "Microsoft.Insights/diagnosticSettings/*",
    "Microsoft.Support/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/{groupId1}"
  ]
}

A continuación se muestra el mismo rol personalizado mediante la CLI de Azure.The following shows the same custom role as displayed using Azure CLI.

[
  {
    "assignableScopes": [
      "/subscriptions/{subscriptionId1}",
      "/subscriptions/{subscriptionId2}",
      "/providers/Microsoft.Management/managementGroups/{groupId1}"
    ],
    "description": "Can monitor and restart virtual machines.",
    "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
    "name": "88888888-8888-8888-8888-888888888888",
    "permissions": [
      {
        "actions": [
          "Microsoft.Storage/*/read",
          "Microsoft.Network/*/read",
          "Microsoft.Compute/*/read",
          "Microsoft.Compute/virtualMachines/start/action",
          "Microsoft.Compute/virtualMachines/restart/action",
          "Microsoft.Authorization/*/read",
          "Microsoft.ResourceHealth/availabilityStatuses/read",
          "Microsoft.Resources/subscriptions/resourceGroups/read",
          "Microsoft.Insights/alertRules/*",
          "Microsoft.Insights/diagnosticSettings/*",
          "Microsoft.Support/*"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "Virtual Machine Operator",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

Después de crear un rol personalizado, aparece en Azure Portal con un icono de recurso naranja.When you create a custom role, it appears in the Azure portal with an orange resource icon.

Icono de rol personalizado

Propiedades del rol personalizadoCustom role properties

En la tabla siguiente se describe el significado de las propiedades de roles personalizadas.The following table describes what the custom role properties mean.

PropiedadProperty ObligatorioRequired TipoType DescripciónDescription
Name
roleName
Yes StringString Nombre para mostrar del rol personalizado.The display name of the custom role. Aunque una definición de roles es un recurso de nivel de grupo de administración o de suscripción, una definición de roles se puede usar en varias suscripciones que compartan el mismo directorio de Azure AD.While a role definition is a management group or subscription-level resource, a role definition can be used in multiple subscriptions that share the same Azure AD directory. Este nombre para mostrar debe ser único en el ámbito del directorio de Azure AD.This display name must be unique at the scope of the Azure AD directory. Puede incluir letras, números, espacios y caracteres especiales.Can include letters, numbers, spaces, and special characters. El número máximo de caracteres es 128.Maximum number of characters is 128.
Id
name
Yes StringString El identificador exclusivo del rol personalizado.The unique ID of the custom role. Para Azure PowerShell y la CLI de Azure, este identificador se genera automáticamente cuando se crea un rol.For Azure PowerShell and Azure CLI, this ID is automatically generated when you create a new role.
IsCustom
roleType
Yes StringString Indica si es un rol personalizado.Indicates whether this is a custom role. Se establece en true o CustomRole para los roles personalizados.Set to true or CustomRole for custom roles. Se establece en false o BuiltInRole para los roles integrados.Set to false or BuiltInRole for built-in roles.
Description
description
Yes StringString Descripción del rol personalizado.The description of the custom role. Puede incluir letras, números, espacios y caracteres especiales.Can include letters, numbers, spaces, and special characters. El número máximo de caracteres es 1024.Maximum number of characters is 1024.
Actions
actions
Yes String[]String[] Matriz de cadenas que especifica las operaciones de administración que el rol permite realizar.An array of strings that specifies the management operations that the role allows to be performed. Para obtener más información, consulte Actions.For more information, see Actions.
NotActions
notActions
NoNo String[]String[] Matriz de cadenas que especifica las operaciones de administración que se excluyen de las Actions permitidas.An array of strings that specifies the management operations that are excluded from the allowed Actions. Para obtener más información, consulte notActions.For more information, see NotActions.
DataActions
dataActions
NoNo String[]String[] Matriz de cadenas que especifica las operaciones de datos que el rol permite realizar en los datos dentro de ese objeto.An array of strings that specifies the data operations that the role allows to be performed to your data within that object. Si crea un rol personalizado con DataActions, ese rol no se puede asignar en el ámbito del grupo de administración.If you create a custom role with DataActions, that role cannot be assigned at the management group scope. Para más información, vea DataActions.For more information, see DataActions.
NotDataActions
notDataActions
NoNo String[]String[] Matriz de cadenas que especifica las operaciones de datos que se excluyen de las DataActions permitidas.An array of strings that specifies the data operations that are excluded from the allowed DataActions. Para más información, vea NotDataActions.For more information, see NotDataActions.
AssignableScopes
assignableScopes
Yes String[]String[] Matriz de cadenas que especifica los ámbitos en los que el rol personalizado está disponible para la asignación.An array of strings that specifies the scopes that the custom role is available for assignment. Solo se puede definir un grupo de administración en AssignableScopes de un rol personalizado.You can only define one management group in AssignableScopes of a custom role. La adición de un grupo de administración a AssignableScopes está actualmente en versión preliminar.Adding a management group to AssignableScopes is currently in preview. Para obtener más información, consulte assignableScopes.For more information, see AssignableScopes.

Permisos con caracteres comodínWildcard permissions

Actions, NotActions, DataActionsy NotDataActions admiten caracteres comodín (*) para definir los permisos.Actions, NotActions, DataActions, and NotDataActions support wildcards (*) to define permissions. Los caracteres comodín (*) amplían los permisos a todo aquello que coincida con la cadena de acción que se especifique.A wildcard (*) extends a permission to everything that matches the action string you provide. Por ejemplo, supongamos que desea agregar todos los permisos relacionados con Azure Cost Management y las exportaciones.For example, suppose that you wanted to add all the permissions related to Azure Cost Management and exports. Puede agregar todas estas cadenas de acción:You could add all of these action strings:

Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action

En lugar de agregar todas estas cadenas, podría agregar únicamente una cadena comodín.Instead of adding all of these strings, you could just add a wildcard string. Por ejemplo, la siguiente cadena comodín es equivalente a las cinco cadenas anteriores.For example, the following wildcard string is equivalent to the previous five strings. De esta forma también se incluirían los futuros permisos de exportación que se pudieran agregar.This would also include any future export permissions that might be added.

Microsoft.CostManagement/exports/*

Una sola cadena puede tener varios caracteres comodín.You can also have multiple wildcards in a string. Por ejemplo, la siguiente cadena representa todos los permisos de consulta de Cost Management.For example, the following string represents all query permissions for Cost Management.

Microsoft.CostManagement/*/query/*

Pasos para crear un rol personalizadoSteps to create a custom role

Para crear un rol personalizado, estos son los pasos básicos que debe seguir.To create a custom role, here are basics steps you should follow.

  1. Decidir cómo se quiere crear el rol personalizado.Decide how you want to create the custom role.

    Puede crear roles personalizados con Azure Portal, Azure PowerShell, la CLI de Azure o la API de REST.You can create custom roles using Azure portal, Azure PowerShell, Azure CLI, or the REST API.

  2. Determinar los permisos que necesita.Determine the permissions you need.

    Cuando crea un rol personalizado, debe conocer las operaciones que están disponibles para definir los permisos.When you create a custom role, you need to know the operations that are available to define your permissions. Para ver la lista de operaciones, vea Operaciones del proveedor de recursos de Azure Resource Manager.To view the list of operations, see the Azure Resource Manager resource provider operations. Agregará las operaciones a las propiedades Actions o NotActions de la definición de roles.You will add the operations to the Actions or NotActions properties of the role definition. Si tiene operaciones de datos, las agregará a las propiedades DataActions o NotDataActions.If you have data operations, you will add those to the DataActions or NotDataActions properties.

  3. Crear el rol personalizado.Create the custom role.

    Por lo general, empiece con un rol integrado existente y, a continuación, modifíquelo según sus necesidades.Typically, you start with an existing built-in role and then modify it for your needs. La manera más fácil es usar Azure Portal.The easiest way is to use the Azure portal. Para conocer los pasos para crear un rol personalizado mediante Azure Portal, consulte Creación o actualización de roles personalizados de Azure mediante Azure Portal.For steps on how to create a custom role using the Azure portal, see Create or update Azure custom roles using the Azure portal.

  4. Probar el rol personalizado.Test the custom role.

    Una vez que tenga el rol personalizado, tiene que probarlo para comprobar que funciona según lo esperado.Once you have your custom role, you have to test it to verify that it works as you expect. Si tiene que realizar ajustes más adelante, puede actualizar el rol personalizado.If you need to make adjustments later, you can update the custom role.

Quién puede crear, eliminar, actualizar o ver un rol personalizadoWho can create, delete, update, or view a custom role

Al igual que los roles integrados, la propiedad AssignableScopes especifica los ámbitos en los que el rol está disponible para la asignación.Just like built-in roles, the AssignableScopes property specifies the scopes that the role is available for assignment. La propiedad AssignableScopes de un rol personalizado también controla quién puede crear, eliminar, actualizar o ver dicho rol.The AssignableScopes property for a custom role also controls who can create, delete, update, or view the custom role.

TareaTask OperaciónOperation DescripciónDescription
Creación o eliminación de un rol personalizadoCreate/delete a custom role Microsoft.Authorization/ roleDefinitions/write Los usuarios que tienen acceso a esta operación en todos los ámbitos AssignableScopes del rol personalizado pueden crear (o eliminar) roles personalizados para usar en esos ámbitos.Users that are granted this operation on all the AssignableScopes of the custom role can create (or delete) custom roles for use in those scopes. Por ejemplo, los propietarios y administradores del acceso de los usuarios de los grupos de administración, las suscripciones y los grupos de recursos.For example, Owners and User Access Administrators of management groups, subscriptions, and resource groups.
Actualización de un rol personalizadoUpdate a custom role Microsoft.Authorization/ roleDefinitions/write Los usuarios que tienen acceso a esta operación en todos los ámbitos AssignableScopes del rol personalizado pueden actualizar roles personalizados en esos ámbitos.Users that are granted this operation on all the AssignableScopes of the custom role can update custom roles in those scopes. Por ejemplo, los propietarios y administradores del acceso de los usuarios de los grupos de administración, las suscripciones y los grupos de recursos.For example, Owners and User Access Administrators of management groups, subscriptions, and resource groups.
Visualización de un rol personalizadoView a custom role Microsoft.Authorization/ roleDefinitions/read Los usuarios que tienen acceso a esta operación en un ámbito pueden ver los roles personalizados que están disponibles para su asignación en ese ámbito.Users that are granted this operation at a scope can view the custom roles that are available for assignment at that scope. Todos los roles integrados permiten que los roles personalizados estén disponibles para la asignación.All built-in roles allow custom roles to be available for assignment.

Límites de los roles personalizadosCustom role limits

En la siguiente lista se describen los límites de los roles personalizados.The following list describes the limits for custom roles.

  • Cada directorio puede tener hasta 5000 roles personalizados.Each directory can have up to 5000 custom roles.
  • Azure Alemania y Azure China 21Vianet pueden tener hasta 2000 roles personalizados por cada directorio.Azure Germany and Azure China 21Vianet can have up to 2000 custom roles for each directory.
  • AssignableScopes no se puede establecer en el ámbito raíz ("/").You cannot set AssignableScopes to the root scope ("/").
  • Solo se puede definir un grupo de administración en AssignableScopes de un rol personalizado.You can only define one management group in AssignableScopes of a custom role. La adición de un grupo de administración a AssignableScopes está actualmente en versión preliminar.Adding a management group to AssignableScopes is currently in preview.
  • No se pueden asignar roles personalizados con DataActions en el ámbito del grupo de administración.Custom roles with DataActions cannot be assigned at the management group scope.
  • Azure Resource Manager no valida la existencia del grupo de administración en el ámbito asignable de la definición de roles.Azure Resource Manager doesn't validate the management group's existence in the role definition's assignable scope.

Para más información sobre los roles personalizados y los grupos de administración, vea Organización de los recursos con grupos de administración de Azure.For more information about custom roles and management groups, see Organize your resources with Azure management groups.

Formatos de entrada y salidaInput and output formats

Para crear un rol personalizado mediante la línea de comandos, normalmente se usa JSON para especificar las propiedades deseadas para el rol personalizado.To create a custom role using the command line, you typically use JSON to specify the properties you want for the custom role. En función de las herramientas que use, los formatos de entrada y salida tendrán un aspecto ligeramente diferente.Depending on the tools you use, the input and output formats will look slightly different. En esta sección se enumeran los formatos de entrada y salida en función de la herramienta.This section lists the input and output formats depending on the tool.

Azure PowerShellAzure PowerShell

Para crear un rol personalizado mediante Azure PowerShell, debe proporcionar la siguiente entrada.To create a custom role using Azure PowerShell, you must provide following input.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Para actualizar un rol personalizado mediante Azure PowerShell, debe proporcionar la siguiente entrada.To update a custom role using Azure PowerShell, you must provide the following input. Observe que se ha agregado la propiedad Id.Note that the Id property has been added.

{
  "Name": "",
  "Id": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

A continuación se muestra un ejemplo de la salida al enumerar un rol personalizado mediante Azure PowerShell y el comando ConvertTo-JSON.The following shows an example of the output when you list a custom role using Azure PowerShell and the ConvertTo-Json command.

{
  "Name": "",
  "Id": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Azure CLIAzure CLI

Para crear o actualizar un rol personalizado mediante la CLI de Azure, debe proporcionar la siguiente entrada.To create or update a custom role using Azure CLI, you must provide following input. Este es el mismo formato que el usado para crear un rol personalizado mediante Azure PowerShell.This format is the same format when you create a custom role using Azure PowerShell.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

A continuación se muestra un ejemplo de la salida al enumerar un rol personalizado mediante la CLI de Azure.The following shows an example of the output when you list a custom role using Azure CLI.

[
  {
    "assignableScopes": [],
    "description": "",
    "id": "",
    "name": "",
    "permissions": [
      {
        "actions": [],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

API DE RESTREST API

Para crear o actualizar un rol personalizado mediante la API de REST, debe proporcionar la siguiente entrada.To create or update a custom role using the REST API, you must provide following input. Este es el mismo formato que se genera al crear un rol personalizado mediante Azure Portal.This format is the same format that gets generated when you create a custom role using the Azure portal.

{
  "properties": {
    "roleName": "",
    "description": "",
    "assignableScopes": [],
    "permissions": [
      {
        "actions": [],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

A continuación se muestra un ejemplo de la salida al enumerar un rol personalizado mediante la API de REST.The following shows an example of the output when you list a custom role using the REST API.

{
    "properties": {
        "roleName": "",
        "type": "CustomRole",
        "description": "",
        "assignableScopes": [],
        "permissions": [
            {
                "actions": [],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ],
        "createdOn": "",
        "updatedOn": "",
        "createdBy": "",
        "updatedBy": ""
    },
    "id": "",
    "type": "Microsoft.Authorization/roleDefinitions",
    "name": ""
}

Pasos siguientesNext steps