Existen dos formas de crear un servicio público de Cloud Run:
- Inhabilita la verificación de IAM del invocador de Cloud Run (recomendado).
- Asigna el rol de IAM de Cloud Run Invoker al tipo de miembro
allUsers
.
Roles requeridos
Para inhabilitar o volver a habilitar la verificación de IAM 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 de administrador de Cloud Run (roles/run.admin
). Consulta los roles de IAM de Cloud Run para ver la lista completa de roles y sus permisos asociados.
Inhabilita la verificación de IAM del invocador de Cloud Run
La forma recomendada de crear un servicio público es inhabilitar la verificación del rol de IAM de invocador de Cloud Run. Cloud Run aplica esta verificación de forma predeterminada. Usa esta solución cuando el proyecto esté sujeto a la restricción de uso compartido restringido del dominio en una política de la organización.
Para inhabilitar la verificación, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página de Cloud Run:
Haz clic en Crear servicio si estás configurando un servicio nuevo y, luego, completa la página de configuración inicial del servicio según sea necesario.
Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en la pestaña Seguridad.
Selecciona Permitir acceso público.
Haz clic en Crear o 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
Reemplaza
SERVICE_NAME
por el nombre del servicio.Para un servicio existente, usa el comando
gcloud run services update
con la marca--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Reemplaza SERVICE_NAME
por el nombre del servicio.
YAML
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación
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
Reemplaza SERVICE_NAME por el nombre de tu servicio de Cloud Run.
Reemplaza el servicio por la configuración nueva mediante el siguiente comando:
gcloud run services replace service.yaml
Para verificar que la verificación esté inhabilitada después de la implementación, navega al extremo HTTPS del servicio.
Vuelve a habilitar la verificación de IAM del invocador de Cloud Run
Para volver a habilitar la verificación, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página de Cloud Run:
Haz clic en el servicio y, luego, en Seguridad.
Selecciona Require authentication y, luego, Identity and Access Management (IAM).
Haz clic en Guardar.
gcloud
Actualiza el servicio pasando la marca
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
Reemplaza
SERVICE_NAME
por el nombre del servicio.
YAML
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación
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
Reemplaza
SERVICE_NAME
por el nombre de tu servicio de Cloud Run.
Para verificar que la verificación se vuelva a habilitar después de la implementación, navega al extremo HTTPS del servicio.
Configura la política de la organización para la verificación de IAM del invocador de Cloud Run
Si eres administrador, puedes restringir la capacidad de inhabilitar la verificación de IAM del invocador con la restricción administrada constraints/run.managed.requireInvokerIam
.
Esta restricción no se aplica de forma predeterminada.
Asigna el rol de invocador de IAM de Cloud Run al tipo de miembro allUsers
.
Puedes permitir el acceso público a un servicio si asignas el rol de Invocador de Cloud Run de IAM 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 se incluye en el rol de administrador de Cloud Run. Consulta los roles de IAM de Cloud Run para ver la lista completa de roles y sus permisos asociados.
Console
Para un servicio existente de Cloud Run, haz lo siguiente:
En la consola de Google Cloud , ve a la página de Cloud Run:
A la izquierda del servicio que deseas hacer público, haz clic en la casilla de verificación. No hagas clic en el servicio.
En el panel de información de la esquina superior derecha, haz clic en la pestaña Permisos. Si el panel de información no está visible, es posible que debas hacer clic en Mostrar panel de información y, luego, en Permisos.
Haz clic en Agregar principal.
En el campo Principales nuevas, ingresa el valor allUsers
.
En el menú Selecciona un rol, elige el rol Invocador de Cloud Run.
Haz clic en Guardar.
Se te pedirá que verifiques que deseas que este recurso sea público. Haz 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 hacer que el servicio esté disponible de forma pública. Para que un servicio sea privado, selecciona Solicitar autenticación.
gcloud
Para que un servicio sea de acceso público, usa el comando gcloud run services
para agregar el tipo de miembro especial allUsers
a un servicio y otorgarle 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 el servicio sea
de acceso público 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 para el SERVICE existente con el siguiente comando:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a un recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:Si deseas actualizar la vinculación de IAM del servicio para roles/run.invoker
, agrega el siguiente recurso que hace referencia a tu servicio de Cloud Run:
Esta vinculación solo está autorizada para el rol determinado. Se conservan otras vinculaciones de IAM dentro de la política de IAM del servicio.