Permite el acceso público (no autenticado)

Esta opción es para un servicio de Cloud Run que es una API pública o un sitio web.

Puedes permitir invocaciones no autenticadas 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 los roles de Propietario y Administrador de Cloud Run. Consulta Roles de IAM de Cloud Run para ver la lista completa de funciones y los permisos asociados.

IU de Console

Para un servicio existente de Cloud Run, haz lo siguiente:

  1. Ve a la consola de Google Cloud:

    Ir a la consola de Google Cloud

  2. Haz clic en la casilla de verificación a la izquierda del servicio que deseas hacer público. (No hagas clic en el servicio).

  3. 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, puede que debas hacer clic en Mostrar panel de información y, luego, en Permisos.

  4. Haz clic en Agregar principal.

En el cuadro de texto Principales nuevas, ingresa el valor allUsers.

  1. En el menú desplegable Rol, selecciona el rol Invocador de Cloud Run.

  2. Haz clic en Guardar.

  3. 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, pero asegúrate de seleccionar Permitir invocaciones no autenticadas en la pestaña Autenticación para hacer que el servicio esté disponible de forma pública. Si seleccionas Solicitar autenticación, el servicio será privado.

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"

Como alternativa, 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 las invocaciones no autenticadas para el SERVICE existente mediante el siguiente comando:

gcloud run services set-iam-policy SERVICE policy.yaml

Terraform

Para crear un servicio de Cloud Run, agrega lo siguiente al archivo main.tf existente:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

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:

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_v2_service.default.location
  service  = google_cloud_run_v2_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

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.

Uso compartido restringido al dominio

Si el proyecto está sujeto a la política de la organización de uso compartido de dominio restringido, no podrás crear servicios públicos de forma predeterminada. Puedes usar etiquetas y una política condicional para eximir a servicios específicos de esta restricción. Para obtener más información, consulta la entrada de blog sobre cómo crear servicios públicos de Cloud Run cuando se aplique el uso compartido restringido del dominio.