Autenticar desarrolladores

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

  1. Ve a la Google Cloud consola:

    Ir a la Google Cloud consola

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

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

  4. Haz clic en Añadir principal.

  5. En el campo Nuevos principales, introduce el correo de la cuenta de desarrollador.

  6. Selecciona el rol Cloud Run Invoker en el menú desplegable Selecciona un rol.

  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'

donde

  • SERVICE es el nombre del servicio.
  • USER es el valor user o group 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 recurso google_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.