Gestión de roles y permisos de Azure AD con PowerShell

Administrar roles y permisos de Azure AD con PowerShell. ¿Necesitas ayuda para administrar y automatizar roles y permisos de Azure AD con Windows PowerShell? Este artículo explica los escenarios típicos para automatizar el Control de Acceso Basado en Roles (RBAC) de Azure usando PowerShell.

Para sentar las bases y prepararse para administrar roles y permisos de Azure, comenzamos con una visión general del control de acceso basado en roles (RBAC) de Azure. Después, explicamos los tres elementos de la asignación de roles.

También hay una sección que explica los requisitos previos para administrar roles y permisos de Azure AD con Windows PowerShell.

Las siguientes secciones están dedicadas a explicar los pasos para asignar roles de Azure AD usando PowerShell. 

Finalmente, explicamos cómo listar roles asignados a usuarios y grupos usando PowerShell.

¿Qué es el Control de Acceso Basado en Roles (RBAC) de Azure?El control de acceso basado en roles (RBAC) de Azure permite a los administradores tener un control detallado del acceso a recursos. En otras palabras, RBAC de Azure permite a los administradores controlar quién tiene acceso a los recursos.

El control de acceso basado en roles (RBAC) de Azure permite a los administradores realizar un control de acceso detallado a los recursos. En otras palabras, Azure RBAC permite a los administradores controlar quién tiene acceso a los recursos.

Además, RBAC controla el nivel de acceso a los recursos en Azure.

En el núcleo de RBAC se encuentran las asignaciones de roles. Azure tiene cientos de roles predefinidos con permisos predeterminados que se asignan a usuarios, grupos o principales de servicio.

La existencia de roles predefinidos con permisos predefinidos facilita las asignaciones de roles, ya que los administradores no tienen que otorgar permisos directamente a los objetos.

Sin embargo, hay casos en los que los roles predefinidos pueden no ser adecuados para las necesidades de una organización. En esta situación, se crean roles personalizados.

Este artículo cubre los pasos para asignar roles existentes y también crear y asignar roles personalizados de Azure AD.

Elementos de asignación de roles en Azure

Asignar roles implica 3 elementos: el principal de seguridad, la definición del rol y el alcance. El principal de seguridad es el objeto de Azure Active Directory al que se asigna el rol.

Por otro lado, la definición del rol es el rol de Azure AD predefinido o personalizado que se asigna, mientras que el alcance es el nivel al que se asigna el rol. Hay 4 alcances en los que se asignan roles en Azure.

Específicamente, los roles de Azure se asignan a un recurso, un grupo de recursos, una suscripción y un grupo de gestión. Para asignar un rol a un recurso, se necesita el ID de recurso.

Sin embargo, asignar un rol a un scope de grupo de recursos requiere el nombre del grupo de recursos. Al ejecutar el comando Get-AzResourceGroup se obtienen todos los grupos de recursos, incluidos sus nombres en la suscripción actual.

Si se asigna un rol en el scope de la suscripción, se necesita el ID de la suscripción. Para listar todas las suscripciones en el inquilino, se ejecuta el comando Get-AzSubscription.

Finalmente, los roles se asignan a un scope de grupo de gestión, que requiere el nombre del grupo de gestión. Para obtener el nombre de un grupo de gestión, se ejecuta el comando Get-AzManagementGroup.

Entender estos elementos es importante para gestionar los roles y permisos de Azure AD con PowerShell. En la parte restante del artículo, exploramos cómo el principal de seguridad, la definición de rol y el scope se utilizan para asignar y gestionar roles en Azure AD utilizando PowerShell.

Prerequisites for Managing Azure AD Roles and Permissions with PowerShell

Antes de que un administrador asigne roles, deben cumplir los siguientes requisitos:

  1. El usuario debe ser asignado con los permisos Microsoft.Authorization/roleAssignments/write. Los únicos roles con este permiso son Administrador de acceso de usuario, Propietario o Administrador global.
  2. En segundo lugar, necesitas acceso a Cloud Shell de Azure o a Azure PowerShell.
  3. La cuenta de usuario que ejecuta los comandos de PowerShell debe tener el permiso Directory.Read.All de Microsoft Graph.
  4. Finalmente, para realizar algunas de las tareas de este artículo, tu cuenta requiere una licencia mínima de Azure AD Premium P1 .

A medida que avanzamos en este artículo, explicamos los pasos para asignar estos permisos según sea necesario.

Pasos para asignar roles integrados de Azure AD mediante PowerShellSi haces clic en el enlace de la shell en la nube arriba e inicias sesión con tu cuenta de Azure, se mostrará una pantalla como la de la captura de pantalla a continuación. La ventaja de Azure Cloud Shell es que no requiere instalar ningún módulo de PowerShell en tu PC.

I’ll be running the PowerShell commands in this and subsequent sections from Azure Cloud Shell, a browser-based shell that allows running Azure CLI or PowerShell commands. However, I’ll be running the commands from my computer. 

Si haces clic en el enlace de la nube shell de arriba e inicias sesión con tu cuenta de Azure, se mostrará una pantalla como la que se muestra en la captura de pantalla a continuación. El beneficio de Azure Cloud Shell es que no requiere instalar módulos de PowerShell en tu PC.

Paso 1: Determinar el ID del objeto

Necesitas obtener el ID del objeto antes de asignar un rol a un recurso de Azure. Sigue estos pasos para determinar el ID del objeto para un usuario, grupo o suscripción.

1. Abre Azure Cloud Shell – shell.azure.com e inicia sesión con tu cuenta de Azure.

Si estás abriendo Azure Cloud Shell por primera vez, te pedirá que crees una cuenta de almacenamiento.

2. Ejecuta los comandos a continuación para obtener el ID del usuario o grupo al que necesitas asignar un rol. En el primer comando, estoy devolviendo el ID de un usuario que comienza con

$userid = (Get-AzADUser -UserPrincipalName AnthonyRa@corp.itechguides.com).id
$groupid = (Get-AzADGroup -DisplayName "Helpdesk Admins (AAD)").id

El primer comando guarda el ID del usuario en la variable de userid, mientras que el segundo guarda el ID del grupo en la variable de grouped. Antes de ejecutar los comandos, recuerda cambiar el UserPrincipalName y el DisplayName.

Paso 2: Obtener el Rol a Asignar

El siguiente paso para administrar los roles y permisos de Azure AD con PowerShell es determinar el rol a asignar. Comience por listar todos los roles disponibles en su inquilino de Azure AD utilizando el siguiente comando.

Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id

El comando muestra el Nombre y Id de todos los roles en el inquilino. Además, devuelve Verdadero o Falso en la columna IsCustom.

Para demostrar, quiero asignar el rol Administrador de seguridad al usuario y grupo que determiné en el Paso 1. Para mostrar el nombre del rol, redirijo la salida del comando Get-AzRoleDefinition a Where-Object como se muestra en este comando.

$roleassignmentname = (Get-AzRoleDefinition | where-object {$_.name -eq "Security Admin"}).Name

Paso 3: Identificar el Alcance de Asignación del Rol

El siguiente comando devuelve el ResourceID de una cuenta de almacenamiento (alcance del recurso) y lo guarda en la variable ResourceID.

Más tarde, asigno al usuario del paso 1 el rol de “Administrador de seguridad” en este recurso de cuenta de almacenamiento.

$scoperesourceID = (Get-AzResource | Where-object {$_.name -eq "veeambackup21"}).ResourceID

Paso 4: Asignar el Rol de Azure

Usando la información en los pasos 1 al 3, ejecuta el comando a continuación para asignar el rol al usuario. Antes de ejecutar el comando, el rol no está asignado a esta cuenta de almacenamiento, como se muestra en la captura de pantalla a continuación. 

El primer comando asigna el rol de “Administrador de seguridad” a un usuario guardado en la variable $userid. De manera similar, el segundo comando asigna el mismo rol a un grupo guardado en la variable $groupid. 

New-AzRoleAssignment -ObjectId $userid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID
New-AzRoleAssignment -ObjectId $groupid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID

Después de ejecutar los comandos anteriores, al actualizar las cuentas de almacenamiento se muestra el rol de Administrador de seguridad, y el usuario y grupo asignados al rol. 

Mostrar asignación de roles de Azure AD usando PowerShell

Anteriormente, asigné el rol de “Administrador de seguridad” a un usuario con UPN, [email protected]. Si recuerdas, el userId del usuario se guardó en la variable $userid. 

De manera similar, el ID de ámbito de la cuenta de almacenamiento se guardó en la variable $scoperesourceID. Para mostrar la asignación de roles para el usuario, ejecuto el comando a continuación. 

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $userid

El comando muestra los detalles de la asignación de roles, incluyendo el Nombre de asignación de roles y el ámbito. 

Para mostrar la misma información para el grupo, ejecutas este comando.

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $groupid

La administración de roles y permisos de Azure AD con PowerShell Conclusion

Administrar roles de Azure requiere conocimiento del modelo de control de acceso basado en roles. Además, comprender los elementos de asignación de roles de Azure, como el principal de seguridad, la definición de roles y el ámbito, es esencial para administrar las asignaciones de roles de manera efectiva con PowerShell.

No solo eso, sino que una cuenta que asigna roles debe cumplir algunos requisitos previos, como configurar PowerShell con los módulos requeridos y garantizar los privilegios administrativos adecuados.

La guía paso a paso proporcionada en este artículo ofrece una hoja de ruta clara a seguir al asignar roles integrados de Azure AD utilizando PowerShell. Desde determinar el ID de objeto hasta identificar el ámbito para la asignación de roles, cada etapa se describe meticulosamente, facilitando un proceso de asignación de roles fluido y controlado.

Source:
https://infrasos.com/managing-azure-ad-roles-and-permissions-with-powershell/