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 Azure Active Directory (Azure AD), 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 acceso a otro usuario o usted mismo a una suscripción o grupo de administració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?

Azure AD y los recursos de Azure están protegidos de forma independiente entre sí. Es decir, las asignaciones de roles de Azure AD no otorgan acceso a recursos de Azure, y las asignaciones de roles de Azure no conceden acceso a Azure AD. Sin embargo, si es administrador global de Azure AD, puede asignarse a sí mismo los privilegios de acceso para todas las suscripciones a Azure y los grupos de administración de su 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.

Elevación de los privilegios de acceso

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 el Azure Portal o en el Centro de administración de Azure Active Directory como administrador global.

    Si usa Azure AD Privileged Identity Management, active la asignación de roles de administrador global.

  2. Abra Azure Active Directory.

  3. En Administrar, seleccione Propiedades.

    Seleccionar propiedades para las propiedades de Azure Active Directory: captura de pantalla

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

    Captura de pantalla de administración de acceso a recursos de Azure

    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 de Azure y los grupos de administración asociados a este directorio de Azure AD. Este botón de alternancia solo está disponible para los usuarios que tienen asignado el rol de administrador global de Azure AD.

    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 de Azure y los grupos de administración asociados a este directorio de Azure AD. 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).

    Asignaciones de roles de la suscripción con el ámbito raíz: captura de pantalla

  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 Azure Active Directory y, luego, 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.

    Quitar las asignaciones de roles en el ámbito raíz

  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 "/"
    

Azure CLI

Elevación de los privilegios de acceso de 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 "/"
    

API DE REST

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.

Elevación de los privilegios de acceso de 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 los registros de elevación del acceso

Cuando se eleva el acceso, se agrega una entrada a los registros. Como administrador global de Azure AD, es posible que quiera comprobar cuándo se ha elevado el acceso y quién lo ha hecho. Las entradas de registro de elevación del acceso no aparecen en los registros de actividad estándar, sino que lo hacen en los registros de actividad de directorio. En esta sección se describen distintas formas de ver los registros de elevación del acceso.

Visualización de los registros de elevación del acceso mediante Azure Portal

  1. Para elevar el acceso, siga los pasos descritos anteriormente en este artículo.

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

  3. Abra Supervisión>Registro de actividad.

  4. Cambie la lista Actividad por Actividad de directorio.

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

    Assigns the caller to User Access Administrator role

    Captura de pantalla que muestra los registros de actividad de directorio en Supervisión.

  6. Para quitar la elevación del acceso, siga los pasos descritos anteriormente en este artículo.

Visualización de los registros de elevación del acceso mediante la CLI de Azure

  1. Para elevar el acceso, siga los pasos descritos anteriormente en este artículo.

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

  3. 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
    
  4. 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"
      },
    
  5. Para quitar la elevación del acceso, siga los pasos descritos anteriormente en este artículo.

Delegue el acceso a un grupo para ver los registros de elevación del acceso mediante la CLI de Azure

Si quiere obtener periódicamente los registros de elevación del acceso, puede delegar el acceso a un grupo y, luego, usar la CLI de Azure.

  1. Abra Azure Active Directory>Grupos.

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

  3. Para elevar el acceso, siga los pasos descritos anteriormente en este artículo.

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

  5. 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"
    
  6. Agregue un usuario que lea los registros en el grupo creado anteriormente.

  7. Para quitar la elevación del acceso, siga los pasos descritos anteriormente en este artículo.

Un usuario del grupo ahora puede ejecutar periódicamente el comando az rest para ver los registros de elevación del 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