Controla la entrada privada y la salida de Internet de una zona de pruebas de Agent Platform con Private Service Connect (PSC-E / PSC-I). Estos controles hacen que la zona de pruebas cumpla con los Controles del servicio de VPC dentro o fuera de un perímetro.
Descripción general
Los Controles del servicio de VPC te permiten definir un perímetro de servicio que aísla los Cloud de Confiance by S3NS recursos para mitigar el riesgo de robo de datos. La zona de pruebas de Gemini Enterprise Agent Platform proporciona a tus agentes un entorno de procesamiento seguro y aislado para ejecutar código no confiable, controlar un navegador web (uso de la computadora) o ejecutar una imagen de contenedor personalizada. La zona de pruebas expone un plano de datos interactivo y realiza llamadas salientes, por lo que se rige por dos controles de Private Service Connect: entrada privada (PSC-E) y control de salida (PSC-I).
Cuando ejecutas la zona de pruebas dentro de un perímetro, lo siguiente permanece protegido dentro de tu límite:
- Datos que tu agente lee o escribe durante una sesión de zona de pruebas (archivos en el disco de la zona de pruebas, estado en la memoria)
- Instantáneas de la zona de pruebas que capturan el disco y el estado en la memoria, y se almacenan automáticamente en un bucket de Cloud Storage
- Solicitudes y respuestas intercambiadas con el plano de datos de la zona de pruebas (por ejemplo, comandos de uso de la computadora y capturas de pantalla)
- Imágenes de contenedor personalizadas extraídas de Artifact Registry
- Llamadas que la zona de pruebas realiza a las APIs de Google (por ejemplo, Cloud Storage o Agent Platform)
También puedes configurar el control de entrada y salida sin un perímetro de Controles del servicio de VPC, ya que PSC-E (entrada privada) y PSC-I (salida) son lo que hace que una zona de pruebas cumpla con los Controles del servicio de VPC. Para configurar la entrada y la salida sin un perímetro de Controles del servicio de VPC, ve a Controla la salida de la zona de pruebas con una interfaz de Private Service Connect (PSC-I).
Limitaciones y consideraciones
- La entrada privada se puede habilitar para exactamente un proyecto de consumidor, y debe ser el mismo proyecto de usuario en el que se ejecuta la zona de pruebas.
- Solo se admite la resolución privada a través del intercambio de tráfico de DNS; el reenvío de DNS público está inhabilitado para evitar la tunelización.
- El registro de solicitudes y respuestas no está disponible para los recursos protegidos por los Controles del servicio de VPC.
- Se deniega el acceso programático y a la consola desde fuera del perímetro, a menos que el llamador esté en un nivel de acceso.
Antes de comenzar
- Crea o identifica el perímetro de servicio de Controles del servicio de VPC que contiene tu proyecto. Para que los Controles del servicio de VPC protejan las zonas de pruebas, tu Cloud de Confiance by S3NS proyecto debe estar en el perímetro antes de que crees las zonas de pruebas.
- Habilita la API de Agent Platform (
aiplatform.googleapis.com) en tu proyecto. - Ten una red de VPC en la región en la que ejecutas zonas de pruebas.
- Confirma que tienes los roles necesarios:
- Rol de administrador de Access Context Manager para el perímetro
- Administrador de red de Compute (
roles/compute.networkAdmin) en el proyecto que posee el adjunto de red
Agrega Agent Platform a tu perímetro de servicio
Agrega la API de Agent Platform a la lista de servicios restringidos en tu perímetro de Controles del servicio de VPC. Esto protege Agent Platform (incluido el plano de control de la zona de pruebas) y bloquea el acceso a Internet público a la API, a menos que el llamador esté en un nivel de acceso.
- Abre Controles del servicio de VPC en la Cloud de Confiance consola y edita tu perímetro.
- En Servicios restringidos, agrega API de Vertex AI (
aiplatform.googleapis.com). - Asegúrate de que las dependencias que usa tu zona de pruebas estén en el mismo perímetro, por lo general, Cloud Storage (
storage.googleapis.com) y Artifact Registry (artifactregistry.googleapis.com, para imágenes de contenedor personalizadas). El almacenamiento de instantáneas se controla automáticamente. - Para restablecer el acceso para los usuarios de confianza fuera del perímetro (por ejemplo, tu red corporativa), adjunta un nivel de acceso al perímetro.
Opcional: Configura el acceso privado a las APIs de Google
Dentro del perímetro de Controles del servicio de VPC, la zona de pruebas llega a las APIs de Google de forma privada a través de la dirección IP virtual (VIP) restringida. Desde tus propias redes de VPC y locales, usa también la VIP restringida para que las solicitudes nunca atraviesen la Internet pública.
- Enruta
*.googleapis.coma la VIP restringida199.36.153.4/30y habilita el Acceso privado a Google en las subredes que llaman a las APIs de Google. - Crea zonas privadas de Cloud DNS para
googleapis.com(y, si extraes imágenes,pkg.dev/gcr.io) que se resuelvan en la VIP restringida.
Controla la salida de la zona de pruebas con una interfaz de Private Service Connect (PSC-I)
Para permitir que la zona de pruebas llegue a Internet o a servicios privados, conecta su salida a tu VPC con una interfaz de Private Service Connect y, luego, controla ese tráfico con tus propios controles de salida.
Cada recurso de este paso se crea en el proyecto de usuario que posee la zona de pruebas o en su proyecto host de VPC compartida. La salida se dirige a la única red de VPC y al adjunto de red que estableces en la plantilla.
Crea el adjunto de red
Crea el adjunto de red para la zona de pruebas:
# A dedicated subnet for the PSC interface (minimum /28)
gcloud compute networks subnets create sandbox-psc-subnet \
--network=YOUR_VPC \
--range=10.0.0.0/28 \
--region=REGION
# The network attachment the sandbox connects into
gcloud compute networks network-attachments create sandbox-egress-na \
--region=REGION \
--connection-preference=ACCEPT_AUTOMATIC \
--subnets=sandbox-psc-subnet
Haz referencia al adjunto desde la plantilla de la zona de pruebas
Establece los campos de salida en SandboxEnvironmentTemplate para que la zona de pruebas enrute la salida a través de tu VPC:
from vertexai import Client
client = Client(project="PROJECT_ID", location="REGION",
http_options={"api_version": "v1beta1"})
templates = client.agent_engines.sandboxes.templates
op = templates.create(
name=agent_instance_name,
display_name="cu-vpcsc-template",
config={
"custom_container_environment": {
"custom_container_spec": {"image_uri": "IMAGE_URI"},
"ports": [{"port": 8080, "protocol": "TCP"}],
},
"egress_control_config": {
"internet_access": True, # Enables outbound access from the sandbox. With VPC-SC, that traffic is bridged into your VPC.
"customer_vpc_network":
"projects/PROJECT_ID/global/networks/YOUR_VPC", # The VPC network in your project that egress is bridged into. Checked by VPC-SC at creation time.
"network_attachment":
"projects/PROJECT_ID/regions/REGION/networkAttachments/sandbox-egress-na", # The network attachment that accepts the sandbox's PSC interface.
},
},
)
La interfaz de PSC crea la ruta privada en tu VPC, y la plataforma dirige automáticamente la salida de la zona de pruebas cuando se habilita internet_access.
Para configurar y controlar la ruta fuera de tu VPC, decide si necesitas Internet o solo salida privada:
- Salida de Internet: Para la salida de Internet, se requiere Cloud NAT, además del control de destino con reglas de Cloud Next Generation Firewall (Cloud NGFW) o Secure Web Proxy.
- **Salida solo privada** (accede a los servicios en tu VPC o de forma local, sin Internet): No se requiere Cloud NAT. Solo necesitas rutas, una regla de firewall y el intercambio de tráfico de DNS.
Configura la salida de Internet y controla los destinos
La zona de pruebas ingresa a tu VPC en una dirección interna (RFC 1918), por lo que necesita Cloud NAT para llegar a Internet. Reserva una IP de salida estática si tu lista de entidades permitidas de destinos se basa en la IP de origen.
# Reserve a static egress IP (optional, for destination-side allow-listing)
gcloud compute addresses create sandbox-egress-ip --region=REGION
# Cloud Router + NAT for the region, scoped to the PSC subnet
gcloud compute routers create sandbox-egress-router \
--network=YOUR_VPC --region=REGION
gcloud compute routers nats create sandbox-egress-nat \
--router=sandbox-egress-router --region=REGION \
--nat-external-ip-pool=sandbox-egress-ip \
--nat-custom-subnet-ip-ranges=sandbox-psc-subnet
Para restringir los destinos a los que puede llegar la zona de pruebas a medida que su tráfico transita por tu VPC, elige el nivel de control que necesitas:
Cloud NGFW (nivel de red): Una política de firewall de red global con reglas de permiso (se admiten objetos FQDN) más una denegación predeterminada para todo lo demás:
gcloud compute network-firewall-policies create sandbox-egress-policy --global # Allow only the destinations your agent needs (by FQDN) gcloud compute network-firewall-policies rules create 1000 \ --firewall-policy=sandbox-egress-policy --global-firewall-policy \ --direction=EGRESS --action=allow --layer4-configs=tcp:443 \ --dest-fqdns=api.partner.example.com # Default-deny the rest of egress gcloud compute network-firewall-policies rules create 65000 \ --firewall-policy=sandbox-egress-policy --global-firewall-policy \ --direction=EGRESS --action=deny --layer4-configs=all \ --dest-ip-ranges=0.0.0.0/0 gcloud compute network-firewall-policies associations create \ --firewall-policy=sandbox-egress-policy --global-firewall-policy \ --network=YOUR_VPCSecure Web Proxy (aplicación/L7): Implementa Secure Web Proxy como el punto de inspección de salida en tu VPC para la política compatible con TLS por URL y enruta la salida de la subred de PSC a través de él.
Configura la salida solo privada
Si la zona de pruebas solo necesita servicios privados en tu VPC o de forma local, asegúrate de que tu VPC tenga una ruta al destino, permítela con una regla de firewall de salida de la subred de PSC (10.0.0.0/28) y resuelve el nombre del servicio a través del intercambio de tráfico de DNS.
Configura el intercambio de tráfico de DNS
Proporciona la resolución de nombres de la zona de pruebas a través de tu VPC en lugar de los solucionadores públicos (esto también bloquea el robo de datos de túneles de DNS). Crea una zona privada de Cloud DNS en tu VPC con los registros que necesita la zona de pruebas y, luego, configura el intercambio de tráfico de DNS para que la zona de pruebas resuelva los nombres de esa zona.
Otorga acceso al agente de servicio (VPC compartida)
Si el adjunto de red reside en un proyecto independiente (Proyecto A) del proyecto en el que se ejecuta la zona de pruebas (Proyecto B), otorga al agente de servicio de Agent Platform del Proyecto B el rol de usuario de la red de Compute en el Proyecto A.
# Agent Platform service agent of the project that runs the sandbox
service-PROJECT_NUMBER@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com
# On the project that owns the network attachment
gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \
--role="roles/compute.networkUser"
Reemplaza lo siguiente:
PROJECT_NUMBER: el número del proyecto que ejecuta la zona de pruebasNETWORK_PROJECT_ID: el ID del proyecto que posee el adjunto de red
Habilita la entrada privada con Private Service Connect (PSC-E)
Las cargas de trabajo interactivas exponen un plano de datos al que debe conectarse un cliente. Accede a ese plano de datos a través de un extremo privado de Private Service Connect (PSC-E) en tu VPC en lugar de a través de Internet público.
Declara el proyecto de consumidor permitido
Establece la configuración de entrada en la plantilla con el proyecto de consumidor permitido para conectarse. Solo el mismo proyecto de usuario en el que se ejecuta la zona de pruebas puede tener entrada privada a la VPC de la zona de pruebas.
Conéctate a la zona de pruebas desde una VPC en ese mismo proyecto:
config = {
# ...custom_container_environment, egress_control_config...
"ingress_control_config": {
"private_service_connect_config": {
# Must be the same project the sandbox runs in.
"enable_private_service_connect": True,
}
},
}
Crea el extremo de PSC en tu VPC
Después de crear la zona de pruebas, lee el adjunto de servicio de su información de conexión y segmenta con una regla de reenvío (extremo de PSC) en tu VPC:
# The sandbox returns a service attachment to connect to
service_attachment = sandbox.connection_info.service_attachment
# Reserve an internal IP and create the PSC endpoint
gcloud compute addresses create sandbox-ingress-ip \
--region=REGION --subnet=YOUR_SUBNET
gcloud compute forwarding-rules create sandbox-ingress-ep \
--region=REGION \
--network=YOUR_VPC \
--address=sandbox-ingress-ip \
--target-service-attachment=SERVICE_ATTACHMENT_URI
Los clientes en la VPC de ese proyecto (o a los que se puede acceder a través de ella) ahora se conectan a la zona de pruebas a través de la IP privada del extremo (por ejemplo, un cliente que se conecta a través del WebSocket de la zona de pruebas o el puerto CDP).
¿Qué sigue?
- Lee la descripción general de la zona de pruebas y los contenedores personalizados (BYOC).
- Obtén información sobre cómo funcionan las interfaces de Private Service Connect con el entorno de ejecución de agentes.
- Revisa la solución de problemas de los Controles del servicio de VPC.
- Sigue el codelab de la interfaz de PSC de Agent Engine para obtener un instructivo de salida de extremo a extremo.