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)
Contenido del artículo
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
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
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.
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»
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).
Se nos desplegará una pestaña donde podremos elegir en la parte de la izquierda, todos los miembros disponibles en el dominio.
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
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.
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.
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.
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.