Restringe la entrada a Cloud Run (completamente administrado)

En esta página, se describe cómo usar la configuración de entrada para restringir el acceso de red a tu servicio de Cloud Run. De forma predeterminada, cualquier recurso de Internet puede acceder a tu servicio Cloud Run (completamente administrado) en su URL run.app o en un dominio personalizado configurado en Cloud Run. Puedes cambiar este valor predeterminado si especificas una configuración diferente para la entrada.

Ten en cuenta que puedes usar esta característica junto con los métodos de autenticación de IAM para administrar el acceso a un servicio.

Opciones de configuración de entrada disponibles

Podrás configurar los siguientes parámetros:

Configuración Descripción
todas Permite que se pueda acceder a tu servicio desde la Internet pública. Aún se sigue aplicando el permiso para invocar de IAM.
interna Haz que tu servicio sea privado, lo que permite que solo las solicitudes que provienen del mismo proyecto o perímetro de los Controles del servicio de VPC lleguen a él. Aún se sigue aplicando el permiso para invocar de IAM.

Para obtener una descripción de lo que se considera interno o poder acceder a servicios internos, consulta Accede a servicios internos.

No hay asistencia para multiusuarios, es decir, varios dominios de confianza dentro del mismo proyecto.
Balanceo de cargas interno y en la nube Permite que se pueda acceder a tu servicio desde la Internet pública, pero solo acepta las solicitudes internas y las que llegan a través del balanceo de cargas de HTTP(S). El permiso de Invocador de IAM se seguirá aplicando.

Si usas Identity-Aware Proxy, Google Cloud Armor o Cloud CDN, esto también evitará las omisiones de estos servicios, ya que se accederá a la URL predeterminada.

Accede a servicios internos

Se aplican las siguientes consideraciones:

  • Cuando accedes a los servicios internos, llámalos como lo harías con sus URL públicas, ya sea la URL run.app predeterminada o un dominio personalizado configurado en Cloud Run.

  • Para solicitudes de instancias de VM de Compute Engine o de algún otro recurso que se ejecute dentro de una red de VPC en el mismo proyecto, no se requiere ninguna configuración adicional.

  • Para solicitudes de otros servicios de Cloud Run o de Cloud Functions en el mismo proyecto, conecta el servicio o la función a una red de VPC y enruta todo el tráfico de salida a través del conector, como se describe enConectarse a una red de VPC. Ten en cuenta que se sigue aplicando el permiso de invocador de IAM.

  • Las solicitudes de recursos dentro de las redes de VPC en el mismo proyecto se clasifican como internas, incluso si el recurso desde el que se originan tiene una dirección IP pública.

  • Las solicitudes de recursos dentro de un perímetro de Controles del servicio de VPC cuyo tráfico se origina en una red de VPC pueden llamar a un servicio interno, si la API de Cloud Run está habilitada como un servicio accesible de VPC..

  • Los recursos en las redes de VPC compartida solo pueden llamar a los servicios internos si los recursos de VPC compartida y el servicio interno están en el mismo perímetro de VPC SC y la API de Cloud Run está habilitada como un servicio accesible de VPC

  • Las solicitudes de Pub/Sub y Eventarc pueden llamar a un servicio interno.

  • No hay forma de llamar a los servicios internos desde fuentes de tráfico que no se originan en una red de VPC, excepto Pub/Sub o Eventarc. Esto significa que Cloud Scheduler, Cloud Tasks y los flujos de trabajo no pueden llamar a servicios internos.

  • Si usas entrada con Pub/Sub o Eventarc con activadores de Pub/Sub, se aplican las siguientes consideraciones:

    • Si usas la configuración de entrada en un servicio de Cloud Run que llama Pub/Sub, debes usar la URL app.run predeterminada de Cloud Run para ese servicio, no cualquier dominio personalizado.
    • La suscripción a Pub/Sub debe estar en el mismo proyecto o perímetro de los Controles del servicio de VPC como el servicio de Cloud Run.

Comparación entre el balanceo de cargas interno y el de Cloud

También se puede acceder a los servicios con entrada configurada como balanceo de cargas interno y de Cloud a través de balanceadores de cargas configurados mediante Cloud Load Balancing. La configuración del balanceo de cargas interno y de Cloud es un superconjunto de interno. Es decir, todo lo que pueda alcanzar un servicio configurado como interno puede alcanzar un servicio configurado como balanceo de cargas interno y de Cloud.

Configura la entrada

Puedes configurar la entrada con cualquiera de los métodos admitidos en las siguientes pestañas:

Console

Si implementas un servicio nuevo, sigue estos pasos:

  1. Ir a Cloud Run

  2. Haz clic en Crear servicio y configura el primer paso (Configuración del servicio) como desees y, luego, haz clic en Siguiente.

  3. Configura el segundo paso (Configura la primera revisión del servicio) como desees y haz clic en Siguiente.

  4. En el tercer paso, Configura cómo se activa este servicio, que se encuentra en la etiqueta Ingress*, selecciona el tráfico de entrada que deseas permitir:

    image

Si estás configurando un servicio existente, haz lo siguiente:

  1. Haz clic en el servicio.

  2. Hacer clic en la pestaña Activadores

  3. En la etiqueta Ingress, selecciona el tráfico de entrada que deseas permitir:

    image

  4. Haz clic en Guardar.

Línea de comandos

  1. Si implementas un servicio nuevo, impleméntalo con la marca --ingress:

    gcloud run deploy SERVICE --image IMAGE_URL --platform managed --ingress INGRESS

    Reemplazar

    • INGRESS por una de las configuraciones de entrada disponibles
      • all
      • internal
      • internal-and-cloud-load-balancing
    • SERVICE el nombre de tu servicio.
    • IMAGE_URL por una referencia a la imagen de contenedor, como gcr.io/myproject/my-image:latest
  2. Si cambias una entrada de servicio existente:

    gcloud run services update SERVICE --platform managed --ingress INGRESS

    Reemplazar

YAML

Puedes descargar y ver la configuración del servicio existente mediante el comando gcloud run services describe --format export, que genera resultados limpios en formato YAML. Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud beta run services replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualiza la anotación run.googleapis.com/ingress::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/ingress: INGRESS

    Reemplazar

  3. Reemplaza el servicio por la configuración nueva mediante el comando siguiente:

    gcloud beta run services replace service.yaml

¿Qué sigue?

Puedes usar el Acceso a VPC sin servidores para conectar un servicio de Cloud Run (completamente administrado) directamente a tu red de VPC mediante la configuración de salida.

También puedes usar el balanceo de cargas de HTTP(S) con Cloud Run (completamente administrado).