Además de las acciones administrativas, como crear, actualizar y borrar servicios, los desarrolladores quieren probar los servicios de forma privada antes de publicarlos. Esta opción es para los servicios de Cloud Run, no los trabajos de Cloud Run.
Antes de comenzar
Asegúrate de otorgar permisos para acceder a los servicios a los que te autenticas. Debes otorgar la función de invocador de Cloud Run al desarrollador o al grupo de desarrolladores:
IU de Console
Ve a la consola de Google Cloud:
Selecciona el servicio, pero no hagas clic en él.
Haz clic en la pestaña Permisos en el panel lateral derecho. (Es posible que primero debas hacer clic en Mostrar panel de información en la esquina superior derecha).
Haz clic en Agregar permisos de cuenta principal.
En el campo Miembros nuevos, ingresa el correo electrónico de la cuenta de desarrollador.
Selecciona la función de
Cloud Run Invoker
en el menú desplegable Seleccionar una función.Haz clic en Guardar.
gcloud
Usa el comando gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
En el ejemplo anterior, se ilustra lo siguiente:
- SERVICE es el nombre del servicio.
- USER es el valor
user
ogroup
, según si autorizas a un solo desarrollador o a un grupo. EMAIL es la cuenta de correo electrónico.
Por ejemplo:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Prueba tu servicio privado
Puedes usar el proxy de Cloud Run o curl
para probar tu servicio privado.
Usa el proxy de Cloud Run en Google Cloud CLI
La forma más fácil de probar los servicios privados es usar el proxy de Cloud Run en Google Cloud CLI.
De esta forma, se envía mediante proxy el servicio privado a http://localhost:8080
(o al puerto especificado con --port
) y se proporciona el token de la cuenta activa o cualquier otro token que especifiques.
Esto te permite usar un navegador web o una herramienta como curl
.
Esta es la forma recomendada de probar de manera privada un sitio web o una API en el navegador.
Puedes exponer un servicio de forma local mediante un proxy usando la siguiente línea de comandos en un entorno de Linux, macOS, WSL (recomendado) o cygwin:
gcloud run services proxy SERVICE --project PROJECT-ID
Utilizar curl
Como alternativa, puedes probar servicios privados sin el proxy mediante una herramienta como curl
y pasando un token de autenticación en el encabezado Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Para que el comando curl
funcione, debes pasar un token de ID válido
para un usuario con el permiso run.routes.invoke
, como el
administrador de Cloud Run o el invocador de Cloud Run. Consulta las funciones de IAM de Cloud Run para ver la lista completa de las funciones y los permisos asociados con estas.
Para obtener un token de ID válido para la identidad que accedió a la gcloud CLI, usa el comando gcloud auth print-identity-token
. Puedes usar tokens creados por la gcloud CLI para invocar solicitudes HTTP en cualquier proyecto, siempre que tu cuenta tenga el permiso run.routes.invoke
en el servicio.
Para fines de desarrollo, usa tokens de ID generados por la gcloud CLI. Sin embargo, ten en cuenta que estos tokens no tienen una reclamación de público, lo que los hace susceptibles a los ataques de repetición. En entornos de producción, usa tokens de ID emitidos para una cuenta de servicio con el público adecuado especificado. Este enfoque mejora la seguridad gracias a la restricción del uso del token solo al servicio previsto. Para cuentas que no sean de Google, usa la federación de Workforce Identity para invocar tu servicio de Cloud Run, de modo que no tengas que descargar una clave de cuenta de servicio.
Te recomendamos asignar el conjunto mínimo de permisos necesarios para desarrollar y usar tus servicios. Asegúrate de que las políticas de IAM en tus servicios estén limitadas a la cantidad mínima de usuarios y cuentas de servicio.