1. Giriş
Vertex AI Model Garden'dan dağıtılan modeller için son derece güvenli ve özel erişim oluşturmak üzere Private Service Connect (PSC) özelliğinden yararlanın. Bu yöntem, herkese açık bir uç nokta kullanmak yerine modelinizi yalnızca sanal özel bulutunuzda (VPC) erişilebilen özel bir Vertex AI uç noktasına dağıtmanıza olanak tanır.
Private Service Connect, VPC'nizde dahili IP adresi olan bir uç nokta oluşturarak modelinizi barındıran Google tarafından yönetilen Vertex AI hizmetine doğrudan bağlanır. Bu sayede VPC'nizdeki ve şirket içi ortamlarınızdaki (Cloud VPN veya Interconnect aracılığıyla) uygulamalar, özel IP'leri kullanarak çıkarım istekleri gönderebilir.
En önemlisi, VPC'niz ile özel Vertex AI uç noktası arasındaki tüm ağ trafiği, Google'ın özel ağında kalır ve genel internetten tamamen izole edilir. Ayrıca, bu özel bağlantı, TLS şifrelemesi kullanılarak aktarım sırasında güvence altına alınır. Bu uçtan uca şifreleme, tahmin isteklerinizin ve model yanıtlarınızın korunmasını sağlayarak veri gizliliğini ve bütünlüğünü artırır. PSC üzerinden ağ izolasyonu ve TLS şifrelemenin birleşimi, online tahminleriniz için sağlam bir şekilde güvenli bir ortam sağlar, gecikmeyi azaltır ve güvenlik yapınızı önemli ölçüde güçlendirir.

Ne oluşturacaksınız?
Bu eğitimde, Gemma 3'ü Model Garden'dan indirecek ve Private Service Connect üzerinden erişilebilen özel bir uç nokta olarak Vertex AI Online Inference'te barındıracaksınız. Uçtan uca kurulumunuz şunları içerir:
- Model Garden modeli: Vertex AI Model Garden'dan Gemma 3'ü seçip Private Service Connect uç noktasına dağıtacaksınız.
- Private Service Connect: Sanal Özel Bulutunuzda (VPC) kendi ağınızdaki bir dahili IP adresinden oluşan bir tüketici uç noktası yapılandırırsınız.
- Vertex AI'ye güvenli bağlantı: PSC uç noktası, özel model dağıtımınız için Vertex AI tarafından otomatik olarak oluşturulan hizmet ekini hedefler. Bu, özel bir bağlantı oluşturarak VPC'niz ile model sunma uç noktası arasındaki trafiğin genel internet üzerinden geçmemesini sağlar.
- VPC'nizdeki İstemci Yapılandırması: PSC uç noktasının dahili IP adresini kullanarak dağıtılan modele çıkarım istekleri göndermek için VPC'nizde bir istemci (ör. Compute Engine sanal makinesi) ayarlarsınız.
- TLS şifrelemesini doğrulama: VPC'nizdeki istemci sanal makinesinden, PSC uç noktasının dahili IP adresine bağlanmak için standart araçları ( openssl s_client) kullanırsınız. Bu adım, el sıkışma ayrıntılarını ve sunulan sunucu sertifikasını inceleyerek Vertex AI hizmetiyle iletişim kanalının gerçekten TLS kullanılarak şifrelendiğini doğrulamanıza olanak tanır.
Bu eğitimin sonunda, yalnızca belirlenen VPC ağınızdan erişilebilen, özel olarak sunulan bir Model Garden modeli örneği oluşturmuş olacaksınız.
Neler öğreneceksiniz?
Bu eğitimde, Vertex AI Model Garden'dan bir modeli nasıl dağıtacağınızı ve Private Service Connect (PSC) kullanarak sanal özel bulutunuzdan (VPC) güvenli bir şekilde erişilebilir hale getireceğinizi öğreneceksiniz. Bu yöntem, VPC'nizdeki (tüketici) uygulamalarınızın herkese açık interneti geçmeden Vertex AI model uç noktasına (üretici hizmeti) özel olarak bağlanmasına olanak tanır.
Özellikle şunları öğreneceksiniz:
- Vertex AI için PSC'yi anlama: PSC, tüketici-üretici bağlantılarını nasıl özel ve güvenli hale getirir? VPC'niz, dahili IP adreslerini kullanarak dağıtılan Model Garden modeline erişebilir.
- Özel erişimle model dağıtma: Model Garden modeliniz için PSC kullanacak bir Vertex AI uç noktasını nasıl yapılandıracağınızı öğrenin. Bu sayede uç nokta özel hale gelir.
- Hizmet Ekinin Rolü: Bir modeli özel bir Vertex AI uç noktasına dağıttığınızda Google Cloud, Google tarafından yönetilen bir kiracı projesinde otomatik olarak bir Hizmet Eki oluşturur. Bu hizmet eki, model sunma hizmetini tüketici ağlarına sunar.
- VPC'nizde PSC uç noktası oluşturma:
- Dağıtılan Vertex AI uç nokta ayrıntılarınızdan benzersiz hizmet eki URI'sini edinme
- VPC'nizdeki seçtiğiniz alt ağda dahili IP adresi ayırma
- VPC'nizde, Vertex AI hizmet ekini hedefleyen PSC uç noktası olarak işlev gören bir yönlendirme kuralı oluşturma. Bu uç nokta, ayrılmış dahili IP üzerinden modele erişilmesini sağlar.
- Özel Bağlantı Oluşturma: VPC'nizdeki PSC uç noktası, hizmet ekiyle nasıl bağlanır ve ağınızı Vertex AI hizmetiyle güvenli bir şekilde nasıl köprüler?
- Çıkarım İsteklerini Özel Olarak Gönderme: VPC'nizdeki kaynaklardan (ör. Compute Engine sanal makineleri) PSC uç noktasının dahili IP adresine tahmin istekleri gönderme.
- Doğrulama: Özel bağlantı üzerinden VPC'nizden dağıtılan Model Garden modeline başarılı bir şekilde çıkarım isteği gönderebildiğinizi test etme ve onaylama adımları.
- TLS Şifrelemesini Doğrulama: VPC istemcinizdeki (ör. Compute Engine sanal makinesi) araçları kullanarak PSC uç noktasının dahili IP adresine TLS üzerinden nasıl bağlanacağınız.
Bu işlemi tamamladığınızda, Model Garden'daki yalnızca özel ağ altyapınızdan erişilebilen modelleri barındırabilirsiniz.
İhtiyacınız olanlar
Google Cloud projesi
IAM İzinleri
- AI Platform Yöneticisi (roles/ml.Admin)
- Compute Ağ Yöneticisi (roles/compute.networkAdmin)
- Compute Örnek Yöneticisi (roles/compute.instanceAdmin)
- Compute Güvenliği Yöneticisi (roles/compute.securityAdmin)
- DNS Yöneticisi (roles/dns.admin)
- IAP Güvenli Tünel Kullanıcısı (roles/iap.tunnelResourceAccessor)
- Logging Yöneticisi (roles/logging.admin)
- Notebooks Admin (roles/notebooks.admin)
- Project IAM Admin (Proje IAM Yöneticisi) (roles/resourcemanager.projectIamAdmin)
- Hizmet Hesabı Yöneticisi (roles/iam.serviceAccountAdmin)
- Hizmet Kullanımı Yöneticisi (roles/serviceusage.serviceUsageAdmin)
2. Başlamadan önce
Projeyi, eğitimi destekleyecek şekilde güncelleyin
Bu eğitimde, Cloud Shell'de gcloud yapılandırmasının uygulanmasına yardımcı olmak için $değişkenleri kullanılır.
Cloud Shell'de aşağıdakileri yapın:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid
API Etkinleştirme
Cloud Shell'de aşağıdakileri yapın:
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. Modeli Dağıt
Model Garden'dan modelinizi dağıtmak için aşağıdaki adımları uygulayın.
Google Cloud Console'da Model Garden'a gidin ve Gemma 3'ü arayıp seçin.

Modeli dağıt'ı tıklayın ve Vertex AI'ı seçin.

Dağıtım Ayarları bölümünün alt kısmında Ayarları Düzenle'yi seçin.

Vertex AI'da Dağıt bölmesinde, Uç Nokta Erişimi'nin Private Service Connect olarak yapılandırıldığından emin olun ve projenizi seçin.

Diğer seçeneklerin tüm varsayılan ayarlarını değiştirmeden en altta Dağıt'ı seçin ve dağıtım durumu için bildirimlerinizi kontrol edin.

Model Garden'da Gemma 3 modelini ve uç noktasını sağlayan us-central1 bölgesini seçin. Model dağıtımı yaklaşık 5 dakika sürer.

30 dakika içinde, tamamlandıktan sonra uç nokta "Etkin"e geçiş yapacak.

Uç noktayı seçerek uç nokta kimliğini alın ve not edin.

Uç nokta kimliğini almak ve değişkeni güncellemek için uç noktayı seçin. Gösterilen örnekte kimlik 1934769929467199488'dir.
Cloud Shell'de aşağıdakileri yapın:
endpointID=<Enter_Your_Endpoint_ID>
region=us-central1
Private Service Connect hizmet eki URI'sini almak için aşağıdakileri yapın. Bu URI dizesi, PSC tüketici uç noktası dağıtırken tüketici tarafından kullanılır.
Cloud Shell'de, uç nokta kimliği/bölge değişkenini kullanın ve ardından aşağıdaki komutu verin:
gcloud ai endpoints describe $endpointID --region=$region | grep -i serviceAttachment:
Aşağıda bir örnek verilmiştir:
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
serviceAttachment'tan sonraki içeriği "Service_attachment" adlı bir değişkene kopyalayın. Bu değişken, daha sonra PSC bağlantısı oluştururken gereklidir.
user@cloudshell:$ Service_attachment=<Enter_Your_ServiceAttachment>
4. Tüketici Kurulumu
Tüketici VPC'sini oluşturma
Cloud Shell'de aşağıdakileri yapın:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
Tüketici sanal makine alt ağını oluşturma
Cloud Shell'de aşağıdakileri yapın:
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
Cloud Shell'de PSC uç noktası alt ağını oluşturmak için aşağıdakileri yapın**:**
gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=$region
5. IAP'yi etkinleştirme
IAP'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki özellikleri içeren bir güvenlik duvarı kuralı oluşturun:
- IAP kullanarak erişmek istediğiniz tüm sanal makine örnekleri için geçerlidir.
- 35.235.240.0/20 IP aralığından gelen giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.
Cloud Shell'de IAP güvenlik duvarı kuralını oluşturun.
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Tüketici sanal makine örnekleri oluşturma
Cloud Shell'de consumer-vm adlı tüketici sanal makinesi örneğini oluşturun.
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. Private Service Connect uç noktaları
Tüketici, VPC'sinde dahili IP adresi olan bir tüketici uç noktası (yönlendirme kuralı) oluşturur. Bu PSC uç noktası, üreticinin hizmet ekini hedefler. Tüketici VPC'sindeki veya karma ağdaki istemciler, üreticinin hizmetine ulaşmak için bu dahili IP adresine trafik gönderebilir.
Tüketici uç noktası için bir IP adresi ayırın.
Cloud Shell'de iletim kuralını oluşturun.
gcloud compute addresses create psc-address \
--project=$projectid \
--region=$region \
--subnet=pscendpoint-subnet \
--addresses=10.10.10.6
IP adresinin ayrıldığını doğrulayın.
Cloud Shell'de ayrılmış IP adresini listeleyin.
gcloud compute addresses list
Ayrılmış 10.10.10.6 IP adresini görmeniz gerekir.

Önceki adımda (Modeli Dağıtma bölümü) yakaladığınız hizmet eki URI'si (target-service-attachment) değerini belirterek tüketici uç noktasını oluşturun.
Cloud Shell'de ağ ekini açıklayın.
gcloud compute forwarding-rules create psc-consumer-ep \
--network=consumer-vpc \
--address=psc-address \
--region=$region \
--target-service-attachment=$Service_attachment \
--project=$projectid
Hizmet eklerinin uç noktayı kabul ettiğini doğrulayın.
Cloud Shell'de aşağıdakileri yapın:
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=$region
Yanıtın pscConnectionStatus alanında "ACCEPTED" durumunun göründüğünü doğrulayın.

8. TLS üzerinden Vertex HTTPS uç noktasına bağlanacak şekilde ayarlama
IP adresi belirtmenize gerek kalmadan Online Çıkarım elde edebilmek için DNS özel bölgesi oluşturun.
Cloud Shell'de aşağıdakileri yapın:
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."
Alan adını PSC IP adresiyle eşlemek için A kaydı oluşturun.
Cloud Shell'de aşağıdakileri yapın:
gcloud dns record-sets create "*.prediction.p.vertexai.goog." \
--zone=vertex \
--type=A \
--ttl=300 \
--rrdatas="10.10.10.6"
NAT örneği için ön koşul olarak Cloud Router örneği oluşturun.
Cloud Shell'de aşağıdakileri yapın:
gcloud compute routers create consumer-cr \
--region=$region --network=consumer-vpc \
--asn=65001
openssl ve dnsutils paketlerini indirmek için kullanılan Cloud NAT örneğini oluşturun.
Cloud Shell'de aşağıdakileri yapın:
gcloud compute routers nats create consumer-nat-gw \
--router=consumer-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
ssh (konsol) aracılığıyla tüketici VM'sine bağlanın. Cloud Shell'de aşağıdakileri yapın:
gcloud compute ssh --zone "us-central1-a" "consumer-vm" --tunnel-through-iap --project "$projectid"
Aşağıdaki paketleri güncelleyin, open-ssl'yi ve DNS yardımcı programlarını yükleyin.
Cloud Shell'de aşağıdakileri yapın:
sudo apt update
sudo apt install openssl
sudo apt-get install -y dnsutils
Bir sonraki adımda Proje Numarası'na ihtiyacınız olacak. Proje numaranızı almak için Cloud Shell'den aşağıdaki komutu çalıştırın ve bir değişkene yerleştirin:
Cloud Shell'de aşağıdakileri yapın:
gcloud projects describe $projectid --format="value(projectNumber)"
Example Output: 549538389202
projectNumber=549538389202
Sonraki birkaç adımda tanımlanması gereken birkaç değişken daha olacak. Bu değişkenleri(ENDPOINT_ID, REGION, VERTEX_AI_PROJECT_ID) önce Cloud Shell'den yakalayarak, ardından sanal makinede aynı değişkenleri oluşturarak tanımlayın.
Cloud Shell'de aşağıdakileri yapın:
echo $projectNumber
echo $projectid
echo $region
echo $endpointID
Aşağıda örnek bir çıktı verilmiştir:
549538389202
test4-473419
Us-central1
1934769929467199s
Tüketici sanal makinenize aşağıdaki değişkenleri ekleyin (örnek aşağıda verilmiştir):
projectNumber=1934769929467199488
projectid=test4-473419
region=us-central1
endpointID=1934769929467199488
Sanal makinenizdeki ana dizinden aşağıdaki komutu çalıştırarak Vertex AI sertifikasını indirin. Bu komut, vertex_certificate.crt adlı bir dosya oluşturur.
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.

Sertifikayı sistem güvenilir sertifika deposuna taşıyın.
sudo mv vertex_certificate.crt /usr/local/share/ca-certificates
Sertifika yöneticisini güncelleyin.
sudo update-ca-certificates
Güncellendikten sonra aşağıdaki gibi görünür.
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. Tüketici VM'sinden Son Test
Tüketici VM'sinde, uygulama varsayılan kimlik bilgileriyle yeniden kimlik doğrulama yapın ve Vertex AI kapsamlarını belirtin:
gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform
Tüketici VM'sinde, "1 pound tüy mü yoksa kaya mı daha ağırdır?" istemiyle Gemini Modelinizde Tahmin'i test etmek için aşağıdaki curl komutunu çalıştırın.
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?"}] }'
SONUÇ: BAŞARILI!!!
Çıkışın en altında Gemma 3'ten tahmin sonucu görmeniz gerekir. Bu, PSC uç noktası aracılığıyla API uç noktasına özel olarak erişebildiğinizi gösterir.
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. Temizleme
Cloud Shell'den eğitim bileşenlerini silin.
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. Tebrikler
Tebrikler. Vertex AI'den alınan ve VM'lerin güvenilir sertifika deposuna dağıtılan, kendinden imzalı bir sertifika kullanarak Private Service Connect uç noktası aracılığıyla Vertex AI Prediction'da barındırılan Gemma 3 API'ye özel erişimi başarıyla yapılandırdınız ve doğruladınız.
Dahili IP adresi ayırma, VPC'nizde Private Service Connect uç noktası (iletim kuralı) yapılandırma ve *prediction.p.vertexai.goog adlı kendinden imzalı sertifikayla eşleşecek şekilde özel DNS yapılandırma dahil olmak üzere tüketici altyapısını oluşturdunuz. Bu uç nokta, dağıtılan Gemma 3 modelinizle ilişkili hizmet ekini hedefleyerek Vertex AI hizmetine güvenli bir şekilde bağlanır.
Bu kurulum, VPC veya bağlı ağlardaki uygulamalarınızın, sertifikalar kullanarak dahili bir IP adresiyle Gemma 3 API ile özel olarak etkileşime girmesini sağlar. Tüm trafik Google'ın ağında kalır ve hiçbir zaman genel internet üzerinden geçmez.