Autentica desarrolladores

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

  1. Ve a la consola de Google Cloud:

    Ir a la consola de Google Cloud

  2. Selecciona el servicio, pero no hagas clic en él.

  3. 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).

  4. Haz clic en Agregar permisos de cuenta principal.

  5. En el campo Miembros nuevos, ingresa el correo electrónico de la cuenta de desarrollador.

  6. Selecciona la función de Cloud Run Invoker en el menú desplegable Seleccionar una función.

  7. 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 o group, 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.