1. Introdução
Use o Private Service Connect (PSC) para estabelecer um acesso particular e altamente seguro para 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 privado 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, conectando-se diretamente ao serviço 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.
É importante ressaltar que todo o tráfego de rede entre sua VPC e o endpoint particular da Vertex AI permanece na rede dedicada do Google, isolando-o completamente da Internet pública. Além disso, essa conexão particular é protegida em trânsito usando criptografia TLS. Essa criptografia de ponta a ponta garante que suas solicitações de previsão e respostas do modelo estejam protegidas, aumentando a confidencialidade e a integridade dos dados. A combinação de isolamento de rede via PSC e criptografia TLS oferece um ambiente robustamente seguro para suas previsões on-line, reduzindo a latência e reforçando significativamente sua postura de segurança.

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 disponibilização do modelo não passe pela Internet pública.
- Configuração do cliente na VPC: configure um cliente (por exemplo, uma VM do Compute Engine) na VPC para enviar solicitações de inferência ao modelo implantado usando o endereço IP interno do endpoint do PSC.
- Verifique a criptografia TLS: na VM cliente dentro da VPC, use ferramentas padrão ( openssl s_client) para se conectar ao endereço IP interno do endpoint do PSC. Essa etapa permite confirmar que o canal de comunicação com o serviço da Vertex AI está criptografado usando TLS. Para isso, inspecione os detalhes do handshake e o certificado do servidor apresentado.
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 seu 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. Este anexo de serviço expõe o serviço de disponibilização do modelo à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.
- Verificar a criptografia TLS:como usar ferramentas no cliente da VPC (por exemplo, uma VM do Compute Engine) para se conectar via TLS ao endereço IP interno do endpoint do PSC.
Ao fazer isso, você poderá hospedar modelos do Model Garden que só podem ser acessados na sua infraestrutura de rede privada.
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 da instância 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 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 $variáveis 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"
gcloud services enable dns.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 "Implantar modelo" e selecione "Vertex AI".

Selecione "Editar configurações" na parte de baixo da seção "Configurações de implantação".

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 o status da implantação nas suas notificações.

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.

Obtenha e anote o ID do endpoint selecionando o endpoint.

Selecione o endpoint para recuperar o ID dele e atualizar a variável. No exemplo mostrado, o ID é 1934769929467199488.
No Cloud Shell, faça o seguinte:
endpointID=<Enter_Your_Endpoint_ID>
region=us-central1
Faça o seguinte para receber 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, use a variável ID do endpoint/região e execute o seguinte comando:
gcloud ai endpoints describe $endpointID --region=$region | grep -i serviceAttachment:
Veja um exemplo abaixo:
user@cloudshell:$ gcloud ai endpoints describe 1934769929467199488 --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=<Enter_Your_ServiceAttachment>
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=$region --enable-private-ip-google-access
Crie a sub-rede do endpoint do PSC. No Cloud Shell, faça o seguinte:
gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=$region
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=$region \
--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=$region \
--target-service-attachment=$Service_attachment \
--project=$projectid
Verifique se o anexo de serviço aceita o endpoint.
No Cloud Shell, faça o seguinte:
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=$region
Na resposta, verifique se o status "ACCEPTED" aparece no campo "pscConnectionStatus".

8. Configurar a conexão com o endpoint HTTPS da Vertex via TLS
Crie uma zona particular de DNS para receber inferências on-line sem precisar especificar um endereço IP.
No Cloud Shell, faça o seguinte:
DNS_NAME_SUFFIX="prediction.p.vertexai.goog."
gcloud dns managed-zones create vertex \
--project=$projectid \
--dns-name=$DNS_NAME_SUFFIX \
--networks=consumer-vpc \
--visibility=private \
--description="A DNS zone for Vertex AI endpoints using Private Service Connect."
Crie um registro A para mapear o domínio para o endereço IP do PSC.
No Cloud Shell, faça o seguinte:
gcloud dns record-sets create "*.prediction.p.vertexai.goog." \
--zone=vertex \
--type=A \
--ttl=300 \
--rrdatas="10.10.10.6"
Crie uma instância do Cloud Router como pré-requisito para uma instância NAT.
No Cloud Shell, faça o seguinte:
gcloud compute routers create consumer-cr \
--region=$region --network=consumer-vpc \
--asn=65001
Crie uma instância do Cloud NAT usada para fazer o download dos pacotes openssl e dnsutils.
No Cloud Shell, faça o seguinte:
gcloud compute routers nats create consumer-nat-gw \
--router=consumer-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Conecte-se via SSH (console) à VM do consumidor. No Cloud Shell, faça o seguinte:
gcloud compute ssh --zone "us-central1-a" "consumer-vm" --tunnel-through-iap --project "$projectid"
Atualize os pacotes abaixo, instale o open-ssl e os utilitários de DNS
No Cloud Shell, faça o seguinte:
sudo apt update
sudo apt install openssl
sudo apt-get install -y dnsutils
Você vai precisar do número do projeto na próxima etapa. Para receber o número do projeto, execute o seguinte comando no Cloud Shell e coloque-o em uma variável:
No Cloud Shell, faça o seguinte:
gcloud projects describe $projectid --format="value(projectNumber)"
Example Output: 549538389202
projectNumber=549538389202
Você vai precisar de algumas outras variáveis definidas nas próximas etapas. Defina essas variáveis(ENDPOINT_ID, REGION, VERTEX_AI_PROJECT_ID) capturando-as primeiro no Cloud Shell e criando as mesmas variáveis na VM.
No Cloud Shell, faça o seguinte:
echo $projectNumber
echo $projectid
echo $region
echo $endpointID
Exemplo de saída abaixo:
549538389202
test4-473419
Us-central1
1934769929467199s
Na VM do consumidor, adicione estas variáveis. Veja um exemplo abaixo:
projectNumber=1934769929467199488
projectid=test4-473419
region=us-central1
endpointID=1934769929467199488
Faça o download do certificado da Vertex AI executando o seguinte comando no diretório inicial da VM. Esse comando cria um arquivo chamado vertex_certificate.crt.
sudo openssl s_client -showcerts -connect $endpointID-$region-$projectNumber.prediction.p.vertexai.goog:443 </dev/null | openssl x509 -outform pem -out vertex_certificate.crt
Output should look like below, error is expected.

Mova o certificado para o repositório de confiança do sistema.
sudo mv vertex_certificate.crt /usr/local/share/ca-certificates
Atualize o gerenciador de certificados.
sudo update-ca-certificates
Ele vai ficar assim quando for atualizado.
user@linux-vm:~$ sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
Done.
9. Teste final da VM do consumidor
Na VM do consumidor, autentique novamente 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
Na VM do consumidor, execute o seguinte comando curl para testar a previsão do seu modelo do Gemini com o comando "O que pesa mais: 1 quilo de penas ou de pedras?"
curl -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" https://$endpointID-$region-$projectNumber.prediction.p.vertexai.goog/v1/projects/$projectid/locations/$region/endpoints/$endpointID/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 do Gemma 3 na parte de baixo da saída. Isso mostra que você conseguiu acessar o endpoint de 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
10. Limpar
No Cloud Shell, exclua os componentes do tutorial.
Get Deployed Model ID first with this command, you will need it to delete the Endpoint ID:
gcloud ai endpoints describe $endpointID \
--region=$region \
--project=$projectid \
--format="table[no-heading](deployedModels.id)"
Example Output: 7389140900875599872
Put it in a Variable:
deployedModelID=7389140900875599872
Run following Commands:
gcloud ai endpoints undeploy-model $endpointID --deployed-model-id=$deployedModelID --region=$region --quiet
gcloud ai endpoints delete $endpointID --project=$projectid --region=$region --quiet
Run Following command to get $MODEL_ID to delete Model:
gcloud ai models list --project=$projectid --region=$region
Example Output:
Using endpoint [https://us-central1-aiplatform.googleapis.com/]
MODEL_ID: gemma-3-12b-it-1768409471942
DISPLAY_NAME: gemma-3-12b-it-1768409471942
Put MODEL_ID value in a variable:
MODEL_ID=gemma-3-12b-it-1768409471942
Run the follow command to delete Model:
gcloud ai models delete $MODEL_ID --project=$projectid --region=$region --quiet
Clean up rest of the lab:
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet
gcloud compute forwarding-rules delete psc-consumer-ep --region=$region --project=$projectid --quiet
gcloud compute addresses delete psc-address --region=$region --project=$projectid --quiet
gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=$region --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid
gcloud compute routers delete consumer-cr --region=$region
gcloud compute networks delete consumer-vpc --project=$projectid --quiet
11. Parabéns
Parabéns! Você configurou e validou com sucesso o acesso particular à API Gemma 3 hospedada na previsão da Vertex AI usando um endpoint do Private Service Connect com um certificado autoassinados obtido da Vertex AI e implantado no repositório de confiança das VMs.
Você criou a infraestrutura do consumidor, incluindo a reserva de um endereço IP interno, a configuração de um endpoint do Private Service Connect (uma regra de encaminhamento) na sua VPC e o DNS particular para corresponder ao certificado autossinado *prediction.p.vertexai.goog. 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 garante que seus aplicativos na VPC ou em redes conectadas possam interagir com a API Gemma 3 de forma privada usando um endereço IP interno e certificados. Todo o tráfego permanece na rede do Google, sem passar pela Internet pública.