۱. مقدمه
از اتصال سرویس خصوصی (PSC) برای ایجاد دسترسی خصوصی و بسیار امن برای مدلهای مستقر در Vertex AI Model Garden استفاده کنید. به جای افشای یک نقطه پایانی عمومی، این روش به شما امکان میدهد مدل خود را در یک نقطه پایانی خصوصی Vertex AI که فقط از طریق Virtual Private Cloud (VPC) شما قابل دسترسی است، مستقر کنید.
سرویس خصوصی Connect یک نقطه پایانی با یک آدرس IP داخلی در داخل VPC شما ایجاد میکند و مستقیماً به سرویس هوش مصنوعی Vertex که توسط گوگل مدیریت میشود و میزبان مدل شماست، متصل میشود. این امر به برنامههای موجود در VPC و محیطهای داخلی شما (از طریق Cloud VPN یا Interconnect) امکان میدهد تا درخواستهای استنتاج را با استفاده از IPهای خصوصی ارسال کنند.
نکته مهم این است که تمام ترافیک شبکه بین VPC شما و نقطه پایانی خصوصی Vertex AI در شبکه اختصاصی گوگل باقی میماند و آن را کاملاً از اینترنت عمومی جدا میکند. علاوه بر این، این اتصال خصوصی با استفاده از رمزگذاری TLS در حین انتقال ایمن میشود. این رمزگذاری سرتاسری تضمین میکند که درخواستهای پیشبینی و پاسخهای مدل شما محافظت میشوند و محرمانگی و یکپارچگی دادهها را افزایش میدهد. ترکیب جداسازی شبکه از طریق رمزگذاری PSC و TLS، محیطی کاملاً امن برای پیشبینیهای آنلاین شما فراهم میکند، تأخیر را کاهش میدهد و وضعیت امنیتی شما را به طور قابل توجهی تقویت میکند.

آنچه خواهید ساخت
در این آموزش، شما Gemma 3 را از Model Garden دانلود خواهید کرد که در Vertex AI Online Inference به عنوان یک نقطه پایانی خصوصی قابل دسترسی از طریق Private Service Connect میزبانی میشود. تنظیمات سرتاسری شما شامل موارد زیر خواهد بود:
- مدل باغ مدل: شما Gemma 3 را از باغ مدل Vertex AI انتخاب کرده و آن را در یک نقطه پایانی Private Service Connect مستقر خواهید کرد.
- اتصال به سرویس خصوصی: شما یک نقطه پایانی مصرفکننده را در ابر خصوصی مجازی (VPC) خود پیکربندی خواهید کرد که شامل یک آدرس IP داخلی در شبکه خودتان است.
- اتصال امن به Vertex AI: نقطه پایانی PSC، ضمیمه سرویسی را که به طور خودکار توسط Vertex AI برای استقرار مدل خصوصی شما تولید میشود، هدف قرار میدهد. این یک اتصال خصوصی برقرار میکند و تضمین میکند که ترافیک بین VPC شما و نقطه پایانی ارائه دهنده مدل، از اینترنت عمومی عبور نمیکند.
- پیکربندی کلاینت در VPC شما: شما یک کلاینت (مثلاً Compute Engine VM) را در VPC خود تنظیم خواهید کرد تا درخواستهای استنتاج را با استفاده از آدرس IP داخلی نقطه پایانی PSC به مدل مستقر ارسال کند.
- تأیید رمزگذاری TLS: از ماشین مجازی کلاینت درون VPC خود، از ابزارهای استاندارد ( openssl s_client ) برای اتصال به آدرس IP داخلی نقطه پایانی PSC استفاده خواهید کرد. این مرحله به شما امکان میدهد با بررسی جزئیات handshake و گواهی سرور ارائه شده، تأیید کنید که کانال ارتباطی با سرویس Vertex AI در واقع با استفاده از TLS رمزگذاری شده است.
در پایان، شما یک نمونه کاربردی از یک مدل Model Garden خواهید داشت که به صورت خصوصی ارائه میشود و فقط از طریق شبکه VPC تعیینشده شما قابل دسترسی است.
آنچه یاد خواهید گرفت
در این آموزش، یاد خواهید گرفت که چگونه یک مدل از Vertex AI Model Garden را مستقر کنید و آن را با استفاده از Private Service Connect (PSC) به صورت ایمن از طریق Virtual Private Cloud (VPC) خود در دسترس قرار دهید. این روش به برنامههای شما در VPC (مصرفکننده) شما اجازه میدهد تا به صورت خصوصی و بدون نیاز به عبور از اینترنت عمومی، به نقطه پایانی مدل Vertex AI (سرویس تولیدکننده) متصل شوند.
به طور خاص، شما یاد خواهید گرفت:
- درک PSC برای هوش مصنوعی Vertex: چگونه PSC ارتباطات خصوصی و امن بین مصرفکننده و تولیدکننده را ممکن میسازد. VPC شما میتواند با استفاده از آدرسهای IP داخلی به مدل Model Garden مستقر شده دسترسی پیدا کند.
- استقرار یک مدل با دسترسی خصوصی: نحوه پیکربندی یک نقطه پایانی هوش مصنوعی Vertex برای مدل Model Garden شما جهت استفاده از PSC و تبدیل آن به یک نقطه پایانی خصوصی.
- نقش پیوست سرویس: وقتی مدلی را در یک نقطه پایانی هوش مصنوعی Vertex خصوصی مستقر میکنید، Google Cloud به طور خودکار یک پیوست سرویس در یک پروژه مستاجر تحت مدیریت گوگل ایجاد میکند. این پیوست سرویس، سرویس ارائه دهنده مدل را در اختیار شبکههای مصرفکننده قرار میدهد.
- ایجاد یک نقطه پایانی PSC در VPC شما:
- چگونه میتوان URI منحصر به فرد ضمیمه سرویس را از جزئیات Vertex AI Endpoint مستقر شده خود دریافت کرد.
- نحوه رزرو یک آدرس IP داخلی در زیرشبکه انتخابی شما در VPC.
- چگونه یک قانون ارسال (Forwarding Rule) در VPC خود ایجاد کنیم که به عنوان نقطه پایانی PSC عمل کند و ضمیمه سرویس Vertex AI را هدف قرار دهد. این نقطه پایانی، مدل را از طریق IP داخلی رزرو شده قابل دسترسی میکند.
- ایجاد اتصال خصوصی: نحوه اتصال نقطه پایانی PSC در VPC شما به ضمیمه سرویس، و ایجاد پل ارتباطی ایمن بین شبکه شما و سرویس Vertex AI.
- ارسال درخواستهای استنتاج به صورت خصوصی: نحوه ارسال درخواستهای پیشبینی از منابع (مانند ماشینهای مجازی موتور محاسباتی) در VPC شما به آدرس IP داخلی نقطه پایانی PSC.
- اعتبارسنجی: مراحلی برای آزمایش و تأیید اینکه میتوانید با موفقیت درخواستهای استنتاج را از VPC خود به مدل Model Garden مستقر شده از طریق اتصال خصوصی ارسال کنید.
- تأیید رمزگذاری TLS: نحوه استفاده از ابزارهای درون کلاینت VPC شما (مثلاً یک ماشین مجازی Compute Engine) برای اتصال از طریق TLS به آدرس IP داخلی PSC Endpoint.
با تکمیل این مرحله، شما قادر خواهید بود مدلهایی از Model Garden را میزبانی کنید که فقط از زیرساخت شبکه خصوصی شما قابل دسترسی هستند.
آنچه نیاز دارید
پروژه ابری گوگل
مجوزهای IAM
- مدیر پلتفرم هوش مصنوعی (نقشها/ml.Admin)
- مدیر شبکه محاسباتی (roles/compute.networkAdmin)
- مدیر نمونه محاسباتی (roles/compute.instanceAdmin)
- مدیر امنیت محاسبات (roles/compute.securityAdmin)
- مدیر DNS (roles/dns.admin)
- کاربر تونل امنشده توسط IAP (roles/iap.tunnelResourceAccessor)
- مدیر ثبت وقایع (roles/logging.admin)
- مدیر نوتبوکها (roles/notebooks.admin)
- مدیر مدیریت ورودی و خروجی پروژه (roles/resourcemanager.projectIamAdmin)
- مدیر حساب کاربری سرویس (roles/iam.serviceAccountAdmin)
- مدیر استفاده از سرویس (roles/serviceusage.serviceUsageAdmin)
۲. قبل از شروع
پروژه را برای پشتیبانی از آموزش بهروزرسانی کنید
این آموزش از متغیرها (variables) برای کمک به پیادهسازی پیکربندی gcloud در Cloud Shell استفاده میکند.
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid
فعالسازی API
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"
gcloud services enable dns.googleapis.com
۳. استقرار مدل
برای استقرار مدل خود از Model Garden مراحل زیر را دنبال کنید
در کنسول گوگل کلود، به Model Garden بروید و Gemma 3 را جستجو و انتخاب کنید.

روی Deploy مدل کلیک کنید و Vertex AI را انتخاب کنید.

در پایین بخش تنظیمات استقرار، گزینه ویرایش تنظیمات (Edit Settings) را انتخاب کنید.

در پنل Deploy on Vertex AI، مطمئن شوید که Endpoint Access به عنوان Private Service Connect پیکربندی شده است، سپس پروژه خود را انتخاب کنید.

برای سایر گزینهها، همه پیشفرضها را رها کنید، سپس در پایین گزینه Deploy را انتخاب کنید و وضعیت استقرار را بررسی کنید.

در model Garden، ناحیهی us-central1 را انتخاب کنید که مدل Gemma 3 و نقطهی پایانی را فراهم میکند. استقرار مدل تقریباً ۵ دقیقه طول میکشد.

پس از تکمیل، نقطه پایانی ظرف 30 دقیقه به حالت "فعال" منتقل میشود.

با انتخاب نقطه پایانی، شناسه نقطه پایانی را بدست آورده و یادداشت کنید.

نقطه پایانی را برای بازیابی شناسه نقطه پایانی و بهروزرسانی متغیر انتخاب کنید. در مثال نشان داده شده، شناسه ۱۹۳۴۷۶۹۹۲۹۴۶۷۱۹۹۴۸۸ است.
درون Cloud Shell، موارد زیر را انجام دهید:
endpointID=<Enter_Your_Endpoint_ID>
region=us-central1
برای دریافت URI پیوست سرویس اتصال خصوصی، مراحل زیر را انجام دهید. این رشته URI توسط مصرفکننده هنگام استقرار یک نقطه پایانی مصرفکننده PSC استفاده میشود.
درون Cloud Shell، از متغیر Endpoint ID/Region استفاده کنید، سپس دستور زیر را اجرا کنید:
gcloud ai endpoints describe $endpointID --region=$region | grep -i serviceAttachment:
در زیر یک مثال آورده شده است:
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 را در متغیری به نام "Service_attachment" کپی کنید، بعداً هنگام ایجاد اتصال PSC به آن نیاز خواهید داشت.
user@cloudshell:$ Service_attachment=<Enter_Your_ServiceAttachment>
۴. تنظیمات مصرفکننده
ایجاد VPC مصرفکننده
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
زیرشبکه ماشین مجازی مصرفکننده را ایجاد کنید
درون Cloud Shell، موارد زیر را انجام دهید:
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
زیرشبکه PSC Endpoint را درون Cloud Shell ایجاد کنید و مراحل زیر را انجام دهید:
gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=$region
۵. فعال کردن پرداخت درون برنامهای (IAP)
برای اینکه به IAP اجازه دهید به ماشینهای مجازی شما متصل شود، یک قانون فایروال ایجاد کنید که:
- برای تمام نمونههای ماشین مجازی که میخواهید با استفاده از IAP به آنها دسترسی داشته باشید، اعمال میشود.
- اجازه ورود ترافیک از محدوده IP 35.235.240.0/20 را میدهد. این محدوده شامل تمام آدرسهای IP است که IAP برای ارسال TCP استفاده میکند.
در داخل Cloud Shell، قانون فایروال IAP را ایجاد کنید.
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
۶. ایجاد نمونههای ماشین مجازی مصرفکننده
درون Cloud Shell، نمونه ماشین مجازی مصرفکننده، یعنی 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
۷. نقاط پایانی اتصال سرویس خصوصی
مصرفکننده یک نقطه پایانی مصرفکننده (قانون ارسال) با یک آدرس IP داخلی در VPC خود ایجاد میکند. این نقطه پایانی PSC، پیوست سرویس تولیدکننده را هدف قرار میدهد. کلاینتهای درون VPC مصرفکننده یا شبکه ترکیبی میتوانند برای رسیدن به سرویس تولیدکننده، ترافیک را به این آدرس IP داخلی ارسال کنند.
یک آدرس IP برای نقطه پایانی مصرفکننده رزرو کنید.
درون Cloud Shell، قانون ارسال را ایجاد کنید.
gcloud compute addresses create psc-address \
--project=$projectid \
--region=$region \
--subnet=pscendpoint-subnet \
--addresses=10.10.10.6
تأیید کنید که آدرس IP رزرو شده است.
در داخل Cloud Shell، آدرس IP رزرو شده را فهرست کنید.
gcloud compute addresses list
باید آدرس IP رزرو شدهی 10.10.10.6 را مشاهده کنید.

با مشخص کردن URI پیوست سرویس، target-service-attachment، که در مرحله قبل، بخش Deploy Model، ثبت کردید، نقطه پایانی مصرفکننده را ایجاد کنید.
درون Cloud Shell، پیوست شبکه را شرح دهید.
gcloud compute forwarding-rules create psc-consumer-ep \
--network=consumer-vpc \
--address=psc-address \
--region=$region \
--target-service-attachment=$Service_attachment \
--project=$projectid
تأیید کنید که پیوست سرویس، نقطه پایانی را میپذیرد.
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=$region
در پاسخ، مطمئن شوید که وضعیت "ACCEPTED" در فیلد pscConnectionStatus نمایش داده شود.

۸. برای اتصال به نقطه پایانی Vertex HTTPS از طریق TLS تنظیم کنید
یک منطقه خصوصی DNS ایجاد کنید تا بتوانید بدون نیاز به مشخص کردن آدرس IP، استنتاج آنلاین را دریافت کنید.
درون Cloud Shell، موارد زیر را انجام دهید:
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."
یک رکورد برای نگاشت دامنه به آدرس IP PSC ایجاد کنید.
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud dns record-sets create "*.prediction.p.vertexai.goog." \
--zone=vertex \
--type=A \
--ttl=300 \
--rrdatas="10.10.10.6"
یک نمونه Cloud Router به عنوان پیشنیاز برای یک نمونه NAT ایجاد کنید.
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud compute routers create consumer-cr \
--region=$region --network=consumer-vpc \
--asn=65001
یک نمونه Cloud NAT ایجاد کنید که برای دانلود بستههای openssl و dnsutils استفاده میشود.
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud compute routers nats create consumer-nat-gw \
--router=consumer-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
از طریق ssh (کنسول) به ماشین مجازی Consumer متصل شوید. در داخل Cloud Shell، موارد زیر را انجام دهید:
gcloud compute ssh --zone "us-central1-a" "consumer-vm" --tunnel-through-iap --project "$projectid"
بستههای زیر را بهروزرسانی کنید، open-ssl را نصب کنید و ابزارهای DNS را نصب کنید.
درون Cloud Shell، موارد زیر را انجام دهید:
sudo apt update
sudo apt install openssl
sudo apt-get install -y dnsutils
در مرحله بعد به شماره پروژه نیاز خواهید داشت. برای دریافت شماره پروژه خود، دستور زیر را از cloud shell اجرا کنید و آن را در یک متغیر قرار دهید:
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud projects describe $projectid --format="value(projectNumber)"
Example Output: 549538389202
projectNumber=549538389202
در چند مرحله بعدی به چند متغیر دیگر نیاز خواهید داشت که باید تعریف شوند. این متغیرها ( ENDPOINT_ID ، REGION ، VERTEX_AI_PROJECT_ID ) را ابتدا با گرفتن آنها از پوسته ابری و سپس ایجاد همان متغیرها در ماشین مجازی تعریف کنید.
درون Cloud Shell، موارد زیر را انجام دهید:
echo $projectNumber
echo $projectid
echo $region
echo $endpointID
مثال خروجی زیر:
549538389202
test4-473419
Us-central1
1934769929467199s
در ماشین مجازی مصرفکننده خود، این متغیرها را اضافه کنید - مثال زیر:
projectNumber=1934769929467199488
projectid=test4-473419
region=us-central1
endpointID=1934769929467199488
با اجرای دستور زیر از دایرکتوری خانگی خود در ماشین مجازی، گواهی Vertex AI را دانلود کنید. این دستور فایلی با نام 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.

گواهی را به مخزن اعتماد سیستم منتقل کنید.
sudo mv vertex_certificate.crt /usr/local/share/ca-certificates
مدیر گواهی را بهروزرسانی کنید.
sudo update-ca-certificates
بعد از آپدیت شدن باید این شکلی بشه.
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.
۹. تست نهایی از ماشین مجازی مصرفکننده
در ماشین مجازی مصرفکننده، با اعتبارنامههای پیشفرض برنامه، مجدداً احراز هویت کنید و محدودههای هوش مصنوعی Vertex را مشخص کنید:
gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform
در ماشین مجازی مصرفکننده، دستور curl زیر را اجرا کنید تا پیشبینی مدل Gemini خود را با این اعلان آزمایش کنید: «چه چیزی وزن بیشتری از ۱ پوند پر یا سنگ دارد؟»
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?"}] }'
نتیجه نهایی - موفقیت!!!
نتیجهای که باید در پایین خروجی، پیشبینی Gemma 3 را ببینید، نشان میدهد که شما توانستید از طریق نقطه پایانی PSC به صورت خصوصی به نقطه پایانی API دسترسی پیدا کنید.
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
۱۰. تمیز کردن
از Cloud Shell، اجزای آموزشی را حذف کنید.
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
۱۱. تبریک
تبریک میگوییم، شما با موفقیت دسترسی خصوصی به API Gemma 3 که در Vertex AI Prediction میزبانی شده است را با استفاده از یک Private Service Connect Endpoint و با استفاده از یک گواهی خودامضا که از Vertex AI دریافت شده و در مخزن اعتماد ماشینهای مجازی مستقر شده است، پیکربندی و تأیید کردید.
شما زیرساخت مصرفکننده را ایجاد کردید، از جمله رزرو یک آدرس IP داخلی، پیکربندی یک نقطه پایانی اتصال سرویس خصوصی (یک قانون ارسال) در VPC و DNS خصوصی خود برای مطابقت با گواهی خود امضا شده *prediction.p.vertexai.goog. این نقطه پایانی با هدف قرار دادن پیوست سرویس مرتبط با مدل Gemma 3 مستقر شده شما، به طور ایمن به سرویس Vertex AI متصل میشود.
این تنظیمات تضمین میکند که برنامههای شما در VPC یا شبکههای متصل میتوانند با استفاده از یک آدرس IP داخلی و با استفاده از گواهینامهها، به صورت خصوصی با Gemma 3 API تعامل داشته باشند. تمام ترافیک در شبکه گوگل باقی میماند و هرگز از اینترنت عمومی عبور نمیکند.