1. Wprowadzenie
Korzystaj z usługi Private Service Connect (PSC), aby ustanowić wysoce bezpieczny, prywatny dostęp do modeli wdrożonych z bazy modeli Vertex AI. Zamiast udostępniać publiczny punkt końcowy, ta metoda umożliwia wdrożenie modelu w prywatnym punkcie końcowym Vertex AI, który jest dostępny tylko w Twoim prywatnym środowisku wirtualnym w chmurze (VPC).
Usługa Private Service Connect tworzy w Twojej sieci VPC punkt końcowy z wewnętrznym adresem IP, który łączy się bezpośrednio z zarządzaną przez Google usługą Vertex AI hostującą Twój model. Umożliwia to aplikacjom w środowiskach VPC i lokalnych (za pomocą Cloud VPN lub Interconnect) wysyłanie żądań wnioskowania przy użyciu prywatnych adresów IP.
Co ważne, cały ruch w sieci między siecią VPC a prywatnym punktem końcowym Vertex AI pozostaje w dedykowanej sieci Google, co całkowicie izoluje go od publicznego internetu. Ponadto to połączenie prywatne jest zabezpieczone podczas przesyłania za pomocą szyfrowania TLS. Szyfrowanie typu end-to-end zapewnia ochronę żądań prognozowania i odpowiedzi modelu, zwiększając poufność i integralność danych. Połączenie izolacji sieciowej za pomocą PSC i szyfrowania TLS zapewnia solidne i bezpieczne środowisko dla prognoz online, zmniejszając czas oczekiwania i znacznie zwiększając stan zabezpieczeń.

Co utworzysz
W tym samouczku pobierzesz model Gemma 3 z bazy modeli hostowanej w Vertex AI Online Inference jako prywatny punkt końcowy dostępny przez Private Service Connect. Konfiguracja kompleksowa obejmuje:
- Model z bazy modeli: wybierzesz model Gemma 3 z bazy modeli Vertex AI i wdrożysz go w punkcie końcowym Private Service Connect.
- Private Service Connect: w prywatnym środowisku wirtualnym w chmurze (VPC) skonfigurujesz punkt końcowy konsumenta składający się z wewnętrznego adresu IP w Twojej sieci.
- Bezpieczne połączenie z Vertex AI: punkt końcowy PSC będzie kierowany na załącznik usługi wygenerowany automatycznie przez Vertex AI na potrzeby wdrożenia modelu prywatnego. Ustanawia to połączenie prywatne, dzięki czemu ruch między siecią VPC a punktem końcowym wdrożenia modelu nie przechodzi przez publiczny internet.
- Konfiguracja klienta w sieci VPC: skonfigurujesz klienta (np. maszynę wirtualną Compute Engine) w sieci VPC, aby wysyłał żądania wnioskowania do wdrożonego modelu za pomocą wewnętrznego adresu IP punktu końcowego PSC.
- Sprawdź szyfrowanie TLS: na maszynie wirtualnej klienta w sieci VPC użyj standardowych narzędzi ( openssl s_client), aby połączyć się z wewnętrznym adresem IP punktu końcowego PSC. Ten krok pozwoli Ci potwierdzić, że kanał komunikacji z usługą Vertex AI jest szyfrowany za pomocą protokołu TLS. Wystarczy, że sprawdzisz szczegóły uzgadniania połączenia i przedstawiony certyfikat serwera.
Na koniec będziesz mieć działający przykład modelu z repozytorium Model Garden, który jest udostępniany prywatnie i dostępny tylko z poziomu wyznaczonej sieci VPC.
Czego się nauczysz
Z tego samouczka dowiesz się, jak wdrożyć model z repozytorium Vertex AI Model Garden i bezpiecznie udostępnić go z prywatnego środowiska wirtualnego w chmurze (VPC) za pomocą Private Service Connect (PSC). Ta metoda umożliwia aplikacjom w sieci VPC (konsumentowi) prywatne łączenie się z punktem końcowym modelu Vertex AI (usługą producenta) bez przechodzenia przez publiczny internet.
Dowiesz się m.in.:
- Omówienie PSC w Vertex AI: jak PSC umożliwia prywatne i bezpieczne połączenia między konsumentem a producentem. Sieć VPC może uzyskać dostęp do wdrożonego modelu z bazy modeli za pomocą wewnętrznych adresów IP.
- Wdrażanie modelu z dostępem prywatnym: jak skonfigurować punkt końcowy Vertex AI dla modelu z repozytorium Model Garden, aby używać PSC, co sprawi, że będzie to punkt końcowy prywatny.
- Rola połączenia usługi: gdy wdrażasz model w prywatnym punkcie końcowym Vertex AI, Google Cloud automatycznie tworzy połączenie usługi w projekcie najemcy zarządzanym przez Google. To przyłącze usługi udostępnia usługę wdrożenia modelu sieciom konsumentów.
- Tworzenie punktu końcowego PSC w sieci VPC:
- Jak uzyskać unikalny identyfikator URI przyłączenia usługi z informacji o wdrożonym punkcie końcowym Vertex AI.
- Jak zarezerwować wewnętrzny adres IP w wybranej podsieci w sieci VPC.
- Jak utworzyć w sieci VPC regułę przekazywania, która będzie działać jako punkt końcowy PSC i będzie kierować ruch do przyłącza usługi Vertex AI. Ten punkt końcowy udostępnia model za pomocą zarezerwowanego wewnętrznego adresu IP.
- Nawiązywanie połączenia prywatnego: jak punkt końcowy PSC w sieci VPC łączy się z przyłączem usługi, bezpiecznie łącząc Twoją sieć z usługą Vertex AI.
- Prywatne wysyłanie żądań wnioskowania: jak wysyłać żądania prognozowania z zasobów (takich jak maszyny wirtualne Compute Engine) w sieci VPC na wewnętrzny adres IP punktu końcowego PSC.
- Weryfikacja: czynności, które należy wykonać, aby sprawdzić i potwierdzić, że możesz wysyłać żądania wnioskowania z sieci VPC do wdrożonego modelu Model Garden za pomocą połączenia prywatnego.
- Weryfikowanie szyfrowania TLS: jak używać narzędzi w kliencie VPC (np. na maszynie wirtualnej Compute Engine), aby połączyć się przez TLS z wewnętrznym adresem IP punktu końcowego PSC.
Dzięki temu będziesz mieć możliwość hostowania modeli z Model Garden, które są dostępne tylko z Twojej prywatnej infrastruktury sieciowej.
Czego potrzebujesz
Projekt Google Cloud
Uprawnienia
- Administrator AI Platform (roles/ml.Admin)
- Administrator sieci Compute (roles/compute.networkAdmin)
- Administrator instancji Compute (roles/compute.instanceAdmin)
- Administrator zabezpieczeń Compute (roles/compute.securityAdmin)
- Administrator DNS (roles/dns.admin)
- Użytkownik tunelu zabezpieczonego przez IAP (roles/iap.tunnelResourceAccessor)
- Administrator rejestrowania (roles/logging.admin)
- Administrator notatek (roles/notebooks.admin)
- Administrator uprawnień projektu (roles/resourcemanager.projectIamAdmin)
- Administrator kont usługi (roles/iam.serviceAccountAdmin)
- Administrator wykorzystania usług (roles/serviceusage.serviceUsageAdmin)
2. Zanim zaczniesz
Aktualizowanie projektu na potrzeby samouczka
W tym samouczku używamy zmiennych $variables, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid
Włączanie interfejsu API
W Cloud Shell wykonaj te czynności:
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. Wdrażanie modelu
Aby wdrożyć model z Model Garden, wykonaj te czynności:
W konsoli Google Cloud otwórz Model Garden, a następnie wyszukaj i wybierz Gemma 3.

Kliknij Wdróż model i wybierz Vertex AI.

U dołu sekcji Ustawienia wdrożenia kliknij Edytuj ustawienia.

W panelu Wdróż w Vertex AI sprawdź, czy dostęp do punktu końcowego jest skonfigurowany jako Private Service Connect, a następnie wybierz projekt.

W przypadku pozostałych opcji pozostaw wartości domyślne, a następnie u dołu kliknij Wdróż i sprawdź stan wdrożenia w powiadomieniach.

W Model Garden wybierz region us-central1, który udostępnia model Gemma 3 i punkt końcowy. Wdrożenie modelu zajmuje około 5 minut.

Po 30 minutach punkt końcowy przejdzie w stan „Aktywny”.

Wybierz punkt końcowy, aby uzyskać i zapisać jego identyfikator.

Wybierz punkt końcowy, aby pobrać jego identyfikator i zaktualizować zmienną. W tym przykładzie identyfikator to 1934769929467199488.
W Cloud Shell wykonaj te czynności:
endpointID=<Enter_Your_Endpoint_ID>
region=us-central1
Aby uzyskać identyfikator URI przyłącza usługi Private Service Connect, wykonaj te czynności. Ten ciąg URI jest używany przez konsumenta podczas wdrażania punktu końcowego konsumenta PSC.
W Cloud Shell użyj zmiennej identyfikatora punktu końcowego lub regionu, a potem wydaj to polecenie:
gcloud ai endpoints describe $endpointID --region=$region | grep -i serviceAttachment:
Oto przykład:
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
Skopiuj zawartość po serviceAttachment do zmiennej o nazwie „Service_attachment”. Będzie ona potrzebna później podczas tworzenia połączenia PSC.
user@cloudshell:$ Service_attachment=<Enter_Your_ServiceAttachment>
4. Konfiguracja konsumencka
Tworzenie sieci VPC konsumenta
W Cloud Shell wykonaj te czynności:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
Tworzenie podsieci maszyny wirtualnej konsumenta
W Cloud Shell wykonaj te czynności:
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
Utwórz podsieć punktu końcowego PSC. W Cloud Shell wykonaj te czynności:
gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=$region
5. Włączanie IAP
Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:
- Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP.
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.
W Cloud Shell utwórz regułę zapory sieciowej IAP.
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Tworzenie instancji maszyn wirtualnych konsumentów
W Cloud Shell utwórz instancję maszyny wirtualnej klienta o nazwie 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. Punkty końcowe Private Service Connect
Konsument tworzy punkt końcowy konsumenta (regułę przekierowania) z wewnętrznym adresem IP w swojej sieci VPC. Ten punkt końcowy PSC jest kierowany na przyłącze usługi producenta. Klienty w sieci VPC konsumenta lub sieci hybrydowej mogą wysyłać ruch na ten wewnętrzny adres IP, aby uzyskać dostęp do usługi producenta.
Zarezerwuj adres IP dla punktu końcowego klienta.
W Cloud Shell utwórz regułę przekierowania.
gcloud compute addresses create psc-address \
--project=$projectid \
--region=$region \
--subnet=pscendpoint-subnet \
--addresses=10.10.10.6
Sprawdź, czy adres IP jest zarezerwowany.
W Cloud Shell wyświetl listę zarezerwowanych adresów IP.
gcloud compute addresses list
Powinien być widoczny zarezerwowany adres IP 10.10.10.6.

Utwórz punkt końcowy klienta, podając identyfikator URI przyłącza usługi, target-service-attachment, który został zarejestrowany w sekcji Wdrażanie modelu w poprzednim kroku.
W Cloud Shell opisz przyłącze sieci.
gcloud compute forwarding-rules create psc-consumer-ep \
--network=consumer-vpc \
--address=psc-address \
--region=$region \
--target-service-attachment=$Service_attachment \
--project=$projectid
Sprawdź, czy przyłączenie usługi akceptuje punkt końcowy.
W Cloud Shell wykonaj te czynności:
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=$region
W odpowiedzi sprawdź, czy w polu pscConnectionStatus wyświetla się stan „ACCEPTED”.

8. Konfigurowanie połączenia z punktem końcowym HTTPS Vertex AI za pomocą protokołu TLS
Utwórz prywatną strefę DNS, aby uzyskać wnioskowanie online bez konieczności podawania adresu IP.
W Cloud Shell wykonaj te czynności:
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."
Utwórz rekord A, aby zmapować domenę na adres IP usługi PSC.
W Cloud Shell wykonaj te czynności:
gcloud dns record-sets create "*.prediction.p.vertexai.goog." \
--zone=vertex \
--type=A \
--ttl=300 \
--rrdatas="10.10.10.6"
Utwórz instancję Cloud Router jako warunek wstępny dla instancji NAT.
W Cloud Shell wykonaj te czynności:
gcloud compute routers create consumer-cr \
--region=$region --network=consumer-vpc \
--asn=65001
Utwórz instancję Cloud NAT, która będzie używana do pobierania pakietów openssl i dnsutils.
W Cloud Shell wykonaj te czynności:
gcloud compute routers nats create consumer-nat-gw \
--router=consumer-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Połącz się z maszyną wirtualną klienta przez SSH (konsola). W Cloud Shell wykonaj te czynności:
gcloud compute ssh --zone "us-central1-a" "consumer-vm" --tunnel-through-iap --project "$projectid"
Zaktualizuj poniższe pakiety, zainstaluj OpenSSL i narzędzia DNS.
W Cloud Shell wykonaj te czynności:
sudo apt update
sudo apt install openssl
sudo apt-get install -y dnsutils
Numer projektu będzie Ci potrzebny w następnym kroku. Aby uzyskać numer projektu, uruchom to polecenie w Cloud Shell i umieść go w zmiennej:
W Cloud Shell wykonaj te czynności:
gcloud projects describe $projectid --format="value(projectNumber)"
Example Output: 549538389202
projectNumber=549538389202
W kolejnych krokach musisz zdefiniować kilka innych zmiennych. Zdefiniuj te zmienne(ENDPOINT_ID, REGION, VERTEX_AI_PROJECT_ID), najpierw przechwytując je w powłoce Cloud Shell, a potem tworząc te same zmienne na maszynie wirtualnej.
W Cloud Shell wykonaj te czynności:
echo $projectNumber
echo $projectid
echo $region
echo $endpointID
Przykładowe dane wyjściowe poniżej:
549538389202
test4-473419
Us-central1
1934769929467199s
Na maszynie wirtualnej klienta dodaj te zmienne – przykład poniżej:
projectNumber=1934769929467199488
projectid=test4-473419
region=us-central1
endpointID=1934769929467199488
Pobierz certyfikat Vertex AI, wykonując to polecenie w katalogu głównym maszyny wirtualnej. To polecenie tworzy plik o nazwie 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.

Przenieś certyfikat do systemowego magazynu zaufanych certyfikatów.
sudo mv vertex_certificate.crt /usr/local/share/ca-certificates
Zaktualizuj menedżera certyfikatów.
sudo update-ca-certificates
Po aktualizacji powinna wyglądać tak:
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. Test końcowy z maszyny wirtualnej konsumenta
Na maszynie wirtualnej klienta ponownie uwierzytelnij się za pomocą domyślnego uwierzytelniania aplikacji i określ zakresy Vertex AI:
gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform
Na maszynie wirtualnej klienta uruchom to polecenie curl, aby przetestować prognozowanie za pomocą modelu Gemini z promptem „Co waży więcej: 1 funt piór czy kamieni?
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?"}] }'
WYNIK KOŃCOWY – SUKCES!!!
Na dole danych wyjściowych powinna pojawić się prognoza modelu Gemma 3. Oznacza to, że udało Ci się uzyskać dostęp do punktu końcowego interfejsu API w sposób prywatny za pomocą punktu końcowego 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. Czyszczenie danych
W Cloud Shell usuń komponenty samouczka.
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. Gratulacje
Gratulacje. Udało Ci się skonfigurować i zweryfikować prywatny dostęp do interfejsu Gemma 3 API hostowanego w Vertex AI Prediction przy użyciu punktu końcowego Private Service Connect z certyfikatem podpisanym samodzielnie, który został uzyskany z Vertex AI i wdrożony w magazynie zaufanych certyfikatów maszyn wirtualnych.
Utworzono infrastrukturę konsumenta, w tym zarezerwowano wewnętrzny adres IP, skonfigurowano punkt końcowy usługi Private Service Connect (regułę przekierowania) w sieci VPC i prywatny DNS, aby pasował do certyfikatu podpisanego samodzielnie *prediction.p.vertexai.goog. Ten punkt końcowy bezpiecznie łączy się z usługą Vertex AI, kierując się na załącznik usługi powiązany z wdrożonym modelem Gemma 3.
Ta konfiguracja zapewnia, że aplikacje w sieci VPC lub połączonych sieciach mogą prywatnie wchodzić w interakcje z interfejsem Gemma 3 API przy użyciu wewnętrznego adresu IP i certyfikatów. Cały ruch pozostaje w sieci Google i nigdy nie przechodzi przez internet publiczny.