Bienvenido a un nuevo artículo en el que vamos a ver como gestionar los permisos de usuarios y grupos en Openstack.

Si no es tu primer contacto con Openstack, seguramente ya sabrás que el componente que gestiona todos los servicios de Identidad en Openstack se llama Keystone.

Este componente además de gestionar los permisos de usuarios y grupos en Openstack, se comunica con el resto de módulos para decirles que puede y que no puede hacer un usuario.

Como siempre, he preparado un video en el que te explico todo esto de manera visual por si prefieres ver antes que leer. (También tienes lista la 2ª parte del video para gestionar los permisos en Openstack a través del CLI)

 

Cómo funcionan los permisos de Usuarios y grupos en Openstack: Keystone

Vamos a ver el siguiente diagrama para que entiendas como se gestionan estos permisos

permisos de usuarios en openstack

En la parte más baja del escalón tenemos a los Usuarios y los Grupos.

Los usuarios y los Grupos en Openstack son únicos dentro de cada dominio. Es decir que no pueden existir usuarios con el mismo nombre dentro del Dominio, pero si fuera.

Los usuarios pueden asociarse en grupos o no.

Cuando se crean estos usuarios o grupos lo único que hay que indicar como obligatorio es el dominio, aunque si no lo introduces Openstack lo asocia directamente al dominio «default».

Pasa lo mismo con los Proyectos. Siempre pertenecen a un dominio, y si no lo especifícias a la hora de crearlo, se crean en el dominio «default».

Para poder asociar un usuario o un grupo a un proyecto, es necesario asignarles un rol.

Es decir que si quieres que el usuario «Pepe» pueda acceder al proyecto «Games» necesitas decirle que rol tendrá en ese proyecto.

Esto es así porque el usuario «Pepe» puede tener un rol para el proyecto «Games» pero además puede formar parte del proyecto «Administración» con otro rol distinto.

Roles por defecto en Openstack

Estos son los roles que un usuario o grupo puede tener por defecto en Openstack

roles por defecto en openstack

ResellerAdmin, OperatorSwift, admin, _member_.

En algunas instalaciones ademas de «_member_» hay otro rol que se llama «member».

Así que tal y como hemos dicho, para poder hacer que «Pepe» pertenezca al proyecto «Games» tenemos que indicarle a Openstack que rol de estos 4 queremos darle, o también podemos crear un nuevo rol y asignarle permisos específicos.

Cuando un usuario forma parte de un grupo, absorve los roles que tenga este grupo dentro de este proyecto y son siempre sumativos.

Es decir que si «Pepe» es «admin» en el proyecto «Games» pero además «Pepe» pertenece al grupo «Operadores», que a su vez tiene el rol creado «operator» en el proyecto «Games»; «Pepe es «operator» y «admin» en el proyecto «Games».

Puede parecer un poco lioso al leerlo, pero es mucho más sencillo si se ve de manera visual, así que vamos a ver como se gestiona todo esto desde el Dashboard Horizon de Openstack.

 

Gestionar los permisos de usuarios y grupos en Openstack a través de Horizon Dashboard

 

Te recomiendo que eches un ojo al video a partir del minuto 3:45 porque en movimiento es mucho más sencillo, pero si no te apetece ver el video no hay problema, te lo enseño con pantallazos.

 

Si accedemos a un proyecto con un usuario el cual tiene rol admin dentro de ese proyecto, tendremos una visión similar a esta.

gestionar permisos de usuarios y grupos en openstackEn el panel izquierdo podemos ver que el usuario tiene desplegadas una Pestaña de Administrador y dentro de la Pestaña Identity, tiene Proyectos, Usuarios, Grupos y Roles.

Como habrás adivinado esta Pestaña Identity no es otra cosa que Keystone.

En la parte de la izquierda un poco más arriba vemos a la derecha del logo de Openstack, el proyecto que tenemos seleccionado en ese momento.

En la parte de la derecha vemos el usuario, que en este caso es admin (no confundir con el rol).

Este usuario admin suele venir por defecto en las instalaciones de Openstack Packstack, por eso lo he dejado, aunque pueda suponer algo de lío entre el rol y el usuario.

Este usuario «admin», tiene el rol «admin» en el proyecto «Por_defecto», sin embargo, también forma parte del Proyecto «Produccion» con el rol «_member_».

Mira lo que pasa si cambiamos la vista al proyecto «Produccion»

gestionar permisos de usuarios y grupos en openstackComo este usuario no es admin en este Proyecto, desaparece la pestaña Administrador y además nos quedamos sin poder gestionar los usuarios y grupos.

Volvemos a nuestro proyecto «Por_defecto» y vamos a ver que podemos hacer con él.

Nos vamos a la parte de la derecha y desplegamos el panel y pinchamos en editar proyecto (o administrar miembros).

gestionar permisos de usuarios y grupos en openstack3

Se nos desplegará una pestaña donde podremos elegir en la parte de la izquierda, todos los miembros disponibles en el dominio.

En la parte derecha veremos a los miembros del proyecto y además podemos ver que rol tienen dentro de ese proyecto y asignarles otro.

Como ves el usuario «admin» tiene el rol «admin» y el usuario «Prueba» tiene el rol «_member_».

Pero recuerda, este rol es solo en el Proyecto «Por_defecto». En otro proyecto estos usuarios pueden tener otro rol distinto, el mismo o ninguno.

Esto funciona exactamente igual para los grupos

gestionar permisos de usuarios y grupos en openstack5Si quieres añadir un grupo al proyecto y darle un rol, solo tienes que darle al más a la izquierda y una vez que se añada elegir el rol correspondiente.

También tienes una ventana con información del proyecto donde puedes ver el dominio (pero no cambiarlo) y las cuotas asignadas a ese proyecto.

gestionar permisos de usuarios y grupos en openstack6gestionar permisos de usuarios y grupos en openstack6

Crear un usuario y asignarle un rol en el proyecto

 

Por último vamos a ver como podemos crear un usuario dentro del proyecto.

En la pestaña de la izquierda seleccionamos «Usuarios» y en la parte derecha seleccionamos «Crear Usuario» y se nos desplegará una ventana como esta.

Rellenamos todos los datos prestando especial atención a la última parte donde debemos elegir el proyecto y el rol en ese proyecto.

gestionar permisos de usuarios y grupos en openstack9

 

Una vez creado también podemos ir a un proyecto específico y darle otro rol si así lo deseamos.

 

Crear un grupo y asignarle un rol en un proyecto

 

En el caso de los grupos cambia un poco aunque la idea es la misma.

Nos vamos a la pestaña grupo y le damos a crear Grupo, con la diferencia de que aquí no lo asignaremos a un proyecto directamente con su rol correspondiente.

gestionar permisos de usuarios y grupos en openstack10Para añadir un usuario al grupo nos vamos a grupos, pinchamos en el grupo correspondiente y después en añadir usuarios.

Por último nos vamos a la ventana de Proyectos y vamos a asignar el rol que ese grupo va a tener en el proyecto.

Desplegamos la pestaña de la derecha y le damos a editar proyecto para que se despliegue la pestaña o simplemente en administrar miembros y añadimos el grupo y el rol.

Y voilá, ya tenemos nuestro usuario y nuestro grupo añadido al proyecto.

Recuerda que los roles del usuario y del grupo son acumulativos.

 

Gestionar permisos de usuarios y grupos en Openstack a través de CLI

Ahora te voy a enseñar como gestionar los permisos de usuarios y grupos a través del cliente Unificado de Openstack.

He decidido dejar esta parte en video ya que considero que se ve mucho más claro.

Si prefieres que te redacte el artículo con los comandos por favor sólo tienes que decírmelo en los comentarios y te lo hago encantando.

Gestionar Roles específicos en Openstack

Para esta parte más avanzada he decidido crear un artículo y un video específico.

Te dejo el link para que visites el artículo sobre roles en Openstack.

Recuerda que si quieres aprender más sobre Openstack, puedes apuntarte a nuestro Curso Oficial Openstack desde Cero.

Compartir
CEO y fundador de Virtualiza Desde Zero. Soy Formador y Consultor Especialista en Virtualización y Cloud Computing. Profesor Oficial de Microsoft (MCT) y VMware It Academy. Entre mis certificaciones y premios cuento con el vExpert2017-2022, VCP-DCV 2022 desde la 5, Azure Solutions Architect Expert y Certified Openstack Administrator entre muchas otras. A mis espaldas, más de 12 años de experiencia en el mundo de la virtualización y el Cloud. Los perros, la montaña y el SEO, son mis otras pasiones.