Gestión de Roles y Permisos en Google Cloud Functions

Clase 5 de 19Curso de Google Serverless

Resumen

¿Qué es IAM en Google Cloud?

Google Cloud proporciona un robusto sistema de gestión de identidades y accesos conocido como IAM (Identity and Access Management). Este sistema es crucial para controlar quién puede hacer qué dentro de la plataforma de Google Cloud. IAM permite definir roles que especifican el conjunto de permisos que las entidades -ya sean usuarios, grupos o servicios- pueden tener. Existen tres tipos principales de roles en Google Cloud:

  • Roles primitivos: Incluyen roles como propietario, editor y visor del proyecto. Sin embargo, estos son bastante generales y pueden dar más permisos de los necesarios, lo que presentaba problemas con la seguridad y la eficiencia.

  • Roles predefinidos: Ofrecen permisos más específicos y detallados para cada recurso o servicio dentro de Google Cloud, permitiendo ejecutar tareas particulares como activar o parar máquinas virtuales, invocar funciones, o trabajar con Google Kubernetes Engine.

  • Roles personalizados: Permiten una configuración precisa de permisos según las necesidades específicas del equipo o proyecto, combinando distintos permisos y asignándolos de acuerdo con las responsabilidades.

¿Cómo funcionan las cuentas de servicio?

Las cuentas de servicio son una parte esencial de la gestión de permisos en Google Cloud. Estas cuentas no están vinculadas a personas, aunque tienen una estructura similar a un correo electrónico. Las cuentas de servicio tienen asignados roles y se utilizan principalmente para:

  • Autenticarse y autorizar la ejecución de tareas específicas en Google Cloud.
  • Comunicarse entre servicios dentro o fuera de la nube de Google.

Dependiendo de los roles asignados a una cuenta de servicio, ésta puede tener más o menos permisos para realizar acciones, como acceder a APIs específicas o manipular recursos dentro de Google Cloud.

Creación de una cuenta de servicio

Para crear y configurar una cuenta de servicio, debes:

  1. Navegar a la sección IAM en Google Cloud Console.
  2. Seleccionar "Service Accounts" y crear una nueva cuenta.
  3. Asignarle un nombre y definir roles que limitarán sus capacidades.
  4. Guardar y finalizar la creación.

¿Cómo influyen las cuentas de servicio en las Google Cloud Functions?

Las Google Cloud Functions dependen del IAM y de las cuentas de servicio para ejecutarse con permisos apropiados. Al cambiar la cuenta de servicio asociada a una función, se puede modificar su comportamiento. Por ejemplo, si una función que aplica filtros a imágenes no tiene permisos suficientes a través de la cuenta de servicio asignada, no podrá cumplir su tarea.

Cambios y pruebas

Al realizar cambios en las cuentas de servicio para las funciones:

  • Cambia la cuenta de servicio en la configuración de la función a través de la consola.
  • Después de reasignar los roles, despliega la función nuevamente para aplicar los cambios.

Probar la función después de estos cambios es crucial para verificar que la función se ejecuta como se espera.

Recomendaciones para el uso eficiente de IAM y funciones

  • Siempre asigna el mínimo conjunto de permisos necesarios para cumplir una tarea.
  • Revisa y ajusta los roles de las cuentas de servicio regularmente para prevenir fugas de seguridad.
  • Aprovecha los roles predefinidos para tareas específicas y crea roles personalizados cuando sea necesario para casos especiales.

Mantiénete al día con las buenas prácticas en gestión de permisos y sigue explorando las capacidades de IAM para mejorar la seguridad y eficiencia de tus proyectos en Google Cloud.