Elevación de los privilegios de acceso para administrar todas las suscripciones y los grupos de administración de Azure

En tanto que administrador global de Microsoft Entra ID, es posible que no tenga acceso a todas las suscripciones y los grupos de administración de su directorio. En este artículo se describen los medios para elevar sus derechos de acceso a todas las suscripciones y grupos de administración.

Nota:

Para más información sobre cómo ver o eliminar datos personales, consulte Solicitudes de interesados de datos de Azure para el RGPD. Para más información sobre RGPD, consulte Información sobre los procedimientos recomendados para el cumplimiento del RGPD y la sección RGPD del portal de confianza de servicios.

¿Por qué necesita elevar los derechos de acceso?

Si es un administrador global, es posible que haya momentos en los que quiera realizar las siguientes acciones:

  • Recuperar el acceso a una suscripción o grupo de administración de Azure cuando un usuario ha perdido el acceso
  • Conceder a otro usuario o a sí mismo acceso a un grupo de administración o una suscripción de Azure
  • Ver todas las suscripciones o grupos de administración de Azure de una organización
  • Permitir que una aplicación de automatización (por ejemplo, una aplicación de facturación o auditoría) tenga acceso a todas las suscripciones o grupos de administración de Azure

¿Cómo funciona el acceso con privilegios elevados?

El identificador de Entra de Microsoft y los recursos de Azure se protegen independientemente entre sí. Es decir, las asignaciones de roles de Microsoft Entra no conceden acceso a los recursos de Azure y las asignaciones de roles de Azure no conceden acceso al identificador de Microsoft Entra. Sin embargo, si es un Administración istrator global en el identificador de Microsoft Entra, puede asignarse acceso a todas las suscripciones y grupos de administración de Azure en el directorio. Use esta funcionalidad si no tiene acceso a recursos de suscripción a Azure, como máquinas virtuales o cuentas de almacenamiento, y quiere usar su privilegio de administrador global para obtener acceso a esos recursos.

Al elevar los privilegios de acceso, se le asignará el rol Administrador de acceso de usuario en Azure en el ámbito raíz (/). Esto le permite ver todos los recursos y asignar acceso en cualquier suscripción o grupo de administración en el directorio. Se pueden quitar las asignaciones de roles de administrador de acceso de usuario mediante Azure PowerShell, CLI de Azure o la API de REST.

Debe quitar este acceso con privilegios elevados una vez que haya hecho los cambios necesarios en el ámbito raíz.

Elevate access

Azure portal

Elevación de los privilegios de acceso de un administrador global

Siga estos pasos para elevar los privilegios de acceso de un administrador global mediante Azure Portal.

  1. Inicie sesión en Azure Portal como administrador global.

    Si usa Microsoft Entra Privileged Identity Management, active la asignación de roles de Administración istrator global.

  2. Abra Microsoft Entra ID.

  3. En Administrar, seleccione Propiedades.

    Select Properties for Microsoft Entra properties - screenshot

  4. En Administración del acceso para los recursos de Azure, establezca el botón de alternancia en .

    Access management for Azure resources - screenshot

    Al establecer el botón de alternancia en , se le asigna el rol de administrador de accesos de usuario en Azure RBAC en el ámbito raíz (/). Esto le concede permiso para asignar roles en todas las suscripciones y grupos de administración de Azure asociados a este directorio de Microsoft Entra. Este botón de alternancia solo está disponible para los usuarios a los que se les asigna el rol Global Administración istrator en el identificador de Microsoft Entra.

    Al establecer el botón de alternancia en No, se quita el rol de administrador de accesos de usuario en Azure RBAC de su cuenta de usuario. Ya no puede asignar roles en todas las suscripciones y grupos de administración de Azure asociados a este directorio de Microsoft Entra. Puede ver y administrar solo las suscripciones de Azure y los grupos de administración a los que se le ha concedido acceso.

    Nota:

    Si usa Privileged Identity Management, la desactivación de la asignación de roles no cambia la opción Administración de acceso para recursos de Azure a No. Para mantener el acceso con privilegios mínimos, se recomienda establecer esta opción en No antes de desactivar la asignación de roles.

  5. Haga clic en Guardar para guardar la configuración.

    Esta configuración no es una propiedad global y se aplica solo al usuario que tiene la sesión iniciada. No puede elevar los privilegios de acceso para todos los miembros del rol de administrador global.

  6. Cierre la sesión e inicie sesión de nuevo para actualizar el acceso.

    Ahora debería tener acceso a todas las suscripciones y los grupos de administración de Azure de este directorio. Observará que se le ha asignado el rol de administrador de accesos de usuario en el ámbito raíz al ver el panel de control de acceso (IAM).

    Subscription role assignments with root scope - screenshot

  7. Haga los cambios que tenga que hacer con privilegios de acceso elevados.

    Para obtener más información sobre la asignación de roles, consulte Asignaciones de roles de Azure mediante Azure Portal. Si usa Privileged Identity Management, consulte Detección de recursos de Azure para administrar o Asignación de roles de recursos de Azure.

  8. Siga los pasos de la sección siguiente para quitar el acceso con privilegios elevados.

Eliminación de privilegios de acceso elevados

Para quitar la asignación del rol de administrador de accesos de usuario en el ámbito raíz (/), siga estos pasos.

  1. Inicie sesión como el mismo usuario que se usó para elevar el acceso.

  2. En la lista de navegación, haga clic en Id. de Entra de Microsoft y, a continuación, haga clic en Propiedades.

  3. Establezca el botón de alternancia Administración del acceso para los recursos de Azure de nuevo en No. Puesto que se trata de una configuración que se realiza a nivel de usuario, debe haber iniciado sesión con el mismo usuario que el utilizado para elevar los privilegios de acceso.

    Si intenta quitar la asignación de rol de administración de identidad y acceso en el panel de control de acceso (IAM), verá el siguiente mensaje. Para quitar la asignación de roles, debe establecer el botón de alternancia en No o usar Azure PowerShell, la CLI de Azure o la API REST.

    Remove role assignments with root scope

  4. Cerrar sesión como un administrador global.

    Si usa Privileged Identity Management, desactive la asignación de roles de administrador global.

    Nota:

    Si usa Privileged Identity Management, la desactivación de la asignación de roles no cambia la opción Administración de acceso para recursos de Azure a No. Para mantener el acceso con privilegios mínimos, se recomienda establecer esta opción en No antes de desactivar la asignación de roles.

Azure PowerShell

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Mostrar la asignación de roles en el ámbito raíz (/)

Para mostrar la asignación del rol de administrador de accesos de usuario de un usuario en el ámbito raíz (/), use el comando Get-AzRoleAssignment.

Get-AzRoleAssignment | where {$_.RoleDefinitionName -eq "User Access Administrator" `
  -and $_.SignInName -eq "<username@example.com>" -and $_.Scope -eq "/"}
RoleAssignmentId   : /providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope              : /
DisplayName        : username
SignInName         : username@example.com
RoleDefinitionName : User Access Administrator
RoleDefinitionId   : 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
ObjectId           : 22222222-2222-2222-2222-222222222222
ObjectType         : User
CanDelegate        : False

Eliminación de privilegios de acceso elevados

Para quitarse a usted o a otro usuario la asignación del rol de administrador de accesos de usuario en el ámbito raíz (/), siga estos pasos.

  1. Inicie sesión como un usuario que puede quitar los privilegios de acceso elevado. Puede ser el mismo usuario que se usó para elevar los privilegios de acceso u otro administrador global con privilegios de acceso elevados en el ámbito raíz.

  2. Use el comando Remove-AzRoleAssignment para quitar la asignación del rol de administrador de accesos de usuario.

    Remove-AzRoleAssignment -SignInName <username@example.com> `
      -RoleDefinitionName "User Access Administrator" -Scope "/"
    

CLI de Azure

Elevar el acceso para un administrador global

Utilice los siguientes pasos básicos para elevar los privilegios de acceso de un administrador global mediante la CLI de Azure.

  1. Use el comando az rest para llamar al punto de conexión elevateAccess, que le concede el rol de administrador de accesos de usuario en el ámbito raíz (/).

    az rest --method post --url "/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
    
  2. Haga los cambios que tenga que hacer con privilegios de acceso elevados.

    Para obtener más información sobre la asignación de roles, consulte Asignaciones de roles de Azure mediante la CLI de Azure.

  3. Siga los pasos de una sección posterior para quitar el acceso con privilegios elevados.

Mostrar la asignación de roles en el ámbito raíz (/)

Para mostrar la asignación del rol de administrador de accesos de usuario para un usuario en el ámbito raíz (/), use el comando az role assignment list.

az role assignment list --role "User Access Administrator" --scope "/"
[
  {
    "canDelegate": null,
    "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
    "name": "11111111-1111-1111-1111-111111111111",
    "principalId": "22222222-2222-2222-2222-222222222222",
    "principalName": "username@example.com",
    "principalType": "User",
    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
    "roleDefinitionName": "User Access Administrator",
    "scope": "/",
    "type": "Microsoft.Authorization/roleAssignments"
  }
]

Eliminación de privilegios de acceso elevados

Para quitarse a usted o a otro usuario la asignación del rol de administrador de accesos de usuario en el ámbito raíz (/), siga estos pasos.

  1. Inicie sesión como un usuario que puede quitar los privilegios de acceso elevado. Puede ser el mismo usuario que se usó para elevar los privilegios de acceso u otro administrador global con privilegios de acceso elevados en el ámbito raíz.

  2. Use el comando az role assignment delete para quitar la asignación del rol de administrador de accesos de usuario.

    az role assignment delete --assignee username@example.com --role "User Access Administrator" --scope "/"
    

REST API

Requisitos previos

Debe usar las versiones siguientes:

  • 2015-07-01 o posterior para enumerar y quitar asignaciones de roles
  • 2016-07-01 o posterior para elevar el acceso
  • 2018-07-01-preview o posterior para enumerar las asignaciones de denegación

Para obtener más información, consulte Versiones de la API REST de RBAC de Azure.

Elevar el acceso para un administrador global

Utilice los siguientes pasos básicos para elevar los privilegios de acceso de un administrador global mediante la API de REST.

  1. Mediante REST, llame a elevateAccess. Entonces, se le concede el rol de administrador de accesos de usuario en el ámbito raíz (/).

    POST https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01
    
  2. Haga los cambios que tenga que hacer con privilegios de acceso elevados.

    Para obtener más información sobre la asignación de roles, consulte Asignaciones de roles de Azure mediante la API REST.

  3. Siga los pasos de una sección posterior para quitar el acceso con privilegios elevados.

Enumeración de las asignaciones de roles en el ámbito raíz (/)

Puede enumerar todas las asignaciones de roles para un usuario en el ámbito raíz (/).

  • Llame a Role Assignments - List For Scope donde {objectIdOfUser} es el id. de objeto del usuario cuyas asignaciones de roles quiere recuperar.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectIdOfUser}'
    

Enumeración de las asignaciones de denegación en el ámbito raíz (/)

Puede enumerar todas las asignaciones de denegación de un usuario en el ámbito raíz (/).

  • Llame a GET denyAssignments, donde {objectIdOfUser} es el id. de objeto del usuario cuyas asignaciones de denegación desea recuperar.

    GET https://management.azure.com/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter=gdprExportPrincipalId+eq+'{objectIdOfUser}'
    

Eliminación de privilegios de acceso elevados

Cuando llama a elevateAccess, se crea una asignación de roles para usted, por lo que, para revocar esos privilegios, debe quitarse la asignación de rol de administrador de accesos de usuario en el ámbito raíz (/).

  1. Llame a Role Definitions - Get, donde roleName es el administrador de accesos de usuario, para determinar el identificador del nombre del rol de administrador de accesos de usuario.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?api-version=2022-04-01&$filter=roleName+eq+'User Access Administrator'
    
    {
      "value": [
        {
          "properties": {
      "roleName": "User Access Administrator",
      "type": "BuiltInRole",
      "description": "Lets you manage user access to Azure resources.",
      "assignableScopes": [
        "/"
      ],
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Authorization/*",
            "Microsoft.Support/*"
          ],
          "notActions": []
        }
      ],
      "createdOn": "0001-01-01T08:00:00.0000000Z",
      "updatedOn": "2016-05-31T23:14:04.6964687Z",
      "createdBy": null,
      "updatedBy": null
          },
          "id": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
          "type": "Microsoft.Authorization/roleDefinitions",
          "name": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9"
        }
      ],
      "nextLink": null
    }
    

    Guarde el id. del parámetro name; en este caso: 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9.

  2. También tiene que mostrar la asignación de roles del administrador de directorios en el ámbito del directorio. Muestre todas las asignaciones en el ámbito del directorio para principalId del administrador de directorios que hizo la llamada de elevación de privilegios de acceso. Esto mostrará todas las asignaciones en el directorio para objectid.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectid}'
    

    Nota:

    Un administrador de directorios no debe tener muchas asignaciones; si la consulta anterior devuelve demasiadas asignaciones, puede consultar también todas las asignaciones en el nivel de ámbito de directorio y, después, filtrar los resultados: GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()

  3. Las llamadas anteriores devuelven una lista de asignaciones de roles. Busque la asignación de roles en la que el ámbito sea "/", roleDefinitionId termine con el id. del nombre de rol que se encuentra en el paso 1, y principalId coincida con el valor de ObjectId del administrador de directorios.

    Ejemplo de asignación de rol:

    {
      "value": [
        {
          "properties": {
            "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
            "principalId": "{objectID}",
            "scope": "/",
            "createdOn": "2016-08-17T19:21:16.3422480Z",
            "updatedOn": "2016-08-17T19:21:16.3422480Z",
            "createdBy": "22222222-2222-2222-2222-222222222222",
            "updatedBy": "22222222-2222-2222-2222-222222222222"
          },
          "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
          "type": "Microsoft.Authorization/roleAssignments",
          "name": "11111111-1111-1111-1111-111111111111"
        }
      ],
      "nextLink": null
    }
    

    Vuelva a guardar el Id. del parámetro name; en este caso, 11111111-1111-1111-1111-111111111111.

  4. Por último, utilice el id. de asignación de roles para quitar la asignación agregada por elevateAccess:

    DELETE https://management.azure.com/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111?api-version=2022-04-01
    

Visualización de las entradas del registro de acceso de privilegios elevados en los registros de actividad de directorio

Cuando se eleva el acceso, se agrega una entrada a los registros. Como Administración global en el identificador de Entra de Microsoft, es posible que quiera comprobar cuándo se ha elevado el acceso y quién lo hizo. Elevar las entradas del registro de acceso no aparecen en los registros de actividad estándar, sino que aparecen en los registros de actividad de directorio. En esta sección se describen distintas formas de ver las entradas del registro de acceso elevado.

Visualización de entradas de registro de acceso de privilegios elevados mediante Azure Portal

  1. Inicie sesión en Azure Portal como administrador global.

  2. Abra Supervisión>Registro de actividad.

  3. Cambie la lista Actividad por Actividad de directorio.

  4. Busque la siguiente operación, que significa la acción de elevación del acceso.

    Assigns the caller to User Access Administrator role

    Screenshot showing directory activity logs in Monitor.

Visualización de entradas de registro de acceso de elevación mediante la CLI de Azure

  1. Use el comando az login para iniciar sesión como administrador global.

  2. Use el comando az rest para realizar la siguiente llamada en la que tendrá que filtrar por una fecha, como se muestra con la marca de tiempo de ejemplo, y especificar el nombre de archivo donde quiere que se almacenen los registros.

    url llama a una API para recuperar los registros en Microsoft.Insights. La salida se guardará en el archivo.

    az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
    
  3. En el archivo de salida, busque elevateAccess.

    El registro será similar al siguiente, donde puede ver la marca de tiempo de cuándo se produjo la acción y quién lo llamó.

      "submissionTimestamp": "2021-08-27T15:42:00.1527942Z",
      "subscriptionId": "",
      "tenantId": "33333333-3333-3333-3333-333333333333"
    },
    {
      "authorization": {
        "action": "Microsoft.Authorization/elevateAccess/action",
        "scope": "/providers/Microsoft.Authorization"
      },
      "caller": "user@example.com",
      "category": {
        "localizedValue": "Administrative",
        "value": "Administrative"
      },
    

Delegar el acceso a un grupo para ver las entradas de registro de acceso elevados mediante la CLI de Azure

Si desea poder obtener periódicamente las entradas del registro de acceso elevado, puede delegar el acceso a un grupo y, a continuación, usar la CLI de Azure.

  1. Abra Grupos de identificadores de Entra de> Microsoft.

  2. Cree un grupo de seguridad y anote el identificador del objeto de grupo.

  3. Use el comando az login para iniciar sesión como administrador global.

  4. Use el comando az role assignment create para asignar el rol Lector al grupo, que solo puede leer los registros en el nivel de directorio que se encuentran en Microsoft/Insights.

    az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
    
  5. Agregue un usuario que lea los registros en el grupo creado anteriormente.

Un usuario del grupo ahora puede ejecutar periódicamente el comando az rest para ver los privilegios elevados de las entradas del registro de acceso.

az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt

Pasos siguientes