Control de Autenticación y Autorización en Google Cloud Run

Clase 36 de 42Curso de Google Cloud Platform para E-commerce

Resumen

¿Cómo proteger servicios en Google Cloud Run?

Implementar mecanismos de autenticación y autorización en tus servicios es crucial para garantizar el acceso seguro y eficiente. Al utilizar Google Cloud Run, puedes aprovechar herramientas como IAM y API Gateway para controlar quién puede invocar tus servicios y cómo hacerlo.

¿Cómo configurar Google Cloud Run para requerir autenticación?

Para asegurarte de que solo usuarios con credenciales válidas puedan acceder a tus servicios en Google Cloud Run, puedes seguir estos pasos:

  1. Despliegue con control de acceso: Al desplegar un servicio, utiliza la bandera --no-allow-unauthenticated con el Google Cloud SDK. Esto restringirá el acceso a usuarios autenticados.

    gcloud run deploy --image gcr.io/PROJECT-ID/IMAGE --platform managed --no-allow-unauthenticated
    
  2. Asignar permisos de invocación: Genera una cuenta (o utiliza una existente) y asigna el rol de invocador a quienes puedan ejecutar el servicio.

  3. Ejecutar el servicio: Utiliza herramientas de línea de comandos como curl para invocar el servicio pasando un token de autenticación en la cabecera de la solicitud.

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
      https://SERVICE-URL
    

¿Cómo se utilizan las API Keys y API Gateway?

Google API Gateway ofrece más opciones de seguridad y administración al crear una capa adicional para tu servicio. Esta herramienta es ideal para exponerse como una API que necesite autenticación mediante API Keys y seguir estos pasos:

  1. Configura la especificación OpenAPI: Define una swagger.json o archivo .yml que describa la API, donde especifiques URL, rutas, y métodos.

  2. Implementa el Gateway: Desde la consola de Google Cloud Platform, crea una API desde el API Gateway usando el .yml configurado.

  3. Crea y restringe una API Key: Accede a "APIs y servicios" y en "Credenciales" crea una nueva API Key, asegurándote de restringirla para que solo funcione con la API creada.

  4. Ejemplo de uso con API Key: Al hacer solicitudes, usa la clave como parámetro key en la URL para autentificación:

    curl "https://API-GATEWAY-URL/PATH?key=YOUR-API-KEY"
    

¿Qué otras opciones de control de acceso existen en Google Cloud?

Más allá de la autenticación básica y las API Keys, las herramientas de Google Cloud ofrecen múltiples configuraciones avanzadas:

  • Restricciones basadas en IP: Puedes limitar el acceso a tu API para que se acepte únicamente desde IPs específicas.
  • Integración con aplicaciones móviles: Restricciones de llamada pueden configurarse para aplicaciones iOS y Android.
  • Monitoreo de latencia y solicitudes: API Gateway permite medir la latencia y el número de solicitudes, proporcionando insights para optimizar el rendimiento.

Estas prácticas no solo mejoran la seguridad de tus servicios, sino que también te permiten establecer un control más granular sobre el acceso y uso de tus recursos en la nube. Implementar correctamente estos sistemas es fundamental para minimizar riesgos y proteger datos sensibles. ¡Continúa explorando y aprendiendo, las posibilidades son infinitas!