RBAC (Role Based Access Control) en EAP 6.2 – Parte I

Nueva entrada. Últimamente me he visto “forzado” a actualizar esto más a menudo, espero que no sea algo puntual sino que se convierta en hábito 😉

 

Bueno, esta entrada tratará de como configurar la seguridad en la Consola de Administración Web y la Consola de Administración CLI para restringir el acceso a los distintos componentes dependiendo del rol que el usuario tenga aplicado. Todo ello lo haremos gracias a RBAC que, según la guía de seguridad, tiene la siguiente definición:

Es un mecanismo para especificar un conjunto de permisos a los usuarios de gestión. Permite que varios usuarios compartan la responsabilidad de la gestión de JBoss EAP 6.2 sin dar a cada uno de ellos un acceso sin restricciones. Al proporcionar “separación de funciones” para los usuarios de gestión, JBoss EAP 6.2 hace que sea fácil para una organización distribuir la responsabilidad entre las personas o grupos sin otorgar privilegios innecesarios. Esto asegura la máxima seguridad posible de sus servidores y datos, al mismo tiempo que proporciona flexibilidad para la configuración, implementación y administración.

Para ello RBAC nos ofrece 7 perfiles (roles), que delimitarán qué funciones puede realizar un usuario:

  • Monitor: Los usuarios con este perfil tienen los privilegios más bajos y sólo pueden leer la configuración actual y el estado del servidor. Esta función está destinada a usuarios que necesitan hacer un seguimiento e informar sobre el rendimiento del servidor. El perfil monitor no pueden modificar la configuración del servidor ni pueden acceder a los datos o las operaciones sensibles.
  • Operator: Amplía el rol de monitor añadiendo la capacidad de modificar el estado de ejecución del servidor. Esto significa que los operadores pueden arrancar y parar el servidor, así como pausar y reanudar los destinations JMS. El perfil operator es ideal para los usuarios que son responsables de los hosts físicos o virtuales del servidor de aplicaciones para que puedan asegurarse de que los servidores pueden apagarse y reiniciarse cuando sea necesario. Este perfil  no puede modificar la configuración del servidor ni acceder a los datos o las operaciones sensibles.
  • Maintainer: El perfil maintainer tiene acceso para ver y modificar el estado en tiempo de ejecución y todas las configuraciones, a excepción de datos y operaciones sensibles. El rol maintainer es el de uso general que no tiene acceso a los datos y funcionamiento sensibles. Permite a los usuarios tener acceso casi total para administrar el servidor sin que los usuarios tengan acceso a las contraseñas y otra información sensible. Maintainer  no puede acceder a los datos o las operaciones sensibles.
  • Deployer: Tiene los mismos permisos que monitor, pero se puede modificar la configuración y el estado de las implementaciones y cualquier otro tipo de recurso habilitado como un recurso de aplicación.
  • Auditor: El rol auditor tiene todos los mismos permisos  que monitor y también puede ver, pero no modificar, los datos sensibles, y tiene pleno acceso al sistema de registro de auditoría. Este perfil es el único que, no siendo superuser, puede acceder al sistema de registro de auditoría. Los auditores no pueden modificar los datos o recursos sensibles, sólo se permite el acceso de lectura.
  • Administrator: Este perfile tiene acceso sin restricciones a todos los recursos y las operaciones en el servidor, excepto el sistema de registro de auditoría. Es el único rol (excepto superuser) que tiene acceso a los datos y las operaciones sensibles. Este perfil también puede configurar el sistema de control de acceso. Sólo es necesario cuando necesitamos modificar datos sensibles o la configuración de usuarios y roles. El rol administrator no puede acceder al sistema de registro de auditoría y no puede cambiarse a sí mismos a la función auditor o superuser.
  • Superuser: El rol superuser no tiene restricciones y tiene un acceso completo a todos los recursos y las operaciones del servidor, incluyendo el sistema de registro de auditoría. Esta función es equivalente a los usuarios administradores de versiones anteriores de JBoss EAP 6 (6.0 y 6.1). Si RBAC está desactivado, todos los usuarios tienen permisos de gestión equivalente al rol de superuser.

 

La siguiente matriz muestra los diferentes roles junto con los recursos a los que tienen acceso:

Matriz de permisos de los roles RBAC

Matriz de permisos de los roles RBAC

La Consola de Administración Web nos proporciona las herramientas más sencillas para configurar RBAC, pero hasta el momento RBAC está desactivado y sólo se puede activar desde la Consola de Administración CLI. Para ello realizaremos lo siguiente en la consola CLI:

[standalone@localhost:9999 /] /core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}
[standalone@localhost:9999 /] /:reload
{
"outcome" => "success",
"result" => undefined
}

Hay que tener en cuenta que al tener RBAC habilitado pero no haber añadido ningún rol a nuestro usuario, no podremos acceder a la Consola de Administración Web. Sí, se podría haber hecho antes, pero ¿perdernos la gracia de ver cómo lo gestionamos en el CLI?

A la hora de configurar mediante el CLI, debemos tener en cuenta la siguiente instrucción:

/core-service=management/access=authorization/role-mapping=ROLENAME/include=ALIAS:add(name=USERNAME, type=USER)

Donde ROLENAME será el rol asignado al usuario, USERNAME el nombre del usuario y ALIAS será un nombre único con el que referenciamos esta asignación por lo que Red Hat aconseja que sea: user-NAME.

Veamos el siguiente ejemplo donde configuro al usuario admin con el rol superuser:

[standalone@localhost:9999 /] /core-service=management/access=authorization/role-mapping=SuperUser/include=user-admin:add(name=admin,type=USER)
{"outcome" => "success"}

Ahora ya sólo queda acceder a la consola Web y configurar los usuarios que queramos, añadiendo los roles correspondientes y configurando los grupos de usuarios, pero eso será en la siguiente entrega.

One thought on “RBAC (Role Based Access Control) en EAP 6.2 – Parte I

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *