1. Introdução
Use o Private Service Connect para estabelecer acesso seguro e privado a modelos implantados no Model Garden da Vertex AI. Em vez de expor um endpoint público, esse método permite implantar o modelo em um endpoint particular da Vertex AI acessível apenas na sua nuvem privada virtual (VPC).
O Private Service Connect cria um endpoint com um endereço IP interno na sua VPC, que se conecta diretamente ao serviço da Vertex AI gerenciado pelo Google que hospeda seu modelo. Isso permite que aplicativos na sua VPC e em ambientes locais (via Cloud VPN ou Interconnect) enviem solicitações de inferência usando IPs particulares. Todo o tráfego de rede permanece na rede do Google, o que aumenta a segurança, reduz a latência e isola completamente o endpoint de serviço do modelo da Internet pública.

O que você vai criar
Neste tutorial, você vai baixar o Gemma 3 do Model Garden, hospedado na inferência on-line da Vertex AI como um endpoint particular acessível pelo Private Service Connect. A configuração completa vai incluir:
- Modelo do Model Garden: você vai selecionar o Gemma 3 no Model Garden da Vertex AI e implantá-lo em um endpoint do Private Service Connect.
- Private Service Connect: você vai configurar um endpoint de consumidor na sua nuvem privada virtual (VPC) com um endereço IP interno na sua própria rede.
- Conexão segura com a Vertex AI: o endpoint do PSC vai segmentar o anexo de serviço gerado automaticamente pela Vertex AI para sua implantação de modelo particular. Isso estabelece uma conexão particular, garantindo que o tráfego entre sua VPC e o endpoint de serviço do modelo não passe pela Internet pública.
- Configuração do cliente na sua VPC: você vai configurar um cliente (por exemplo, VM do Compute Engine) na sua VPC para enviar solicitações de inferência ao modelo implantado usando o endereço IP interno do endpoint do PSC.
Ao final, você terá um exemplo funcional de um modelo do Model Garden sendo veiculado de forma privada, acessível apenas na rede VPC designada.
O que você vai aprender
Neste tutorial, você vai aprender a implantar um modelo do Model Garden da Vertex AI e torná-lo acessível com segurança na sua nuvem privada virtual (VPC) usando o Private Service Connect (PSC). Esse método permite que seus aplicativos na VPC (o consumidor) se conectem de maneira privada ao endpoint do modelo da Vertex AI (o serviço produtor) sem passar pela Internet pública.
Especificamente, você vai aprender a:
- Entenda o PSC para a Vertex AI: como o PSC permite conexões particulares e seguras entre consumidor e produtor. Sua VPC pode acessar o modelo implantado da Model Garden usando endereços IP internos.
- Implantação de um modelo com acesso particular: como configurar um endpoint da Vertex AI para que o modelo do Model Garden use o PSC, transformando-o em um endpoint particular.
- A função do anexo de serviço: quando você implanta um modelo em um endpoint privado da Vertex AI, o Google Cloud cria automaticamente um anexo de serviço em um projeto de locatário gerenciado pelo Google. Esse anexo de serviço expõe o serviço de veiculação de modelos às redes de consumidores.
- Como criar um endpoint do PSC na sua VPC:
- Como extrair o URI exclusivo do anexo de serviço dos detalhes do endpoint da Vertex AI implantado.
- Como reservar um endereço IP interno na sub-rede escolhida da VPC.
- Como criar uma regra de encaminhamento na sua VPC que atua como o endpoint do PSC, segmentando o anexo de serviço da Vertex AI. Esse endpoint torna o modelo acessível pelo IP interno reservado.
- Estabelecer conectividade privada: como o endpoint do PSC na sua VPC se conecta ao anexo de serviço, fazendo uma ponte entre sua rede e o serviço do Vertex AI de maneira segura.
- Envio particular de solicitações de inferência: como enviar solicitações de previsão de recursos (como VMs do Compute Engine) na sua VPC para o endereço IP interno do endpoint do PSC.
- Validação: etapas para testar e confirmar que é possível enviar solicitações de inferência da sua VPC para o modelo implantado do Model Garden usando a conexão particular.
Ao fazer isso, você poderá hospedar modelos do Model Garden que só podem ser acessados na sua infraestrutura de rede particular.
O que é necessário
Projeto do Google Cloud
Permissões do IAM
- Administrador do AI Platform (roles/ml.Admin)
- Administrador de rede do Compute (roles/compute.networkAdmin)
- Administrador de instâncias do Compute (roles/compute.instanceAdmin)
- Administrador de segurança do Compute (roles/compute.securityAdmin)
- Administrador do DNS (roles/dns.admin)
- Usuário do túnel protegido pelo IAP (roles/iap.tunnelResourceAccessor)
- Administrador do Logging (roles/logging.admin)
- Administrador do Notebooks (roles/notebooks.admin)
- Administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin)
- Administrador da conta de serviço (roles/iam.serviceAccountAdmin)
- Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin)
2. Antes de começar
Atualizar o projeto para oferecer suporte ao tutorial
Este tutorial usa $variables para ajudar na implementação da configuração do gcloud no Cloud Shell.
No Cloud Shell, faça o seguinte:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid
Ativação da API
No Cloud Shell, faça o seguinte:
gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"
3. Implantar o modelo
Siga as etapas abaixo para implantar seu modelo do Model Garden
No console do Google Cloud, acesse o Model Garden, pesquise e selecione Gemma 3.

Clique em "Opções de implantação" e selecione "Vertex AI".

No painel "Implantar na Vertex AI", selecione "Avançado". A região e a especificação da máquina pré-preenchidas são selecionadas com base na capacidade disponível. É possível mudar esses valores, mas o codelab foi criado para us-central1.

No painel "Implantar na Vertex AI", verifique se o acesso ao endpoint está configurado como Private Service Connect e selecione seu projeto.

Deixe todos os padrões para outras opções e selecione "Implantar" na parte de baixo. Verifique suas notificações para conferir o status da implantação.

No Model Garden, selecione a região us-central1, que fornece o modelo e o endpoint do Gemma 3. A implantação do modelo leva aproximadamente 5 minutos.

Em 30 minutos, o endpoint vai passar para o status "Ativo" quando for concluído.

Selecione o endpoint para receber e anotar o ID dele.

Abra o Cloud Shell e faça o seguinte para acessar o URI do anexo de serviço do Private Service Connect. Essa string URI é usada pelo consumidor ao implantar um endpoint de consumidor do PSC.
No Cloud Shell, atualize o ID do endpoint e execute o comando a seguir.
gcloud ai endpoints describe [Endpoint ID] --region=us-central1 | grep -i serviceAttachment:
Veja um exemplo abaixo:
user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=us-central1 | grep -i serviceAttachment:
Using endpoint [https://us-central1-aiplatform.googleapis.com/]
serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d
Copie o conteúdo após "serviceAttachment" em uma variável chamada "Service_attachment". Você vai precisar dela mais tarde ao criar a conexão do PSC.
user@cloudshell:$ Service_attachment=projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d
4. Configuração do consumidor
Criar a VPC do consumidor
No Cloud Shell, faça o seguinte:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
Criar a sub-rede da VM do consumidor
No Cloud Shell, faça o seguinte:
gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=us-central1 --enable-private-ip-google-access
Criar a sub-rede do endpoint do PSC
gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1
5. Ativar o IAP
Para permitir que o IAP se conecte às suas instâncias de VM, crie uma regra de firewall que:
- Aplica-se a todas as instâncias de VM que você quer acessar usando o IAP.
- Permite o tráfego de entrada do intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para o encaminhamento de TCP.
No Cloud Shell, crie a regra de firewall do IAP.
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Criar instâncias de VM do consumidor
No Cloud Shell, crie a instância de VM do consumidor, consumer-vm.
gcloud compute instances create consumer-vm \
--project=$projectid \
--machine-type=e2-micro \
--image-family debian-11 \
--no-address \
--shielded-secure-boot \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=consumer-vm-subnet
7. Endpoints do Private Service Connect
O consumidor cria um endpoint do consumidor (regra de encaminhamento) com um endereço IP interno na VPC. Esse endpoint do PSC tem como destino o anexo de serviço do produtor. Os clientes na VPC do consumidor ou na rede híbrida podem enviar tráfego para esse endereço IP interno e acessar o serviço do produtor.
Reserve um endereço IP para o endpoint do consumidor.
No Cloud Shell, crie a regra de encaminhamento.
gcloud compute addresses create psc-address \
--project=$projectid \
--region=us-central1 \
--subnet=pscendpoint-subnet \
--addresses=10.10.10.6
Verifique se o endereço IP está reservado
No Cloud Shell, liste o endereço IP reservado.
gcloud compute addresses list
O endereço IP 10.10.10.6 vai aparecer reservado.

Crie o endpoint do consumidor especificando o URI do anexo de serviço, target-service-attachment, que você capturou na etapa anterior, seção "Implantar modelo".
No Cloud Shell, descreva o anexo de rede.
gcloud compute forwarding-rules create psc-consumer-ep \
--network=consumer-vpc \
--address=psc-address \
--region=us-central1 \
--target-service-attachment=$Service_attachment \
--project=$projectid
Verifique se o anexo de serviço aceita o endpoint
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=us-central1 \
Na resposta, verifique se o status "ACCEPTED" aparece no campo "pscConnectionStatus".

8. Teste da VM do consumidor
No Cloud Shell, siga estas etapas para dar acesso à VM do consumidor à API Vertex Model Garden.
SSH na VM do consumidor

Reautentique com o Application Default Credentials e especifique os escopos da Vertex AI.
gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform
Use a tabela abaixo para gerar um comando CURLl e ajuste com base no seu ambiente.
Atributo | Valor |
Protocolo | HTTP |
Local | us-central1 |
Endpoint de previsão on-line | 2133539641536544768 |
ID do projeto | test4-473419 |
Modelo | gemma-3-12b-it |
IP do endpoint do Private Service Connect | 10.10.10.6 |
Mensagens | [{"role": "user","content": "O que pesa mais: 1 quilo de penas ou de pedras?"}] |
Atualize e execute o comando curl com base nos detalhes dos seus ambientes:
curl -k -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" http://[PSC-IP]/v1/projects/[Project-ID]/locations/us-central1/endpoints/[Predictions Endpoint]/chat/completions -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'
Exemplo:
curl -k -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" http://10.10.10.6/v1/projects/test4-473419/locations/us-central1/endpoints/2133539641536544768/chat/completions -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'
RESULTADO FINAL: SUCESSO!!!
O resultado que você vai ver é a previsão da Gemma 3 na parte de baixo da saída. Isso mostra que você conseguiu acessar o endpoint da API de maneira privada pelo endpoint do PSC.
Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null
9. Limpar
No Cloud Shell, exclua os componentes do tutorial.
gcloud ai endpoints undeploy-model ENDPOINT_ID --deployed-model-id=DEPLOYED_MODEL_ID --region=us-central1 --quiet
gcloud ai endpoints delete $ENDPOINT_ID --project=$projectid --region=us-central1 --quiet
gcloud ai models delete $MODEL_ID --project=$projectid --region=us-central1 --quiet
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet
gcloud compute forwarding-rules delete psc-consumer-ep --region=us-central1 --project=$projectid --quiet
gcloud compute addresses delete psc-address --region=us-central1 --project=$projectid --quiet
gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid
gcloud compute networks delete consumer-vpc --project=$projectid --quiet
gcloud projects delete $projectid --quiet
10. Parabéns
Parabéns! Você configurou e validou o acesso particular à API Gemma 3 hospedada na Vertex AI Prediction usando um endpoint do Private Service Connect.
Você criou a infraestrutura do consumidor, incluindo a reserva de um endereço IP interno e a configuração de um endpoint do Private Service Connect (uma regra de encaminhamento) na sua VPC. Esse endpoint se conecta com segurança ao serviço da Vertex AI segmentando o anexo de serviço associado ao modelo Gemma 3 implantado. Essa configuração permite que seus aplicativos na VPC ou em redes conectadas interajam com a API Gemma 3 de maneira privada e segura, usando um endereço IP interno, sem exigir que o tráfego passe pela Internet pública.