Los Controles del servicio de VPC pueden ayudarte a mitigar el riesgo de robo de datos de Vertex AI. Usa los Controles del servicio de VPC para crear un perímetro de servicio que proteja los recursos y datos que especifiques. Por ejemplo, cuando usas los Controles del servicio de VPC para proteger Vertex AI, los siguientes artefactos no pueden salir de tu perímetro de servicio:
- Datos de entrenamiento de un modelo de AutoML o un modelo personalizado
- Modelos que creaste
- Modelos que buscaste con Neural Architecture Search
- Solicitudes de inferencias en línea
- Resultados de una solicitud de inferencia por lotes
- Modelos de Gemini
Controla el acceso a las APIs de Google
Las APIs de Vertex AI, como se describe en Cómo acceder a Vertex AI desde entornos locales y de varias nubes, abarcan una variedad de opciones de accesibilidad, como Internet pública, Private Service Connect para las APIs de Google y Acceso privado a Google.
Acceso público
De forma predeterminada, se puede acceder a estas APIs públicas desde Internet. Sin embargo, se requieren permisos de IAM para usarlas. Si bien las funciones como Private Service Connect para las APIs de Google y el Acceso privado a Google facilitan la comunicación privada a través de arquitecturas de redes híbridas, no eliminan la accesibilidad a Internet pública para las APIs de Vertex AI.
Para establecer un control detallado sobre el acceso a la API y restringir explícitamente la exposición a Internet pública, la implementación de los Controles del servicio de VPC se vuelve esencial. Cuando estableces un perímetro de Controles del servicio de VPC (VPC-SC) y agregas la API de Vertex AI a sus servicios protegidos, se bloquea automáticamente todo el acceso a Internet público a tu instancia de Vertex AI. Como resultado, se les deniega el acceso a los usuarios que intentan acceder a los servicios de Vertex AI de forma programática o con la consola de Google Google Cloud , a menos que se incluyan en una lista de entidades permitidas.
Para restablecer el acceso a las fuentes autorizadas fuera del perímetro (por ejemplo, los usuarios de tus oficinas corporativas), consulta Permite el acceso a extremos públicos a recursos protegidos desde fuera de un perímetro de Controles del servicio de VPC para obtener instrucciones de implementación.
Acceso privado
Las organizaciones que necesitan restringir las APIs públicas de Google al acceso privado pueden usar los Controles del servicio de VPC en combinación con Private Service Connect para las APIs de Google (paquete de Controles del servicio de VPC) o el Acceso privado a Google. Cuando se implementan a través de redes híbridas y dentro de Google Cloud, ambas opciones habilitan el acceso privado a las APIs de Google desde las instalaciones locales. Sin embargo, Private Service Connect para las APIs de Google también ofrece flexibilidad para definir una dirección IP personalizada y un nombre de extremo de DNS.
Como práctica recomendada, usa la IP virtual (VIP) restringida con Private Service Connect para las APIs de Google o el Acceso privado a Google para proporcionar una ruta de red privada para las solicitudes a los servicios de Google Cloud sin exponer las solicitudes a Internet. La VIP restringida admite todas las APIs que los Controles del servicio de VPC pueden proteger y que requieren consideraciones para las redes locales y de VPC. A continuación, se incluyen algunos ejemplos:
- Permite el acceso de varias nubes a recursos protegidos desde un extremo privado fuera de un perímetro de Controles del servicio de VPC
- Aprende a usar un extremo de las APIs de Google de PSC del cliente (ejemplo de red de VPC)
- Ejemplo de red local
Controla el acceso a la API a través del acceso privado a servicios
Las siguientes APIs de Vertex AI implementadas con acceso privado a servicios requieren configuración de red adicional cuando se implementan en un entorno protegido con Controles del servicio de VPC:
- Vector Search (consulta de índices)
- Entrenamiento personalizado (plano de datos)
- Vertex AI Pipelines
- Extremos de predicción en línea privados
Por ejemplo, Vertex AI Pipelines es un servicio administrado por Google (productor) que se implementa en un proyecto y una red de VPC de un solo arrendatario con la capacidad de escalar los servicios admitidos según los requisitos del consumidor. La comunicación entre las redes del productor y del consumidor se establece con el intercambio de tráfico entre redes de VPC, excepto la salida de Internet, que se enruta a través de la red del productor.
En la red del productor, existe una ruta predeterminada que permite la salida a Internet, además del acceso sin restricciones a las APIs de Google. Para actualizar la red del productor de modo que admita la VIP restringida, se debe habilitar VPC Service Controls for peerings, lo que realiza las siguientes acciones en todos los servicios compatibles implementados en la red del productor de Herramientas de redes de servicios:
- Quita la ruta IPv4 predeterminada (destino
0.0.0.0/0
, siguiente salto de puerta de enlace de Internet predeterminada). - Crea zonas privadas administradas por Cloud DNS y autoriza esas zonas para la red de VPC del productor de servicios. Las zonas incluyen
googleapis.com
,pkg.dev
,gcr.io
y otros nombres de host o dominios necesarios para las APIs y los servicios de Google que son compatibles con los Controles del servicio de VPC. - Los datos de registro en las zonas resuelven todos los nombres de host en
199.36.153.4
,199.36.153.5
,199.36.153.6
y199.36.153.7
.
Un método alternativo para quitar la ruta predeterminada de la red del productor sin afectar los servicios existentes administrados por Google es usar la VPN con alta disponibilidad sobre Cloud Interconnect, que consta de los siguientes pasos:
- Implementa una red de VPC de servicios además de la VPN con alta disponibilidad en la red de VPC del consumidor.
- Implementa servicios administrados por Google en la red de VPC de servicios.
- Habilita los Controles del servicio de VPC para el intercambio de tráfico.
- Anuncia la subred de acceso a servicios privados como un anuncio de ruta personalizado desde Cloud Router si los servicios administrados requieren accesibilidad local.
- Actualiza el intercambio de tráfico entre redes de VPC de las Herramientas de redes de servicios con la opción export custom routes.
Compatibilidad con los Controles del servicio de VPC para las canalizaciones de ajuste de la IA generativa
La compatibilidad con los Controles del servicio de VPC se proporciona en la canalización de ajuste de los siguientes modelos:
text-bison for PaLM 2
BERT
T5
- La familia de modelos
textembedding-gecko
.
Usa los Controles del servicio de VPC con Vertex AI Pipelines
El perímetro de servicio bloquea el acceso de Vertex AI a las APIs y los servicios de terceros en Internet. Si usas componentes de canalización deGoogle Cloud o creas tus propios componentes de canalización personalizados para usarlos con Vertex AI Pipelines, no puedes instalar dependencias de PyPI desde el registro público del índice de paquetes de Python (PyPI). En cambio, debes realizar una de las siguientes acciones:
Usar contenedores personalizados
Como práctica recomendada de software de producción, los autores de componentes deben usar componentes de Python alojados en contenedores y compilar las dependencias en su imagen de contenedor, de modo que no se requiera una instalación activa durante la ejecución de una canalización. Una forma de hacerlo es la siguiente:
- Crea tu propia imagen de contenedor con el SDK de Kubeflow Pipelines y otros paquetes preinstalados. Por ejemplo, puedes usar
us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest
como la capa base de tu imagen y agregar una capa adicional para instalar los paquetes durante el tiempo de compilación del contenedor. Actualiza el código de definición del componente para establecer la ruta de acceso
base_image
y la marcainstall_kfp_package
enFalse
. Esta marca indica al compilador de KFP que no inserte un comando pip install kfp en la línea de comandos del contenedor, ya que el paquete del SDK de Kubeflow Pipelines ya está instalado en la imagen. Por ejemplo:@component( base_image='gcr.io/deeplearning-platform-release/tf-cpu.2-17', install_kfp_package=False, ) def my_component(...): ...
Instala paquetes desde un repositorio de Artifact Registry
Como alternativa, puedes crear un repositorio de Artifact Registry en tu proyecto, almacenar paquetes de Python en él y configurar tu entorno de Vertex AI para que se instale desde él, como se describe en esta sección. Para obtener más información, consulta Administra paquetes de Python.
Configura roles y permisos
- La cuenta de servicio de tu entorno de Vertex AI debe tener el rol de
iam.serviceAccountUser
. - Si instalas paquetes personalizados de PyPI desde un repositorio en la red de tu proyecto y este repositorio no tiene una dirección IP pública, haz lo siguiente:
- Asigna permisos para acceder a este repositorio a la cuenta de servicio del entorno.
- Asegúrate de que la conectividad a este repositorio esté configurada en tu proyecto.
Crea el repositorio
- Crea un repositorio de Artifact Registry en modo de VPC en tu proyecto.
- Almacena los paquetes de Python necesarios en el repositorio.
Configura el entorno de Vertex AI para instalar desde el repositorio
Para instalar paquetes personalizados de PyPI desde uno o más repositorios de Artifact Registry, realiza una llamada similar a la siguiente a @dsl.component
:
@dsl.component(packages_to_install=["tensorflow"],
pip_index_urls=['http://myprivaterepo.com/simple', 'http://pypi.org/simple'],)
def hello_world(text: str) -> str:
import my_package
import tensorflow
return my_package.hello_world(text)
Usa los Controles del servicio de VPC con la interfaz de PSC
Las siguientes APIs de Vertex AI implementadas con la interfaz de Private Service Connect requieren configuración de red adicional cuando se implementan en un entorno protegido con Controles del servicio de VPC:
- Entrenamiento personalizado (plano de datos)
- Vertex AI Pipelines
- Extremos de inferencia en línea privados
- Vertex AI Agent Engine
La capacidad del servicio de los productores de Vertex AI para acceder a Internet público depende de la configuración de seguridad de tu proyecto, específicamente si usas o no los Controles del servicio de VPC:
Sin Controles del servicio de VPC: El arrendatario administrado por Google que aloja Vertex AI conserva su acceso predeterminado a Internet. Este tráfico saliente sale directamente del entorno seguro administrado por Google en el que se ejecuta tu servicio de productor. La excepción a este comportamiento es Vertex AI Agent Engine, que no proporciona salida a Internet. En cambio, debes implementar una VM de proxy con una dirección RFC 1918 para la salida a Internet.
Con los Controles del servicio de VPC: Cuando tu proyecto está incluido en un perímetro de los Controles del servicio de VPC (VPC-SC), se bloquea el acceso predeterminado a Internet del entorno administrado por Google que aloja Vertex AI. Esta restricción es una medida de seguridad diseñada para evitar el robo de datos. Para permitir que Vertex AI acceda a Internet pública en esta situación, debes configurar de forma explícita una ruta de salida segura que enrute el tráfico a través de tu red de VPC.
El método recomendado implica lo siguiente:
- Implementa un servidor proxy dentro del perímetro de tu VPC en una subred RFC 1918.
- Crear una puerta de enlace de Cloud NAT para permitir que la VM de proxy acceda a Internet
- Definir el servidor proxy (dirección IP o FQDN) en tu entorno de ejecución
No hay un proxy de red preferido o prescrito para esta tarea. Puedes usar cualquier solución adecuada. Algunos ejemplos son proxy de Squid, HAProxy, Envoy y TinyProxy.
Creación del perímetro de servicio
Para obtener una descripción general de cómo crear un perímetro de servicio, consulta Crea un perímetro de servicio en la documentación de Controles del servicio de VPC.
Agrega servicios restringidos a tu perímetro
Cuando establezcas un perímetro de servicio, te recomendamos que incluyas todos los servicios restringidos como una práctica recomendada de seguridad. Este enfoque integral ayuda a minimizar las posibles vulnerabilidades y el acceso no autorizado. Sin embargo, es posible que tu organización tenga requisitos específicos enfocados en proteger Vertex AI y sus APIs interconectadas. En esos casos, tienes la flexibilidad de seleccionar e incluir solo las APIs específicas de Vertex AI que son esenciales para tus operaciones.
Las APIs de Vertex AI que puedes incorporar a tu perímetro de servicio incluyen las siguientes:
- La API de Vertex AI admite los siguientes servicios y funciones:
- Inferencia por lotes
- Conjuntos de datos
- Vertex AI Feature Store (entrega en línea de Bigtable)
- Vertex AI Feature Store (entrega en línea optimizada)
- IA generativa en Vertex AI (Gemini)
- Vertex AI Model Registry
- Inferencia en línea
- Vector Search (creación de índices)
- Vector Search (consulta de índices)
- Entrenamiento personalizado (plano de control)
- Entrenamiento personalizado (plano de datos)
- Vertex AI Pipelines
- Extremos de inferencia en línea privados
- Colab Enterprise
- Vertex AI Agent Engine
- La API de Notebooks admite el siguiente servicio:
- Vertex AI Workbench
Limitaciones
Las siguientes limitaciones se aplican cuando usas los Controles del servicio de VPC:
- Para el etiquetado de datos, debes agregar las direcciones IP de los etiquetadores a un nivel de acceso.
- En el caso de los componentes de Google Cloud canalización, estos inician contenedores que verifican su imagen base en busca de todos los requisitos.
El paquete de KFP, así como cualquier paquete enumerado en el argumento
packages_to_install
, son los requisitos para un contenedor. Si alguno de los requisitos especificados no está presente en la imagen base (ya sea proporcionada o personalizada), el componente intenta descargarlos del Índice de paquetes de Python (PyPI). Dado que el perímetro de servicio bloquea el acceso de Vertex AI a las APIs y los servicios de terceros en Internet, la descarga falla conConnection to pypi.org timed out
. Para conocer las formas de evitar este error, consulta Usa los Controles del servicio de VPC con Vertex AI Pipelines. - Cuando usas los Controles del servicio de VPC con kernels personalizados en Vertex AI Workbench, debes configurar el intercambio de tráfico de DNS a fin de enviar solicitudes para
*.notebooks.googleusercontent.com
a la subred 199.36.153.8/30 (private.googleapis.com
) en lugar de 199.36.153.4/30 (restricted.googleapis.com
). - Cuando se usan los Controles del servicio de VPC con Vertex AI Inference, los extremos se deben crear después de que el proyecto se agregue al perímetro de servicio. Si se crea un extremo en un proyecto que no forma parte de un perímetro de servicio y, luego, ese proyecto se agrega a un perímetro de servicio, se producirá un error al intentar implementar un modelo en ese extremo. Si el extremo es un extremo público compartido, también fallará el envío de una solicitud al extremo. Del mismo modo, si intentas implementar un modelo en un extremo, se producirá un error si el extremo se creó en un proyecto que formaba parte de un perímetro de servicio y, luego, se quitó el proyecto.
- Cuando usas los Controles del servicio de VPC con Vertex AI Agent Engine, el proyecto debe formar parte de un perímetro de servicio antes de que implementes el agente. Si se implementa un agente antes de que se agregue el proyecto a un perímetro, los Controles del servicio de VPC no protegerán el agente, y este seguirá teniendo acceso a Internet pública.
¿Qué sigue?
- Mira el video Controles del servicio de VPC: Cómo segmentar tus proyectos de la nube en una VPC compartida.
- Mira el video Cómo usar el modo de ejecución de prueba en los Controles del servicio de VPC.
- Mira el video Controles del servicio de VPC: Compatibilidad con IP privadas para crear controles de acceso detallados.
- Obtén más información sobre los controles de servicio de VPC.
- Obtén más información sobre los roles requeridos de los Controles del servicio de VPC.
- Obtén información para solucionar problemas de los Controles del servicio de VPC.
- Obtén más información para implementar una VM de proxy para acceder a Internet desde la VPC del cliente.