Problemas con permisos de autenticación en Cloud Functions
Problemas o Consultas Comunes
- La Service Account correspondiente al PubSub falla al intentar invocar la Cloud Function.
- Error de permisos al ejecutar Cloud Functions desde PubSub.
- ¿Cómo otorgar permisos de "run invoker" a una Service Account?
Solución
Este problema ocurre cuando la Service Account no tiene los permisos necesarios para invocar la Cloud Function:
Diagnóstico del problema:
-
Verificar la Service Account:
- Confirma qué SA está intentando invocar la CF
- Revisa los logs de error para identificar la SA específica
- Verifica que la SA esté correctamente configurada en PubSub
-
Revisar permisos actuales:
- Lista los permisos actuales de la SA
- Verifica permisos en la Cloud Function
- Confirma configuración de IAM
Solución paso a paso:
-
Otorgar permiso "run invoker":
gcloud functions add-iam-policy-binding FUNCTION_NAME \--member="serviceAccount:SA_EMAIL" \--role="roles/cloudfunctions.invoker" -
Para Cloud Run (si aplica):
gcloud run services add-iam-policy-binding SERVICE_NAME \--member="serviceAccount:SA_EMAIL" \--role="roles/run.invoker" -
Verificar configuración de PubSub:
- Confirma que la suscripción use la SA correcta
- Verifica que el endpoint esté correctamente configurado
- Asegúrate de que la SA tenga permisos en el topic
-
Validar la solución:
- Ejecuta una prueba de invocación
- Revisa los logs para confirmar que no hay errores
- Monitorea el funcionamiento por un período
Equipo responsable: ANDES Resources Ticket de referencia: ANDES-496