Para sacar el máximo partido a este contenido, debes tener cierta familiaridad con los siguientes conceptos:
- Redes básicas
- Google Cloud Redes de nube privada virtual (VPC)
Para proteger el tráfico de red de sus servicios y aplicaciones, muchas organizaciones utilizan una red privada en Google Cloud con controles de perímetro para evitar la filtración externa de datos. Tu red privada puede tener las siguientes propiedades:
- Puede que tengas varios recursos, como VMs, en una o varias redes VPC.
- Estas VMs pueden pertenecer a muchos proyectos diferentes y pueden estar conectadas entre sí mediante una VPC compartida.
- Es posible que tengas cargas de trabajo on-premise o en otras nubes conectadas a este entorno mediante Cloud VPN o Cloud Interconnect.
- Es posible que hayas habilitado un perímetro de Controles de Servicio de VPC para reducir el riesgo de filtración externa de datos.
- Puede que tengas varias redes privadas, una para cada uno de los diferentes entornos, como una para producción, otra para staging y otra para desarrollo.
A diferencia de las VMs, los recursos de Cloud Run no están asociados a ninguna red de VPC específica de forma predeterminada. En esta página se explica cómo incorporar recursos de Cloud Run a tu red privada.
Narrativa de la red sin servidor
Para descubrir una serie de configuraciones empresariales habituales para redes públicas y privadas, consulta nuestro artículo sobre redes sin servidor.
En este punto de partida se presentan los siguientes casos prácticos de Cloud Run, desde los más básicos hasta los más avanzados:
- Desplegar de forma segura una aplicación "Hello, World!" que usa un dominio personalizado
- Desarrollar aplicaciones empresariales y microservicios
- Acceder a bases de datos y sistemas de archivos de forma pública o privada
- Conectar con proveedores de SaaS
- Aplicar controles de seguridad
Consulta la lista de módulos de Terraform correspondientes.
Recibir solicitudes de tu red privada
Para recibir solicitudes de tu red privada, debes configurar la red en función de las siguientes condiciones:
- De dónde procede la solicitud.
- Indica 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 la de recibir solicitudes de recursos on-premise y otras nubes.
Recibir 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 de App Engine y usa la opción de entrada "internal" (interna) o "internal and load balancing" (interna y balanceo de carga), el tráfico debe usar la red de VPC para considerarse interno.
Para recibir solicitudes de otros recursos de Cloud Run o App Engine, sigue estos pasos:
Configura el recurso source para que use la salida de VPC directa o un conector.
Asegúrate de que el tráfico a Cloud Run se enruta a través de la red de VPC mediante 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 de Google en la subred asociada a la salida de VPC directa o al conector.
- Configura Private Service Connect o un balanceador de carga de aplicaciones interno para que esté delante de tu recurso de Cloud Run de destino. Con esta configuración, se accede a Cloud Run mediante direcciones IP internas, por lo que las solicitudes se enrutan a través de la red de VPC.
- Habilita el acceso privado de Google en la subred asociada al recurso de origen y configura el DNS para resolver las URLs
run.app
en los intervalosprivate.googleapis.com
(199.36.153.8/30
) orestricted.googleapis.com
(199.36.153.4/30
). Las solicitudes a estos intervalos se enrutan a través de la red de VPC.
Recibir 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 aGoogle Cloud servicios como Pub/Sub y Cloud Run. En el caso de otros recursos, hay varias opciones para habilitar la ruta de tráfico a Cloud Run:
- La forma más directa es habilitar Acceso privado de Google en las subredes que alojan tus recursos. Cuando el acceso privado de Google está habilitado, los recursos de las subredes pueden acceder a tus recursos de Cloud Run a través de 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 intervalo de IPs de las solicitudes enviadas al recurso de Cloud Run es0.0.0.0/32
. Esto significa que, en las entradas del registro de solicitudes, el atributoremoteIp
de HttpRequest será0.0.0.0
. - Si necesitas que tu recurso de Cloud Run (junto con otras APIs de Google) sea accesible a través de una dirección IP interna en tu red de VPC, considera la posibilidad de crear un endpoint de Private Service Connect y configurar una zona 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 URLrun.app
predeterminada a través de la dirección IP del endpoint de Private Service Connect. - Si necesitas funciones y controles de balanceo de carga, te recomendamos que uses un balanceador de carga de aplicaciones interno. Con este enfoque, los recursos de la red de VPC acceden a tus recursos de Cloud Run mediante la URL asociada al balanceador de carga de aplicaciones interno.
- Si quieres exponer tu servicio a clientes internos como servicio gestionado y poder controlar qué proyectos pueden acceder a él, puedes alojarlo con un balanceador de carga de aplicación interno y publicar el servicio mediante Private Service Connect. Los proyectos que necesiten consumir el servicio pueden acceder a él mediante un endpoint de Private Service Connect o un backend de Private Service Connect.
Las respuestas se devuelven mediante la misma ruta por la que se ha enviado la solicitud.
Consideraciones especiales para la VPC compartida
Cuando se usa el ajuste internal
con los controles de entrada de Cloud Run para obligar a que todo el tráfico proceda de tu red privada, el tráfico de 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á asociado a una red de VPC compartida. En este caso, ten en cuenta lo siguiente:
Solo las revisiones de servicio que tengan configurado el egreso directo de VPC o que hayan configurado un conector de acceso a VPC sin servidor para enviar tráfico a la red VPC compartida también aceptarán tráfico de esa misma red VPC compartida.
Las solicitudes usan rutas diferentes en función de la dirección del tráfico. Las solicitudes enviadas desde Cloud Run a la red de VPC compartida se enrutan mediante la salida directa de VPC 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 desvincular un recurso de Cloud Run de la red de VPC compartida, vuelve a implementar el recurso sin acceso a la red de VPC o con el recurso configurado para enviar tráfico a otra red de VPC.
Estás usando un balanceador de carga de aplicación interno para proxy el tráfico.
Has colocado el host de la VPC compartida y todos los proyectos de servicio dentro del mismo perímetro de Controles de Servicio de VPC. Para configurar Controles de Servicio de VPC, consulta Usar Controles de Servicio de VPC.
Consideraciones especiales para otras redes de VPC fuera de tu proyecto
Cuando se usa el ajuste internal
con los controles de entrada de Cloud Run para obligar a que todo el tráfico proceda de tu red privada, el tráfico de otras redes de VPC ajenas a tu proyecto no se reconoce como "interno" excepto en las siguientes situaciones:
- Controles de Servicio de VPC está configurado para permitir el tráfico con
run.googleapis.com
como servicio restringido y Acceso privado de Google está habilitado para la subred de origen. - Tu recurso de Cloud Run se publica como un servicio gestionado mediante Private Service Connect (requiere un balanceador de carga de aplicaciones interno) y se accede desde la otra red de VPC.
El emparejamiento con una red de VPC que no pertenece a tu proyecto no permite que el tráfico se reconozca como "interno".
Recibir solicitudes de otros servicios de Google Cloud
Las solicitudes a Cloud Run desde Google Cloud servicios como Pub/Sub permanecen en la red de Google.
Hay algunas consideraciones especiales si has configurado los controles de acceso de Cloud Run para que solo permitan el tráfico "interno":
- Las solicitudes de BigQuery, Cloud Scheduler, Cloud Tasks, Dialogflow CX, Eventarc, Pub/Sub, monitorizaciones sintéticas (incluidas las comprobaciones de tiempo de actividad) y Workflows en el mismo proyecto o perímetro de Controles de Servicio de VPC se reconocen como "internas".
- Las solicitudes de Cloud Run o App Engine que se envían desde el mismo proyecto o perímetro de Controles de Servicio de VPC requieren una configuración adicional para que se reconozcan como "internas". Para obtener más información, consulta la sección Recibir solicitudes de otros servicios de Cloud Run o App Engine.
- Si el servicio que has elegido no puede acceder a los recursos de Cloud Run que tienen el valor
internal
en el campo de entrada, ten en cuenta que muchos servicios admiten la autenticación en Cloud Run, como Pub/Sub (admite tantointernal
como la autenticación), API Gateway y Dialogflow CX (admite tantointernal
como la autenticación). Google Cloud En función de tus necesidades de seguridad, puede que sea suficiente con que el recurso de Cloud Run de destino requiera autenticación en lugar de un acceso "interno". - Las solicitudes de los servicios que no se han mencionado anteriormente no se reconocen como internas y no pueden recibirlas los recursos de Cloud Run que tengan el valor
internal
ointernal-and-cloud-load-balancing
en el campo de entrada. Google Cloud
Recibir solicitudes de recursos on-premise u otras nubes
Hay varias formas de recibir solicitudes de forma privada desde recursos locales y otras nubes.
- Configuración básica: para que las solicitudes de recursos on-premise y otras nubes atraviesen tu red privada, configura el acceso privado de Google para hosts on-premise.
- Hacer que el recurso de Cloud Run sea accesible a través de una dirección IP interna: para llamar a recursos de Cloud Run mediante una dirección IP interna, crea un punto final de Private Service Connect para acceder a las APIs de Google, configura una zona DNS privada para
run.app
y configura tu red local para acceder al punto final. Con esta configuración, los hosts locales pueden acceder a los recursos de Cloud Run en la URLrun.app
predeterminada a través de la dirección IP del endpoint de Private Service Connect. - Con funciones de balanceo de carga: si necesitas funciones y controles de balanceo de carga, usa un balanceador de carga de aplicación interno. Para obtener información sobre cómo acceder a un balanceador de carga de aplicación interno desde redes on-premise, consulta Usar Cloud VPN y Cloud Interconnect.
- Entre límites administrativos: si quieres exponer tu servicio a clientes internos como servicio gestionado y poder controlar qué proyectos pueden acceder a él, puedes publicar el servicio mediante Private Service Connect (requiere un balanceador de carga de aplicaciones interno). Para acceder al servicio desde hosts locales, crea un endpoint de Private Service Connect y configura la red local para acceder al endpoint. Para obtener más información, consulta Acceder a endpoints desde redes híbridas. También puedes usar un backend de Private Service Connect con un balanceador de carga. Para obtener información sobre cómo acceder a los balanceadores de carga desde redes locales, consulta la documentación del balanceador de carga que estés usando. Por ejemplo, en el caso de los balanceadores de carga de aplicación internos, consulta el artículo Usar Cloud VPN y Cloud Interconnect.
Requerir que las solicitudes procedan de tu red privada
Para evitar el tráfico entrante de fuentes externas, especifica un ajuste de entrada restrictivo.
El ajuste de entrada más restrictivo es internal
. Si el valor de entrada es internal
, tu servicio solo permite solicitudes de tu proyecto, de las redes de VPC compartida a las que esté conectado tu proyecto y de tu perímetro de Controles de Servicio de VPC. Esta opción tiene algunas limitaciones en función del origen de las solicitudes. Para obtener información sobre estas limitaciones y cómo gestionarlas, consulta la sección Recibir solicitudes de tu red privada.
Puedes especificar el ajuste de entrada de cada recurso de Cloud Run o aplicar el ajuste de entrada que prefieras a todos los recursos de Cloud Run de tu organización.
- Para especificar el ajuste de entrada de cada recurso de Cloud Run, consulta Configurar la entrada.
- Para aplicar una configuración de entrada concreta a todos los recursos de Cloud Run de tu proyecto, carpeta u organización, configura la restricción de la política de organización
run.allowedIngress
. Para saber cómo hacerlo, consulte Personalizar políticas de restricciones de listas.
Enviar solicitudes a tu red privada
Si tu recurso de Cloud Run necesita acceder a un recurso de tu red privada, debes configurar una ruta para las solicitudes privadas a tu red. La configuración depende del destino final de la solicitud.
Enviar 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 servidor. Compara la salida de VPC directa y los conectores de VPC. Consulta los precios para saber cuáles son los costes.
Cuando se configura la salida directa de VPC 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 internas se enrutan a la red de VPC mediante la salida de VPC directa o un conector. Las solicitudes a destinos públicos se siguen enrutando directamente a Internet, a menos que tu ajuste de salida esté configurado de otra forma.
Cuando las solicitudes se enrutan mediante la salida directa de VPC o los conectores, las respuestas se devuelven mediante la ruta por la que se ha enviado la solicitud. Las solicitudes de tu red de VPC a Cloud Run se habilitan mediante otras tecnologías y no se enrutan a través de la salida de VPC directa ni de conectores. Las respuestas a esas solicitudes se devuelven por la misma ruta. Para obtener más información sobre cómo enviar solicitudes desde tu red VPC a Cloud Run, consulta Recibir solicitudes de redes VPC.
Enviar solicitudes a una red de VPC que no pertenezca a tu proyecto
Para enviar solicitudes a una red de VPC que no esté en tu proyecto, sigue estos pasos:
- Si usas la VPC compartida, consulta el artículo Conectarse a una red de VPC compartida.
- En el caso de otras redes de VPC, configura la salida directa de VPC o un conector para conectarte a una VPC de tu proyecto.
- Redes de VPC emparejadas: para enviar datos a una VPC emparejada con otra que utilice la salida de red de VPC, no se necesita ninguna configuración adicional. Sin embargo, las VMs de la subred que aloja la salida de la red VPC deben poder acceder a la red VPC de destino.
- Otras redes de VPC: para las redes de VPC que no estén en tu proyecto, que no formen parte del mismo entorno de VPC compartida o que no estén emparejadas con la red de VPC de tu proyecto, configura Private Service Connect después de configurar la salida de la red de VPC.
Enviar solicitudes a otros recursos y servicios de Cloud Run Google Cloud
Las solicitudes de un recurso de Cloud Run a otro o a otros servicios se mantienen en la red interna de Google y están sujetas a Controles de Servicio de VPC.Google Cloud
Para enviar solicitudes a recursos de Cloud Run con ajustes de entrada restrictivos, se requiere una configuración adicional. Consulta Recibir solicitudes de otros recursos de Cloud Run o App Engine.
Enviar solicitudes a recursos on-premise y otras nubes
Para enviar solicitudes a recursos on-premise y otras nubes a través de tu red privada, debes hacer lo siguiente:
- Asegúrate de que tu red de VPC esté configurada para enrutar de forma privada el tráfico al destino, por ejemplo, a través de un túnel VPN.
- Configura tu servicio para enviar solicitudes a tu red de VPC.
- Requiere que todas las solicitudes se dirijan a tu red de VPC.
Requerir que todas las solicitudes se dirijan a tu red de VPC
Para requerir que todas las solicitudes de tu recurso de Cloud Run se dirijan a tu red de VPC, especifica el all-traffic
ajuste de salida de la red de VPC.
Puedes especificar la configuración de salida de cada recurso de Cloud Run que utilice la salida de la red de VPC o puedes aplicar el uso de la configuración de salida que prefieras a todos los recursos de Cloud Run de tu proyecto, carpeta u organización.
Esto resulta útil en las siguientes situaciones:
- Quieres configurar una dirección IP de salida estática para tu recurso de Cloud Run.
- Quieres aplicar reglas de cortafuegos a todo el tráfico de salida de un recurso de Cloud Run.
- Quieres enviar solicitudes a recursos on-premise y a otras nubes a través de tu red privada.
Si tu recurso de Cloud Run envía solicitudes a destinos finales fuera de tu red de VPC, y quieres que todas las solicitudes se dirijan a tu red de VPC, aumentará el uso del ancho de banda en los conectores de acceso a VPC sin servidor configurados y, por lo tanto, los costes. Los conectores se escalan horizontalmente de forma automática cuando aumenta el tráfico, pero no se reducen si el tráfico disminuye. Consulta los precios para saber cuáles son los costes.
- Para especificar el ajuste de salida de recursos de Cloud Run concretos, consulta Controlar el tráfico de servicio de salida.
- Para aplicar una configuración de salida concreta a todos los recursos de Cloud Run de tu proyecto, carpeta u organización, configura la restricción de la política de organización
run.allowedVPCEgress
. Para saber cómo hacerlo, consulte Personalizar políticas de restricciones de listas.
Controles adicionales
- Controles de perímetro: para reducir el riesgo de filtración externa de datos de un grupo de recursos, colócalos en un perímetro contextual mediante Controles de Servicio de VPC.
- Para obtener información sobre Controles de Servicio de VPC, consulta la información general sobre Controles de Servicio de VPC.
- Para empezar, consulta la guía de Cloud Run Usar Controles de Servicio de VPC.
- Para conocer los costes, consulta los precios.
- Controles pormenorizados: para controlar el acceso del tráfico de un recurso específico de tu red privada, como un recurso de Cloud Run o una máquina virtual de Compute Engine, usa cuentas de servicio para controlar los permisos y la autenticación.
- Para obtener información sobre las cuentas de servicio, consulta el artículo ¿Qué son las cuentas de servicio?
- Para empezar, consulta las guías de autenticación de Cloud Run.
Siguientes pasos
Si usas Terraform, puedes consultar el código de ejemplo de Terraform para configurar recursos de Cloud Run en una red privada.