Roles Personalizados (Custom Roles) con Python | Curso Google Cloud Associate Cloud Engineer

Creación de Roles Personalizados (Custom Roles) en GCP con Python

Autor: Eduardo Martínez Agrelo

En el ejercicio anterior vimos cómo usar los roles que Google nos ofrece "de fábrica" (Predefinidos). Cubren el 90% de los casos de uso. Pero, ¿qué ocurre en ese 10% restante donde necesitamos una precisión quirúrgica? En el examen Associate Cloud Engineer, a menudo te enfrentarás a escenarios de auditoría o cumplimiento normativo donde los roles estándar son demasiado permisivos. Aquí es donde entran los Roles Personalizados.

El Problema: Roles Demasiado Amplios

Imagina este escenario de examen: Tienes un equipo de operaciones junior que necesita reiniciar máquinas virtuales que se han bloqueado. Si les das el rol Compute Instance Admin, podrán reiniciar las máquinas, sí, pero también podrán borrarlas, cambiar sus discos o modificar la red. Eso es un riesgo de seguridad inaceptable.

No existe un rol predefinido de Google que sea "Solo Reiniciar VMs". Aquí es donde debemos construir el nuestro.

Roles Personalizados: Anatomía de un Permiso

Un Rol en GCP no es más que una colección de Permisos. Los permisos tienen una estructura atómica muy clara:

servicio.recurso.verbo

Por ejemplo:

  • compute.instances.start: Permite encender una VM.
  • compute.instances.stop: Permite apagar una VM.
  • compute.instances.delete: Permite eliminar una VM (¡Peligroso!).

Un Rol Personalizado nos permite seleccionar, como en un buffet, únicamente los permisos start y stop, ignorando el delete. Esto lleva el Principio de Menor Privilegio a su máxima expresión.

Automatización con Python: google-cloud-iam

Aunque se pueden crear desde la consola, la gestión de roles complejos (que pueden tener docenas de permisos) se vuelve inmanejable manualmente. En este ejercicio, utilizamos Python y la librería oficial de Google para definir el rol como código.

Ventajas de usar código para definir roles:

  • Control de Versiones: Puedes guardar la definición de tu rol en Git. Si alguien modifica el rol por error, tienes un historial.
  • Replicabilidad: Puedes aplicar el mismo rol exacto en múltiples proyectos u organizaciones en segundos.
  • Auditoría: Es fácil revisar qué permisos exactos tiene el rol leyendo el script.

La Trampa del Examen: Mantenimiento

Una nota importante para la certificación: Los Roles Personalizados no se actualizan solos.

Si Google lanza una nueva funcionalidad para Compute Engine (ej. una nueva forma de hibernar máquinas) y crea un permiso nuevo, los Roles Predefinidos se actualizarán automáticamente para incluirlo. Tu Rol Personalizado, sin embargo, no lo tendrá hasta que tú edites el código y lo añadas manualmente. El examen suele preguntar sobre este "coste de mantenimiento".

Conclusión: Precisión Quirúrgica

Al finalizar este ejercicio, habrás creado el rol VM Starter Stopper usando Python. Has aprendido a diseccionar los permisos de GCP y a empaquetarlos en un rol a medida que cumple con requisitos de seguridad estrictos, una habilidad esencial para arquitecturas empresariales seguras.

Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!