Herramientas de redes privadas y Cloud Run

En esta página, se analizan las opciones de configuración para incluir los recursos de Cloud Run en tu red privada.

Para aprovechar al máximo este contenido, debes estar familiarizado con los siguientes conceptos:

Para proteger el tráfico de red de sus servicios y aplicaciones, muchas organizaciones usan una red privada en Google Cloud con controles perimetrales para evitar el robo de datos. Tu red privada puede tener las siguientes propiedades:

  • Es posible que tengas una serie de recursos, como VMs, que se ubican en una o más redes de VPC.
  • Estas VMs pueden pertenecer a muchos proyectos diferentes y pueden conectarse entre sí con una VPC compartida.
  • Es posible que tengas cargas de trabajo locales o cargas de trabajo en otras nubes conectadas a este entorno mediante Cloud VPN o Cloud Interconnect.
  • Es posible que hayas habilitado un perímetro de Controles del servicio de VPC para reducir el riesgo de robo de datos.
  • Puedes tener varias redes privadas, una para cada uno de varios entornos diferentes, como uno para la producción, uno para la etapa de pruebas y otro para el desarrollo.

A diferencia de las VMs, los recursos de Cloud Run no están asociados a ninguna red de VPC en particular de forma predeterminada. En esta página, se explica cómo incorporar los recursos de Cloud Run en tu red privada.

Narrativa de herramientas de red sin servidores

A fin de explorar una variedad de configuraciones empresariales comunes para las redes públicas y privadas, lee nuestra Narrativa de herramientas de redes sin servidores.

En este punto de partida, se presentan las siguientes situaciones de Cloud Run básicas a avanzadas:

  • Implementa de forma segura un mensaje “Hello, World!” app que usa un dominio personalizado
  • Desarrolla microservicios y aplicaciones empresariales
  • Accede a bases de datos y sistemas de archivos de manera pública o privada
  • Conéctate con proveedores de SaaS
  • Aplica controles de seguridad

Consulta la lista de los módulos de Terraform correspondientes.

Recibe solicitudes de tu red privada

Para recibir solicitudes de tu red privada, se requiere una configuración basada en las siguientes condiciones:

  • De dónde proviene la solicitud.
  • Si el recurso de Cloud Run solo permite solicitudes de tu red privada.

Por ejemplo, recibir solicitudes de redes de VPC puede requerir una configuración diferente a recibir solicitudes de recursos locales y otras nubes.

Recibe solicitudes de otros recursos de Cloud Run o App Engine

Cuando tu recurso de Cloud Run de destino recibe tráfico de otros recursos de Cloud Run o App Engine, y usa la configuración de entrada “interna” o “interna y balanceo de cargas”, el tráfico debe usar la red de VPC para que se considere interna.

Para recibir solicitudes de otros recursos de Cloud Run o App Engine, sigue estos pasos:

  1. Configura el recurso de origen para usar la salida de VPC directa o un conector.

  2. Asegúrate de que el tráfico a Cloud Run se enrute a través de la red de VPC con una de las siguientes opciones:

    • Configura el recurso de origen para enviar todo el tráfico a través de la red de VPC y habilita el Acceso privado a Google en la subred asociada con la salida de VPC directa o el conector.
    • Configura Private Service Connect o un balanceador de cargas de aplicaciones interno para dirigir el recurso de Cloud Run de destino. Con esta configuración, accedes a Cloud Run a través de direcciones IP internas, por lo que las solicitudes se enrutan a través de la red de VPC.
    • Habilita el acceso privado a Google en la subred asociada con el recurso de origen y configura DNS para resolver las URLs run.app en los rangos private.googleapis.com (199.36.153.8/30) o restricted.googleapis.com (199.36.153.4/30). Las solicitudes a estos rangos se enrutan a través de la red de VPC.

Recibe solicitudes de redes de VPC

De forma predeterminada, solo los recursos que tienen direcciones IP externas o que usan Cloud NAT pueden acceder directamente a Internet y a los servicios deGoogle Cloud , como Pub/Sub y Cloud Run. Para otros recursos, existen algunas opciones que permiten habilitar la ruta de tráfico hacia Cloud Run:

  • La ruta más directa es habilitar el Acceso privado a Google en las subredes que alojan tus recursos. Cuando se habilita el Acceso privado a Google, los recursos de las subredes pueden acceder a tus recursos de Cloud Run en la URL run.app predeterminada. El tráfico de tu red de VPC a Cloud Run permanece en la red de Google. En ese caso, el rango de IP para las solicitudes enviadas al recurso de Cloud Run es 0.0.0.0/32. Esto significa que, en las entradas de registro de solicitudes, el atributo remoteIp de HttpRequest será 0.0.0.0.
  • Si necesitas que se pueda acceder a tu recurso de Cloud Run (junto con otras APIs de Google) a través de una dirección IP interna en tu red de VPC, considera crear un extremo de Private Service Connect y configurar una zona de DNS privada para run.app. Con esta configuración, los recursos de la red de VPC pueden acceder a los recursos de Cloud Run en la URL predeterminada de run.app a través de la dirección IP del extremo de Private Service Connect.
  • Si necesitas capacidades y controles de balanceo de cargas, considera usar un balanceador de cargas de aplicaciones interno. Con este enfoque, los recursos de la red de VPC acceden a tus recursos de Cloud Run mediante la URL asociada con el balanceador de cargas de aplicaciones interno.
  • Si deseas exponer tu servicio a clientes internos como un servicio administrado y poder controlar qué proyectos pueden acceder a él, puedes alojarlo con un balanceador de cargas de aplicaciones interno y publicarlo con Private Service Connect. Los proyectos que necesitan consumir el servicio pueden acceder a él a través de un extremo de Private Service Connect o un backend de Private Service Connect.

Las respuestas se muestran con la misma ruta que pasó la solicitud.

Consideraciones especiales para la VPC compartida

Cuando usas la configuración internal con los controles de entrada de Cloud Run para forzar que todo el tráfico provenga de tu red privada, el tráfico de la VPC compartida solo se reconoce como “interno” en las siguientes situaciones:

  • El recurso de Cloud Run se ejecuta en el proyecto host de la VPC compartida.

  • Entrada de VPC compartida: el recurso de Cloud Run está conectado a una red de VPC compartida. En este caso, ten en cuenta las siguientes consideraciones:

    • Solo las revisiones del servicio que configuraron la salida de VPC directa o que configuraron un conector de Acceso a VPC sin servidores para enviar tráfico a la red de VPC compartida también aceptan tráfico de esa misma red de VPC compartida.

    • Las solicitudes usan diferentes rutas según la dirección del tráfico. Las solicitudes enviadas de Cloud Run a la red de VPC compartida se enrutan a través de la salida de VPC directa o el conector. Sin embargo, las solicitudes enviadas desde la red de VPC compartida a Cloud Run usan la ruta de entrada estándar.

    • Para desconectar un recurso de Cloud Run de la red de VPC compartida, vuelve a implementarlo sin acceso a la red de VPC o con el recurso configurado para enviar tráfico a una red de VPC diferente.

  • Estás usando un balanceador de cargas de aplicaciones interno como proxy para el tráfico.

  • Colocaste el host de VPC compartida y todos los proyectos de servicio dentro del mismo perímetro de Controles del servicio de VPC. Para configurar los Controles del servicio de VPC, consulta Usa los Controles del servicio de VPC (VPC SC).

Consideraciones especiales para otras redes de VPC fuera de tu proyecto

Cuando usas la configuración internal con los controles de entrada de Cloud Run para aplicar que todo el tráfico debe provenir de tu red privada, el tráfico de otras redes de VPC fuera de tu proyecto no se reconoce como “interno”, excepto en las siguientes situaciones:

  • Controles del servicio de VPC se configura para permitir el tráfico con run.googleapis.com como un servicio restringido, y el Acceso privado a Google está habilitado en la subred de origen.
  • Tu recurso de Cloud Run se publica como un servicio administrado mediante Private Service Connect (requiere un balanceador de cargas de aplicaciones interno) y se accede a él desde la otra red de VPC.

El intercambio de tráfico con una red de VPC que está fuera de tu proyecto no permite que el tráfico se reconozca como “interno”.

Cómo recibir solicitudes de otros Google Cloud servicios

Las solicitudes a Cloud Run desde Google Cloud servicios como Pub/Sub permanecen en la red de Google.

Hay algunas consideraciones especiales si configuraste los controles de entrada de Cloud Run para permitir solo el tráfico “interno”:

  • Las solicitudes de BigQuery, Cloud Scheduler, Cloud Tasks, Dialogflow CX, Eventarc, Pub/Sub, supervisores sintéticos (incluidas las verificaciones de tiempo de actividad) y Workflows en el mismo proyecto o perímetro de Controles del servicio de VPC se reconocen como “internos”.
  • Las solicitudes de Cloud Run o App Engine que se envían desde el mismo proyecto o perímetro de Controles del servicio de VPC requieren una configuración adicional antes de que se reconozcan como “internas”. Para obtener más información, consulta la sección Recibe solicitudes de otros servicios de Cloud Run o App Engine.
  • Si el servicio de Google Cloud que elegiste no puede acceder a los recursos de Cloud Run que tienen la entrada configurada como internal, ten en cuenta que muchos servicios admiten la autenticación en Cloud Run, como Pub/Sub (admite internal y la autenticación), API Gateway y Dialogflow CX (admite internal y la autenticación). Según tus necesidades de seguridad, puede ser suficiente que el recurso de Cloud Run de destino requiera autenticación en lugar de entrada “interna”.
  • Las solicitudes de servicios de Google Cloud que no se mencionaron antes no se reconocen como internas y no pueden recibirlas los recursos de Cloud Run que tienen entrada configurada como internal o internal-and-cloud-load-balancing.

Recibe solicitudes de recursos locales o de otras nubes

Existen varias formas de recibir solicitudes de recursos privados y otras nubes de forma privada.

Exige que las solicitudes provengan de tu red privada

Para evitar el tráfico entrante (entrada) desde fuentes externas, debes especificar una configuración de entrada restrictiva. La configuración de entrada más restrictiva es internal. Si configuras la entrada como internal, el servicio solo permite solicitudes del proyecto, las redes de VPC compartidas a las que está conectado el proyecto y el perímetro de los Controles del servicio de VPC. Esta configuración tiene algunas limitaciones según el origen de las solicitudes. Para obtener información sobre estas limitaciones y cómo navegarlas, consulta la sección Recibe solicitudes de tu red privada.

Puedes especificar la configuración de entrada para cada recurso de Cloud Run o aplicar el uso de tu configuración de entrada preferida a todos los recursos de Cloud Run de tu organización.

  • Para especificar la configuración de entrada para cada recurso de Cloud Run, consulta Configura la entrada.
  • Para aplicar una configuración de entrada particular a todos los recursos de Cloud Run en tu proyecto, organización o carpeta, configura la restricción de política de la organización run.allowedIngress. Si deseas obtener información sobre cómo hacerlo, consulta Personaliza políticas para restricciones de lista.

Envía solicitudes a tu red privada

Si tu recurso de Cloud Run necesita acceder a un recurso de tu red privada, debes configurar una ruta de acceso para solicitudes privadas a la red. La configuración depende del destino final de la solicitud.

Envía solicitudes a tu red de VPC

Para enviar solicitudes a una red de VPC, debes configurar la salida de VPC directa o un conector de Acceso a VPC sin servidores. Comparar la salida de VPC directa y los conectores de VPC: Revisa los precios para comprender los costos.

Cuando se configuran la salida de VPC directa o los conectores, se aplican las siguientes consideraciones de forma predeterminada:

  • Todas las consultas de DNS se envían al servidor DNS configurado para la red de VPC asociada a tu configuración de salida de red de VPC.

  • Las solicitudes a direcciones IP interna se enrutan a la red de VPC a través de la salida de VPC directa o un conector. Las solicitudes a destinos públicos se enrutan directamente a Internet, a menos que tu configuración de salida esté configurada de otra manera.

Con las solicitudes enrutadas con la salida de VPC directa o los conectores, las respuestas se muestran con la ruta que pasó por la solicitud. Las solicitudes desde tu red de VPC a Cloud Run se habilitan a través de otras tecnologías y no se enrutan a través de la salida de VPC directa ni los conectores, y las respuestas a esas solicitudes se muestran con la misma ruta. Para obtener más información sobre cómo enviar solicitudes de tu red de VPC a Cloud Run, consulta Recibe solicitudes de redes de VPC.

Envía solicitudes a una red de VPC fuera de tu proyecto

Para enviar solicitudes a una red de VPC fuera de tu proyecto, realiza los siguientes pasos:

  1. Para los usuarios de VPC compartida, consulta Conéctate a una red de VPC compartida.
  2. Para otras redes de VPC, configura la salida de VPC directa o un conector para conectarte a una VPC en tu proyecto.
    • Intercambio de tráfico entre redes de VPC: Para enviar a una VPC que intercambia tráfico con una VPC que usa la salida de red de VPC, no se requiere ninguna configuración adicional. Sin embargo, las VMs en la subred que aloja la salida de red de VPC deben poder alcanzar la red de VPC de destino.
    • Otras redes de VPC: Para las redes de VPC fuera del proyecto que no forman parte del mismo entorno de VPC compartida o que intercambian tráfico a la red de VPC del proyecto, configura Private Service Connect después de configurar la salida de red de VPC.

Envía solicitudes a otros recursos y Google Cloud servicios de Cloud Run

Las solicitudes de un recurso de Cloud Run a otro o a otros servicios deGoogle Cloud permanecen dentro de la red interna de Google y están sujetas a Controles del servicio de VPC.

Para las solicitudes a los recursos de Cloud Run con una configuración de entrada restrictiva, se requiere una configuración adicional. Consulta Recibe solicitudes de otros recursos de Cloud Run o App Engine.

Envía solicitudes a recursos locales y otras nubes

Para enviar solicitudes a recursos locales y otras nubes a través de tu red privada, debes hacer lo siguiente:

  1. Asegúrate de que tu red de VPC esté configurada para enrutar el tráfico de forma privada al destino, por ejemplo, a través de un túnel VPN.
  2. Configura tu servicio para enviar solicitudes a tu red de VPC.
  3. Exige que todas las solicitudes vayan a tu red de VPC.

Exige que todas las solicitudes vayan a tu red de VPC

Para solicitar que todas las solicitudes de tu recurso de Cloud Run vayan a tu red de VPC, especifica la configuración de salida de la red de VPC de all-traffic. Puedes especificar la configuración de salida para cada recurso de Cloud Run que usa la salida de red VPC o puedes aplicar el uso de tu configuración de salida preferida a todos los recursos de Cloud Run en tu proyecto, organización o carpeta.

Esto es útil en las siguientes situaciones:

  1. Deseas configurar una dirección IP saliente estática para tu recurso de Cloud Run.
  2. Deseas aplicar reglas de firewall para todas las salidas de un recurso de Cloud Run.
  3. Deseas enviar solicitudes a recursos locales y otras nubes a través de tu red privada.

Si tu recurso de Cloud Run realiza solicitudes a destinos finales fuera de tu red de VPC, requerir que todas las solicitudes vayan a tu red de VPC aumenta el uso del ancho de banda en los conectores de Acceso a VPC sin servidores configurados y puede aumentar los costos en consecuencia. Los conectores escalan de forma automática cuando el tráfico aumenta, pero no lo hacen si el tráfico disminuye. Revisa los precios para comprender los costos.

Controles adicionales

  • Controles perimetrales: A fin de reducir el riesgo de robo de datos para un grupo de recursos, colócalos en un perímetro adaptado al contexto mediante los Controles del servicio de VPC.
  • Controles detallados: Para controlar el acceso al tráfico desde un recurso específico dentro de tu red privada, como un recurso específico de Cloud Run o una máquina virtual de Compute Engine, usa cuentas de servicio para controlar los permisos y la autenticación.

¿Qué sigue?

Si usas Terraform, el código de muestra de Terraform está disponible para configurar recursos de Cloud Run en una red privada.