Hay dos formas de crear un servicio público de Cloud Run:
- Inhabilita la comprobación de gestión de identidades y accesos del invocador de Cloud Run (recomendado).
- Asigna el rol de gestión de identidades y accesos Invocador de Cloud Run al tipo de miembro
allUsers
.
Roles obligatorios
Para inhabilitar o volver a habilitar la comprobación de gestión de identidades y accesos de invocador en un servicio, debes tener los siguientes permisos:
run.services.create
run.services.update
run.services.setIamPolicy
Estos permisos se incluyen en el rol Administrador de Cloud Run (roles/run.admin
). Consulta la lista completa de roles de gestión de identidades y accesos de Cloud Run y sus permisos asociados.
Inhabilitar la comprobación de gestión de identidades y accesos de Cloud Run Invoker
La forma recomendada de crear un servicio público es inhabilitar la comprobación de gestión de identidades y accesos del invocador de Cloud Run. Cloud Run aplica esta comprobación de forma predeterminada. Usa esta solución cuando el proyecto esté sujeto a la restricción de uso compartido restringido al dominio en una política de organización.
Para inhabilitar la comprobación, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Cloud Run:
Haga clic en Crear servicio si va a configurar un servicio nuevo y, a continuación, rellene la página de configuración inicial del servicio según sea necesario.
Si va a configurar un servicio que ya está disponible, haga clic en él y, a continuación, en la pestaña Seguridad.
Selecciona Permitir el acceso público.
Haz clic en Crear o en Guardar.
gcloud
Para un servicio nuevo, usa el comando
gcloud run deploy
con la marca--no-invoker-iam-check
:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Sustituye
SERVICE_NAME
por el nombre del servicio.En el caso de un servicio ya creado, usa el comando
gcloud run services update
con la marca--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Sustituye SERVICE_NAME
por el nombre del servicio.
YAML
Para ver y descargar la configuración, sigue estos pasos:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación de
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: true name: SERVICE_NAME
Sustituye SERVICE_NAME por el nombre de tu servicio de Cloud Run.
Sustituye el servicio por su nueva configuración con el siguiente comando:
gcloud run services replace service.yaml
Verifica que la comprobación esté inhabilitada después de la implementación. Para ello, ve al endpoint HTTPS del servicio.
Volver a habilitar la comprobación de IAM de invocador de Cloud Run
Para volver a habilitar la comprobación, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Cloud Run:
Haz clic en el servicio y, a continuación, en Seguridad.
Selecciona Pedir autenticación y, a continuación, Gestión de Identidades y Accesos (IAM).
Haz clic en Guardar.
gcloud
Actualiza el servicio pasando la marca
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
Sustituye
SERVICE_NAME
por el nombre del servicio.
YAML
Para ver y descargar la configuración, sigue estos pasos:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación de
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: false name: SERVICE_NAME
Sustituye
SERVICE_NAME
por el nombre de tu servicio de Cloud Run.
Verifica que la comprobación se vuelve a habilitar después de la implementación. Para ello, ve al endpoint HTTPS del servicio.
Configurar la política de la organización para la comprobación de gestión de identidades y accesos del invocador de Cloud Run
Si eres administrador, puedes restringir la capacidad de inhabilitar la comprobación de gestión de identidades y accesos de Invoker mediante la restricción gestionada constraints/run.managed.requireInvokerIam
.
Esta restricción no se aplica de forma predeterminada.
Asigna el rol de invocador de Cloud Run de gestión de identidades y accesos al tipo de miembro allUsers
Puedes permitir el acceso público a un servicio asignando el rol de gestión de identidades y accesos Invocador de Cloud Run al tipo de miembro allUsers
.
Debes tener el permiso run.services.setIamPolicy
para configurar la autenticación en un servicio de Cloud Run. Este permiso está incluido en el rol Administrador de Cloud Run. Consulta la lista completa de roles de gestión de identidades y accesos de Cloud Run y sus permisos asociados.
Consola
En un servicio de Cloud Run ya creado, sigue estos pasos:
En la Google Cloud consola, ve a la página Cloud Run:
A la izquierda del servicio que quieras hacer público, marca la casilla. No hagas clic en el servicio en sí.
En el panel de información de la esquina superior derecha, haga clic en la pestaña Permisos. Si el panel de información no está visible, es posible que tengas que hacer clic en Mostrar panel de información y, a continuación, en Permisos.
Haz clic en Añadir principal.
En el campo New principals (Nuevos principales), introduce el valor allUsers
.
En el menú Seleccionar un rol, elige el rol Invocador de Cloud Run.
Haz clic en Guardar.
Se te pedirá que verifiques que quieres hacer público este recurso. Haga clic en Permitir acceso público para aplicar el cambio a la configuración de IAM del servicio.
En el caso de un servicio nuevo que estés creando, crea el servicio y selecciona Permitir acceso público en la sección Autenticación para que el servicio esté disponible públicamente. Para que un servicio sea privado, selecciona Requerir autenticación.
gcloud
Para que un servicio sea accesible públicamente, usa el comando gcloud run services
para añadir el tipo de miembro especial allUsers
a un servicio y asignarle el rol roles/run.invoker
:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Ejecuta el comando gcloud run deploy
para que tu servicio sea accesible públicamente cuando lo implementes:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Crea un archivo llamado policy.yaml
con el siguiente contenido:
bindings:
- members:
- allUsers
role: roles/run.invoker
Permite el acceso público a la SERVICE actual mediante lo siguiente:
gcloud run services set-iam-policy SERVICE policy.yaml
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:Para actualizar el enlace de gestión de identidades y accesos del servicio de roles/run.invoker
, añade el siguiente recurso que haga referencia a tu servicio de Cloud Run:
Esta vinculación solo es autoritativa para el rol indicado. Se conservan otras vinculaciones de gestión de identidades y accesos en la política de gestión de identidades y accesos del servicio.