۱. مقدمه
رابط اتصال سرویس خصوصی منبعی است که به یک شبکه ابر خصوصی مجازی (VPC) تولیدکننده اجازه میدهد تا اتصالاتی را به مقاصد مختلف در یک شبکه VPC مصرفکننده آغاز کند. شبکههای تولیدکننده و مصرفکننده میتوانند در پروژهها و سازمانهای مختلف باشند.
اگر یک اتصال شبکه، اتصالی را از رابط Private Service Connect بپذیرد، Google Cloud یک آدرس IP از زیرشبکه مصرفکننده که توسط اتصال شبکه مشخص شده است، به رابط اختصاص میدهد. شبکههای مصرفکننده و تولیدکننده به هم متصل هستند و میتوانند با استفاده از آدرسهای IP داخلی ارتباط برقرار کنند.
اتصال بین یک اتصال شبکه و یک رابط Private Service Connect مشابه اتصال بین یک نقطه پایانی Private Service Connect و یک اتصال سرویس است، اما دو تفاوت کلیدی دارد:
- یک اتصال شبکه به شبکه تولیدکننده اجازه میدهد تا اتصالاتی را به شبکه مصرفکننده آغاز کند (خروجی سرویس مدیریتشده)، در حالی که یک نقطه پایانی به شبکه مصرفکننده اجازه میدهد تا اتصالاتی را به شبکه تولیدکننده آغاز کند (ورودی سرویس مدیریتشده).
- اتصال رابط Private Service Connect از نوع انتقالی است. این بدان معناست که یک شبکه تولیدکننده میتواند با شبکههای دیگری که به شبکه مصرفکننده متصل هستند، ارتباط برقرار کند.
ملاحظات دسترسیپذیری رابط کاربری PSC در Vertex AI
- رابط PSC قادر به مسیریابی ترافیک به VPC یا مقصدهای مبتنی بر on-premesis در بلوک آدرس RFC1918 است.
- رابط PSC که بلوکهای آدرس غیر rfc-1918 را هدف قرار میدهد، نیاز به یک پروکسی صریح مستقر در VPC مصرفکننده با آدرس rfc-1918 دارد. در استقرار Vertex AI، پروکسی باید به همراه یک FQDN از نقطه پایانی هدف تعریف شود.
- وقتی که شما سیستم خود را فقط با رابط PSC پیکربندی میکنید، دسترسی پیشفرض به اینترنت حفظ میشود. این ترافیک خروجی مستقیماً از شبکه امن و تحت مدیریت گوگل خارج میشود.
ملاحظات رابط VPC-SC در Vertex AI PSC
- وقتی پروژه شما بخشی از محیط کنترلهای سرویس VPC است، دسترسی پیشفرض اینترنت مستاجران تحت مدیریت گوگل توسط محیط مسدود میشود تا از نشت دادهها جلوگیری شود.
- برای اینکه در این سناریو به استقرار اجازه دسترسی به اینترنت عمومی داده شود، باید صریحاً یک مسیر خروجی امن پیکربندی کنید که ترافیک را از طریق VPC شما هدایت کند.
- راه پیشنهادی برای دستیابی به این هدف، راهاندازی یک سرور پروکسی در محیط VPC شما با آدرس RFC1918 و ایجاد یک دروازه Cloud NAT است تا به ماشین مجازی پروکسی اجازه دسترسی به اینترنت را بدهد.
برای اطلاعات تکمیلی، به منابع زیر مراجعه کنید:
استقرار یک عامل | هوش مصنوعی مولد روی Vertex AI | گوگل کلود
راهاندازی رابط اتصال سرویس خصوصی برای منابع هوش مصنوعی Vertex | گوگل کلود
آنچه خواهید ساخت
در این آموزش، شما قصد دارید یک موتور عامل جامع با رابط کاربری Private Service Connect (PSC) بسازید تا امکان اتصال به یک سایت عمومی (https://api.frankfurter.app/) را از طریق یک ماشین مجازی پروکسی مستقر در VPC مصرفکننده با آدرس RFC1918 فراهم کند. این نمونه استقرار در یک پروژه با قابلیت VPC-SC یا برای مدیرانی که نیاز به خروجی اینترنت از طریق شبکه مشتریان به جای VPC مستاجر دارند، قابل اجرا است.
شکل ۱

شما یک psc-network-attachment واحد در VPC مصرفکننده ایجاد خواهید کرد که از DNS peering برای حل مشکل proxy-vm شبکه مصرفکننده در پروژه مستاجر میزبان Agent Engine استفاده میکند و موارد استفاده زیر را به همراه خواهد داشت:
موتور عامل را مستقر کنید و یک ماشین مجازی پروکسی را طوری پیکربندی کنید که به عنوان یک پروکسی صریح عمل کند و به آن اجازه دهد به یک URL عمومی https://api.frankfurter.app دسترسی پیدا کند.
آنچه یاد خواهید گرفت
- نحوه ایجاد پیوست شبکه
- چگونه یک تولیدکننده میتواند از یک اتصال شبکه برای ایجاد رابط PSC استفاده کند
- نحوه برقراری ارتباط از تولیدکننده به مصرفکننده با استفاده از DNS Peering
- نحوه استقرار و استفاده از یک ماشین مجازی پروکسی برای خروجی اینترنت
آنچه نیاز دارید
پروژه ابری گوگل
مجوزهای IAM
- مدیر شبکه محاسباتی (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-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
فعالسازی API
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "dns.googleapis.com"
gcloud services enable "notebooks.googleapis.com"
gcloud services enable "storage.googleapis.com"
gcloud services enable "iap.googleapis.com"
تأیید کنید که APIها با موفقیت فعال شدهاند
gcloud services list --enabled
۳. تنظیمات مصرفکننده
ایجاد VPC مصرفکننده
این VPC در یک پروژه مشتری قرار دارد. منابع زیر در این VPC ایجاد خواهند شد.
- زیرشبکه مصرفکننده
- زیرشبکه پیوست شبکه
- روتر ابری (برای Cloud NAT مورد نیاز است)
- NAT ابری
درون Cloud Shell، موارد زیر را انجام دهید:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
زیرشبکههای مصرفکننده را ایجاد کنید
درون Cloud Shell، زیرشبکه (subnet) را برای ماشین مجازی پروکسی (Proxy VM) ایجاد کنید:
gcloud compute networks subnets create rfc1918-subnet1 --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1
زیرشبکه اتصال شبکه خصوصی (Private Service Connect Network Attachment subnet) را ایجاد کنید.
درون Cloud Shell، زیرشبکهای برای PSC Network Attachment ایجاد کنید:
gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1
پیکربندی روتر ابری و NAT
در این آموزش، از Cloud NAT برای فراهم کردن دسترسی به اینترنت برای ماشین مجازی پروکسی استفاده میشود که آدرس IP عمومی ندارد. Cloud NAT به ماشینهای مجازی که فقط آدرسهای IP خصوصی دارند، امکان اتصال به اینترنت را میدهد و به آنها اجازه میدهد کارهایی مانند نصب بستههای نرمافزاری را انجام دهند.
درون Cloud Shell، روتر ابری را ایجاد کنید.
gcloud compute routers create cloud-router-for-nat --network consumer-vpc --region us-central1
درون Cloud Shell، یک دروازه NAT با قابلیت ثبت وقایع (logging) ایجاد کنید. ما از ثبت وقایع برای اعتبارسنجی دسترسی به IP عمومی برای Frankfurter API (https://api.frankfurter.app/) استفاده خواهیم کرد.
gcloud compute routers nats create cloud-nat-us-