Además de las acciones administrativas, como crear, actualizar y eliminar servicios, los desarrolladores suelen querer probar los servicios de forma privada antes de lanzarlos. Esta opción es para servicios de Cloud Run y no para trabajos de Cloud Run.
Antes de empezar
Asegúrate de conceder permisos para acceder a los servicios en los que te autentiques. Debes conceder el rol Invocador de Cloud Run al desarrollador o al grupo de desarrolladores:
Interfaz de usuario de la consola
Ve a la Google Cloud consola:
Selecciona el servicio, pero no hagas clic en él.
En el panel lateral de la derecha, haz clic en la pestaña Permisos. Es posible que primero tengas que hacer clic en Mostrar panel de información en la esquina superior derecha.
Haz clic en Añadir principal.
En el campo Nuevos principales, introduce el correo de la cuenta de desarrollador.
Selecciona el rol
Cloud Run Invoker
en el menú desplegable Selecciona un rol.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'
donde
- SERVICE es el nombre del servicio.
- USER es el valor
user
ogroup
en función de si autorizas a un solo desarrollador o a un grupo. EMAIL es la cuenta de correo.
Por ejemplo:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a un recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:resource "google_cloud_run_v2_service_iam_binding" "binding" {
project = "PROJECT"
location = "LOCATION"
name = "SERVICE"
role = "roles/run.invoker"
members = [
"user:EMAIL",
]
}
Sustituye:
- PROJECT con el ID del proyecto al que pertenece el servicio.
- LOCATION con la ubicación del servicio de Cloud Run.
- SERVICE con el nombre del servicio de Cloud Run al que se va a asociar la política de gestión de identidades y accesos.
- EMAIL con la cuenta de correo del usuario al que quieres conceder permisos.
Probar un servicio privado
Puedes usar el proxy de Cloud Run o curl
para probar tu servicio privado.
Usar el proxy de Cloud Run en Google Cloud CLI
La forma más sencilla de probar los servicios privados es usar el proxy de Cloud Run en Google Cloud CLI.
De esta forma, se envía el servicio privado a http://localhost:8080
(o al puerto especificado con --port
)
y se proporciona el token de la cuenta activa u otro token que especifiques.
De esta forma, puedes usar un navegador web o una herramienta como curl
.
Esta es la forma recomendada de probar de forma privada un sitio web o una API en tu navegador.
Puedes usar un proxy para un servicio de forma local con la siguiente línea de comandos en un entorno Linux, macOS, WSL (opción preferida) o cygwin:
gcloud run services proxy SERVICE --project PROJECT-ID
Usar curl
También puedes probar servicios privados sin el proxy mediante una herramienta como curl
y transfiriendo un token de autenticación en el encabezado Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Para que funcione el comando curl
, debes enviar un token de ID válido de un usuario con el permiso run.routes.invoke
, como Administrador de Cloud Run o Invocador de Cloud Run. Consulta la lista completa de roles y sus permisos asociados en Roles de gestión de identidades y accesos de Cloud Run.
Para obtener un token de ID válido de la identidad que ha iniciado sesión en la CLI de gcloud, usa el comando gcloud auth print-identity-token
. Puedes usar los tokens creados por la CLI de gcloud para invocar solicitudes HTTP en cualquier proyecto, siempre que tu cuenta tenga el permiso run.routes.invoke
en el servicio.
Para el desarrollo, usa tokens de ID generados por la CLI de gcloud. Sin embargo, ten en cuenta que estos tokens no tienen una reclamación de audiencia, lo que los hace susceptibles a ataques de repetición. En entornos de producción, usa tokens de ID emitidos para una cuenta de servicio con la audiencia adecuada especificada. Este enfoque mejora la seguridad, ya que restringe el uso de tokens al servicio previsto. En el caso de las cuentas que no son de Google, usa Federación de Identidades de la Fuerza de Trabajo para invocar tu servicio de Cloud Run, de modo que no tengas que descargar una clave de cuenta de servicio.
Te recomendamos que asignes el conjunto mínimo de permisos necesarios para desarrollar y usar tus servicios. Asegúrate de que las políticas de IAM de tus servicios se limiten al número mínimo de usuarios y cuentas de servicio.