Configura la conectividad de Vertex AI a otras redes

Asegúrate de estar familiarizado con el material en Intercambios de tráfico entre VPC antes de leer esta guía.

De forma predeterminada, la configuración de intercambio de tráfico solo permite que la red de IA de Vertex con intercambio de tráfico llegue a los extremos de las subredes locales. La exportación de rutas personalizadas permite que la red del productor llegue a otras redes a las que tu red tiene rutas estáticas o dinámicas.

Debido a que el intercambio de tráfico transitivo no es compatible, las conexiones de Vertex AI no pueden llegar a los extremos en otras redes que intercambian tráfico de forma directa con tu red, incluso con la opción “Exportar rutas personalizadas” habilitada. En el ejemplo que se muestra en el siguiente diagrama, los paquetes pueden recorrer la conexión de intercambio de tráfico n° 1, pero no la conexión de intercambio de tráfico n° 2.

Con intercambio de tráfico transitivo

Para permitir que Vertex AI llegue a la Red de usuario n° 2, reemplaza la Conexión de intercambio de tráfico n° 2 por la VPN n.o 2 como se muestra en el siguiente diagrama.

Sin intercambio de tráfico transitivo

La habilitación de las rutas personalizadas en la conexión de intercambio de tráfico n° 1 permite que los paquetes de IP de la red de Vertex AI lleguen a la Red de usuario n°2.

Para permitir que los paquetes de respuesta de la Red de usuario n° 2 se enruten a la Red de Vertex AI, la ruta de retorno también debe existir en la tabla de enrutamiento para la Red de usuario n° 2. Las rutas VPN se intercambian con el protocolo de puerta de enlace fronteriza (BGP) en Cloud Routers. Podemos personalizar la configuración de BGP en Usuario n° 1 para anunciar una ruta al rango de redes de Vertex AI de 10.1.0.0/16 a su Red de usuario n° 2 de intercambio de tráfico.

Ten en cuenta que puedes editar ambos lados de la configuración de BGP de VPN n° 1 para permitir que la red local y la red de Vertex AI aprendan rutas entre sí. Debido a que no hay transmisión de paquetes de ruta de reenvío desde la red de Vertex AI ni los paquetes de respuesta a través de conexiones de intercambio de tráfico secuenciales con respecto a ninguna red, ninguno de estos intentos de reenvío se bloquean explícitamente.

Configura la conectividad de Vertex AI a Internet

Si no se especifica ninguna red cuando se inicia una carga de trabajo, esta se ejecuta en un proyecto del productor independiente administrado por Google.

Si se especifica una red, la carga de trabajo se ejecuta en un proyecto de productor que intercambia tráfico con el proyecto del consumidor.

De forma predeterminada, la red de Vertex AI tiene su propia ruta a Internet y la red del productor tiene su propia ruta predeterminada a Internet.

Para forzar que las conexiones salientes de la red del productor se enruten a través de tu red, puedes habilitar los Controles del servicio de VPC para intercambios de tráfico. Ten en cuenta que esta es una configuración independiente de los Controles del servicio de VPC.

Habilitar los Controles del servicio de VPC para el intercambio de tráfico provoca los siguientes cambios en la red de Vertex AI:

  • Borra la ruta de Internet predeterminada.
  • Crea una ruta para el destino 199.36.153.4/30 con el siguiente salto de puerta de enlace de Internet predeterminado.
  • Crea una zona privada administrada por Cloud DNS para *.googleapis.com con registros adecuados a fin de asignar nombres de host a una de esas cuatro direcciones.
  • Autoriza esa zona para que la use la red de VPC servicenetworking.

Con este cambio, puedes exportar la ruta predeterminada desde tu red para asegurarte de que las conexiones salientes a Internet se enruten a través de tu red de VPC. Este cambio también te permite aplicar las políticas necesarias al tráfico saliente de la IA de Vertex.

Para consultar el estado de los Controles del servicio de VPC para las vinculaciones, ejecuta el siguiente comando:

gcloud services vpc-peerings get-vpc-service-controls \
  --network YOUR_NETWORK

Se mostrará enabled: true si la configuración está habilitada y una lista vacía ({}) si está inhabilitada.

Trabaja con los Controles del servicio de VPC

Si se especifica una red para la carga de trabajo y los Controles del servicio de VPC están habilitados, la carga de trabajo se ejecuta en una red de productor que intercambia tráfico con el proyecto del consumidor y que está sujeta a las mismas políticas como la red del consumidor.

Si estas políticas bloquean el tráfico saliente, la carga de trabajo de manera similar no podrá acceder a Internet. En este caso, debes seguir los pasos de la sección anterior para forzar que el tráfico saliente de la carga de trabajo pase por una instancia de NAT en tu red de VPC.

Configura la conectividad de Vertex AI a través de proxies

Otro patrón para controlar la IP saliente de Vertex AI es forzar las conexiones salientes de las cargas de trabajo para que pasen por un proxy web que controlas. Esto también permite la inspección de conexiones salientes para verificar el cumplimiento.

Sin embargo, el uso de un proxy de terceros obliga al usuario a administrar el certificado del proxy para los reclamos de autenticación. Además, es posible que estos proxies no propongan una lista de conjuntos de algoritmos de cifrado que se interseca con lo que esperan los SDK y las APIs de Vertex AI.

Google Cloud ahora ofrece un proxy web seguro para facilitar este patrón. Ahora puedes seguir la guía de inicio rápido Cómo implementar una instancia de Proxy web seguro y adaptar tus cargas de trabajo para usarlas en las conexiones de salida. Parece que estas conexiones se originan en la dirección IP de origen del proxy.

Si la biblioteca de KFP aún no está instalada en la imagen del componente, la canalización intenta instalarla antes de ejecutar cualquier código en el que hayas especificado un proxy.

Si la canalización depende del proxy para instalar paquetes desde Internet, este intento fallará y es posible que veas un error como el siguiente:

Could not find a version that satisfies the requirement kfp==2.7.0

En casos como este, cuando no puedes instalar KFP antes de ejecutar tu código, debes usar una imagen con KFP ya instalada.

Puedes agregar KFP a cualquier imagen base y enviarla a tu repositorio.

En el siguiente ejemplo de Dockerfile, se agrega KFP a la imagen base de python:3.8.

FROM python:3.8
RUN pip install kfp==2.7.0

Luego, puedes configurar la canalización @component para usar esta imagen:

@component(base_image="$PATH_TO_YOUR_REPOSITORY:YOUR_IMAGE")

Una vez que el componente de canalización se está ejecutando, tu código puede instalar otros paquetes libremente si pasa por el proxy. En el siguiente ejemplo, se instala numpy a través de un proxy en https://10.10.10.10:443.

import subprocess
subprocess.call(['pip', 'install', '--proxy', 'https://10.10.10.10:443', 'numpy'])`

Configura listas de entidades permitidas para el acceso a la API

Para las transacciones entre las cargas de trabajo de Vertex AI y las APIs de Google, debes permitir el acceso de las cargas de trabajo a los rangos de IP que usan las APIs de Google. Para ello, puedes ejecutar la secuencia de comandos proporcionada para mostrar las direcciones IP de los dominios predeterminados.