En Google Cloud Platform (GCP), cada proyecto nuevo arranca con una red VPC predeterminada al habilitar la API de Compute Engine, salvo que la desactives.
Esto simplifica el uso de GCP, ya que no hace falta crear una VPC personalizada ni subredes. El inconveniente de la red predeterminada es que todas las subredes creadas automáticamente usan un conjunto de rangos IPv4 predefinidos que caben dentro del bloque CIDR 10.128.0.0/9.
La comunicación interna privada entre proyectos no está permitida por la superposición de redes. Esta limitación aplica tanto a VPC Peering como a Cloud VPN.
En este blog te mostramos cómo usar Private Service Connect para acceder de forma privada a servicios que corren en clústeres de VM/GKE con redes superpuestas. Esto aplica tanto a redes superpuestas dentro de la misma organización de GCP como en organizaciones distintas.
Arquitectura de referencia
Configuración objetivo de Private Service Connect
Project B es el proyecto productor del servicio, con un servicio nginx de ejemplo desplegado en una instancia dentro de un managed instance group.
Project A es el proyecto consumidor, y necesita acceder de forma privada al servicio del Project B. Las instancias de ambos proyectos no tienen ninguna IP externa asignada.
La región de GCP para los recursos es us-west4
La API compute.googleapis.com está habilitada en Project A y Project B
Cloud NAT para que las instancias privadas tengan salida a internet y descarguen paquetes
Despliega el servicio de ejemplo y la instancia de prueba
Actualiza las variables en los comandos a continuación.
Las redes de Project A y Project B no tienen conectividad interna entre sí, por lo que la instancia de Project A no puede acceder al servicio que corre en Project B.
Tampoco se permite VPC peering, debido a la superposición de rangos en la red predeterminada.
Configura el balanceador de carga interno
Private Service Connect requiere un balanceador de carga interno para exponer el servicio mediante un service attachment. Para esta configuración crearemos un balanceador de carga TCP interno en Project B.
Crea un nuevo health check HTTP regional para verificar la conectividad HTTP a las VMs por el puerto 80.
Publica el servicio en Project B, el proyecto productor, para que los consumidores en otras redes VPC puedan conectarse y acceder al servicio de forma privada y segura.
Reserva una subred para Private Service Connect. El rango de esta subred no debe superponerse con la red predeterminada.
Puedes controlar la lista de consumidores que pueden acceder a los servicios publicados, ya sea con aprobación automática o manual. Consulta Publicar servicios con Private Service Connect.
Configura una regla de firewall que permita a Private Service Connect acceder a las instancias de destino.
Prueba la conectividad desde el proyecto consumidor
Los componentes de Private Service Connect ya están configurados en Project A y Project B. Usa la IP del endpoint en Project A para acceder al servicio nginx de Project B.
La prueba confirma que las instancias en redes superpuestas pueden comunicarse de forma privada a través del endpoint de Private Service Connect.
Este ejemplo muestra cómo usar Private Service Connect para publicar y consumir servicios de forma segura en redes superpuestas.
El tráfico se mantiene íntegramente dentro de Google Cloud y ofrece un acceso orientado a servicios entre consumidores y productores, con control granular sobre cómo se accede a cada servicio.
Conoce más sobre Private Service Connect en la página del producto.
\n'yum\ install\ epel-release
Crea un managed instance group en Project B.
Una vez creado, el managed instance group lanza una instancia en la zona de destino.
Conéctate por SSH a la instancia y verifica el estado del servicio nginx.
Crea una instancia de prueba de conectividad en Project A.
Las redes de Project A y Project B no tienen conectividad interna entre sí, por lo que la instancia de Project A no puede acceder al servicio que corre en Project B.
Tampoco se permite VPC peering, debido a la superposición de rangos en la red predeterminada.
Configura el balanceador de carga interno
Private Service Connect requiere un balanceador de carga interno para exponer el servicio mediante un service attachment. Para esta configuración crearemos un balanceador de carga TCP interno en Project B.
Crea un nuevo health check HTTP regional para verificar la conectividad HTTP a las VMs por el puerto 80.
Crea el backend service para el tráfico HTTP.
Agrega el instance group del servicio nginx al backend service.
Crea una forwarding rule para el backend service.
Configura una regla de firewall que permita los health checks del balanceador de carga.
Publica los servicios en el proyecto productor
Publica el servicio en Project B, el proyecto productor, para que los consumidores en otras redes VPC puedan conectarse y acceder al servicio de forma privada y segura.
Reserva una subred para Private Service Connect. El rango de esta subred no debe superponerse con la red predeterminada.
Publica el servicio nginx hacia Project A con aprobación explícita del proyecto.
Puedes controlar la lista de consumidores que pueden acceder a los servicios publicados, ya sea con aprobación automática o manual. Consulta Publicar servicios con Private Service Connect.
Configura una regla de firewall que permita a Private Service Connect acceder a las instancias de destino.
Configura el endpoint en el proyecto consumidor
Un endpoint en el proyecto consumidor se conecta a los servicios de la red VPC del productor mediante una forwarding rule de Private Service Connect.
Cuando creas un endpoint, este se registra automáticamente en Service Directory, usando el namespace que elijas o el predeterminado, goog-psc-default.
Para que el endpoint esté disponible desde más de una región, activa el global access. El global access se encuentra en Preview.
Reserva una dirección IP interna para asignarla al endpoint.
Crea una forwarding rule para conectar el endpoint con el service attachment de Project B.
Prueba la conectividad desde el proyecto consumidor
Los componentes de Private Service Connect ya están configurados en Project A y Project B. Usa la IP del endpoint en Project A para acceder al servicio nginx de Project B.
La prueba confirma que las instancias en redes superpuestas pueden comunicarse de forma privada a través del endpoint de Private Service Connect.
Este ejemplo muestra cómo usar Private Service Connect para publicar y consumir servicios de forma segura en redes superpuestas.
El tráfico se mantiene íntegramente dentro de Google Cloud y ofrece un acceso orientado a servicios entre consumidores y productores, con control granular sobre cómo se accede a cada servicio.
Conoce más sobre Private Service Connect en la página del producto.
\n'yum\ -y\ install\ nginx
Crea un managed instance group en Project B.
Una vez creado, el managed instance group lanza una instancia en la zona de destino.
Conéctate por SSH a la instancia y verifica el estado del servicio nginx.
Crea una instancia de prueba de conectividad en Project A.
Las redes de Project A y Project B no tienen conectividad interna entre sí, por lo que la instancia de Project A no puede acceder al servicio que corre en Project B.
Tampoco se permite VPC peering, debido a la superposición de rangos en la red predeterminada.
Configura el balanceador de carga interno
Private Service Connect requiere un balanceador de carga interno para exponer el servicio mediante un service attachment. Para esta configuración crearemos un balanceador de carga TCP interno en Project B.
Crea un nuevo health check HTTP regional para verificar la conectividad HTTP a las VMs por el puerto 80.
Crea el backend service para el tráfico HTTP.
Agrega el instance group del servicio nginx al backend service.
Crea una forwarding rule para el backend service.
Configura una regla de firewall que permita los health checks del balanceador de carga.
Publica los servicios en el proyecto productor
Publica el servicio en Project B, el proyecto productor, para que los consumidores en otras redes VPC puedan conectarse y acceder al servicio de forma privada y segura.
Reserva una subred para Private Service Connect. El rango de esta subred no debe superponerse con la red predeterminada.
Publica el servicio nginx hacia Project A con aprobación explícita del proyecto.
Puedes controlar la lista de consumidores que pueden acceder a los servicios publicados, ya sea con aprobación automática o manual. Consulta Publicar servicios con Private Service Connect.
Configura una regla de firewall que permita a Private Service Connect acceder a las instancias de destino.
Configura el endpoint en el proyecto consumidor
Un endpoint en el proyecto consumidor se conecta a los servicios de la red VPC del productor mediante una forwarding rule de Private Service Connect.
Cuando creas un endpoint, este se registra automáticamente en Service Directory, usando el namespace que elijas o el predeterminado, goog-psc-default.
Para que el endpoint esté disponible desde más de una región, activa el global access. El global access se encuentra en Preview.
Reserva una dirección IP interna para asignarla al endpoint.
Crea una forwarding rule para conectar el endpoint con el service attachment de Project B.
Prueba la conectividad desde el proyecto consumidor
Los componentes de Private Service Connect ya están configurados en Project A y Project B. Usa la IP del endpoint en Project A para acceder al servicio nginx de Project B.
La prueba confirma que las instancias en redes superpuestas pueden comunicarse de forma privada a través del endpoint de Private Service Connect.
Este ejemplo muestra cómo usar Private Service Connect para publicar y consumir servicios de forma segura en redes superpuestas.
El tráfico se mantiene íntegramente dentro de Google Cloud y ofrece un acceso orientado a servicios entre consumidores y productores, con control granular sobre cómo se accede a cada servicio.
Conoce más sobre Private Service Connect en la página del producto.
Una vez creado, el managed instance group lanza una instancia en la zona de destino.
Conéctate por SSH a la instancia y verifica el estado del servicio nginx.
Crea una instancia de prueba de conectividad en Project A.
Las redes de Project A y Project B no tienen conectividad interna entre sí, por lo que la instancia de Project A no puede acceder al servicio que corre en Project B.
Tampoco se permite VPC peering, debido a la superposición de rangos en la red predeterminada.
Configura el balanceador de carga interno
Private Service Connect requiere un balanceador de carga interno para exponer el servicio mediante un service attachment. Para esta configuración crearemos un balanceador de carga TCP interno en Project B.
Crea un nuevo health check HTTP regional para verificar la conectividad HTTP a las VMs por el puerto 80.
Crea el backend service para el tráfico HTTP.
Agrega el instance group del servicio nginx al backend service.
Crea una forwarding rule para el backend service.
Configura una regla de firewall que permita los health checks del balanceador de carga.
Publica los servicios en el proyecto productor
Publica el servicio en Project B, el proyecto productor, para que los consumidores en otras redes VPC puedan conectarse y acceder al servicio de forma privada y segura.
Reserva una subred para Private Service Connect. El rango de esta subred no debe superponerse con la red predeterminada.
Publica el servicio nginx hacia Project A con aprobación explícita del proyecto.
Puedes controlar la lista de consumidores que pueden acceder a los servicios publicados, ya sea con aprobación automática o manual. Consulta Publicar servicios con Private Service Connect.
Configura una regla de firewall que permita a Private Service Connect acceder a las instancias de destino.
Configura el endpoint en el proyecto consumidor
Un endpoint en el proyecto consumidor se conecta a los servicios de la red VPC del productor mediante una forwarding rule de Private Service Connect.
Cuando creas un endpoint, este se registra automáticamente en Service Directory, usando el namespace que elijas o el predeterminado, goog-psc-default.
Para que el endpoint esté disponible desde más de una región, activa el global access. El global access se encuentra en Preview.
Reserva una dirección IP interna para asignarla al endpoint.
Crea una forwarding rule para conectar el endpoint con el service attachment de Project B.
Prueba la conectividad desde el proyecto consumidor
Los componentes de Private Service Connect ya están configurados en Project A y Project B. Usa la IP del endpoint en Project A para acceder al servicio nginx de Project B.
La prueba confirma que las instancias en redes superpuestas pueden comunicarse de forma privada a través del endpoint de Private Service Connect.
Este ejemplo muestra cómo usar Private Service Connect para publicar y consumir servicios de forma segura en redes superpuestas.
El tráfico se mantiene íntegramente dentro de Google Cloud y ofrece un acceso orientado a servicios entre consumidores y productores, con control granular sobre cómo se accede a cada servicio.
Conoce más sobre Private Service Connect en la página del producto.