מארחים מקומיים יכולים להגיע ל-Agent Platform דרך האינטרנט הציבורי או באופן פרטי דרך ארכיטקטורת רשת היברידית שמשתמשת ב-Private Service Connect (PSC) דרך Cloud VPN או Cloud Interconnect. שתי האפשרויות מציעות הצפנה באמצעות SSL/TLS. עם זאת, האפשרות הפרטית מציעה ביצועים טובים בהרבה, ולכן מומלצת לאפליקציות קריטיות.
במדריך הזה משתמשים ב-High-Availability VPN (HA VPN) כדי לגשת ל-Agent Platform באופן ציבורי, דרך Cloud NAT, ובאופן פרטי, בין שתי רשתות ענן וירטואלי פרטי (VPC) שיכולות לשמש כבסיס לקישוריות פרטית בין סביבות מרובות עננים ובין סביבות מקומיות.
המדריך הזה מיועד לאדמינים של רשתות ארגוניות, למדעני נתונים ולחוקרים שמכירים את פלטפורמת הסוכנים של Gemini Enterprise, את VPC, את Cloud de Confiance המסוף ואת Cloud Shell. היכרות עם Agent Platform יכולה לעזור, אבל היא לא חובה.
מטרות
- יוצרים שתי רשתות VPC, כמו שמוצג בתרשים הקודם:
- הערך 1 (
onprem-vpc) מייצג רשת מקומית. - השני (
vertex-networking-vpc) הוא לגישה ל-API בארכיטקטורת REST של Agent Platform.
- הערך 1 (
- פריסת שערי HA VPN, מנהרות Cloud VPN ו-Cloud Routers כדי לחבר בין
vertex-networking-vpcל-onprem-vpc. - יוצרים נקודת קצה (endpoint) של Private Service Connect (PSC) כדי להעביר בקשות ל-GenAI API בארכיטקטורת REST.
- מגדירים מסלול מותאם אישית שמוכרז על ידי Cloud Router ב-
vertex-networking-vpcכדי להכריז על מסלולים לנקודת הקצה (endpoint) של Private Service Connect אלonprem-vpc. - יוצרים מכונה וירטואלית ב-Compute Engine ב-
onprem-vpcכדי לייצג אפליקציית לקוח ששולחת בקשות ל-API בארכיטקטורת REST של AI גנרטיבי דרך HA VPN.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Cloud de Confiance by S3NS, והשימוש בהם כרוך בתשלום:
- Artifact Registry
- Cloud NAT
- Cloud Storage
- Cloud VPN
- Compute Engine
- Gemini Enterprise Agent Platform
- Virtual Private Cloud
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
-
נכנסים לדף לבחירת הפרויקט במסוף Cloud de Confiance .
-
בוחרים או יוצרים Cloud de Confiance פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
- אם אתם לא בעלי הפרויקט, בעלי הפרויקט צריכים להקצות לכם את
roles/resourcemanager.projectIamAdminתפקיד ה-IAM. אתם צריכים את התפקיד הזה כדי להקצות לעצמכם ולחשבונות שירות תפקידים והרשאות ב-IAM. - פותחים את Cloud Shell כדי להריץ את הפקודות שמפורטות במדריך הזה. Cloud Shell היא סביבת מעטפת אינטראקטיבית של Cloud de Confiance שמאפשרת לכם לנהל את הפרויקטים והמשאבים שלכם מדפדפן האינטרנט.
- ב-Cloud Shell, מגדירים את הפרויקט הנוכחי למזהה הפרויקט Cloud de Confiance by S3NS ומאחסנים את אותו מזהה פרויקט במשתנה shell
projectid: מחליפים את PROJECT_ID במזהה הפרויקט. במקרה הצורך, אפשר לאתר את מזהה הפרויקט במסוף Cloud de Confiance . מידע נוסף זמין במאמר איך מאתרים את מזהה הפרויקט.projectid="PROJECT_ID" gcloud config set project ${projectid} -
מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/compute.instanceAdmin.v1, roles/compute.networkAdmin, roles/compute.securityAdmin, roles/dns.admin, roles/iap.tunnelResourceAccessor, roles/iam.serviceAccountCreator, roles/iam.serviceAccountUser, roles/iam.serviceAccountDeleter, roles/resourcemanager.projectIamAdmin, roles/servicedirectory.editor, roles/servicemanagement.quotaAdmin, roles/aiplatform.usergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
USER_IDENTIFIER: המזהה של חשבון המשתמש חשבון. דוגמאות מופיעות במאמר ייצוג המשתמשים במאגרי כוח עבודה בכללי מדיניות IAM. -
ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
-
מפעילים את ממשקי ה-API של DNS, IAM, Compute Engine, Service Usage ו-Agent Platform, אם חלק מהם לא מופעלים כבר:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable dns.googleapis.com
iam.googleapis.com compute.googleapis.com serviceusage.googleapis.com aiplatform.googleapis.com
יוצרים שתי רשתות VPC: vertex-networking-vpc ו-onprem-vpc
בקטע הזה, יוצרים שתי רשתות VPC: אחת שתשמש כרשת הראשית לגישה ל-API של Gemini Enterprise Agent Platform ל-AI גנרטיבי (שנקרא גם GenAI), והשנייה כדי לדמות את הרשת המקומית.
יצירת רשתות VPC
יוצרים את רשת ה-VPC לגישה ל-GenAI API (
vertex-networking-vpc):gcloud compute networks create vertex-networking-vpc --subnet-mode customיוצרים את רשת ה-VPC כדי לדמות את הרשת המקומית (
onprem-vpc):gcloud compute networks create onprem-vpc --subnet-mode customברשת
onprem-vpc, יוצרים תת-רשת בשםonprem-vpc-subnet1עם טווח IPv4 ראשי של172.16.10.0/24:gcloud compute networks subnets create onprem-vpc-subnet1 \ --range 172.16.10.0/24 \ --network onprem-vpc \ --region us-central1במסוף Cloud de Confiance , עוברים לכרטיסייה Networks in current project בדף רשת VPC.
ברשימת רשתות ה-VPC, מוודאים ששתי הרשתות נוצרו:
vertex-networking-vpcו-onprem-vpc.בדף VPC network (רשת VPC), לוחצים על הכרטיסייה Subnets in current project (תת-רשתות בפרויקט הנוכחי).
ברשימת תת-הרשתות של ה-VPC, מוודאים שתת-הרשת
onprem-vpc-subnet1נוצרה ברשתonprem-vpc.
הגדרת קישוריות היברידית
בקטע הזה, יוצרים שני שערי HA VPN שמחוברים זה לזה. אחד נמצא ברשת ה-VPC vertex-networking-vpc. השני נמצא ברשת onprem-vpc VPC.
כל שער מכיל Cloud Router וצמד מנהרות VPN.
יצירת שערי HA VPN
יוצרים ב-Cloud Shell שער HA VPN לרשת
vertex-networking-vpcVPC:gcloud compute vpn-gateways create vertex-networking-vpn-gw1 \ --network vertex-networking-vpc \ --region us-central1יוצרים את שער HA VPN לרשת ה-VPC
onprem-vpc:gcloud compute vpn-gateways create onprem-vpn-gw1 \ --network onprem-vpc \ --region us-central1במסוף Cloud de Confiance , עוברים לכרטיסייה Cloud VPN Gateways בדף VPN.
ברשימת שערים ה-VPN, מוודאים ששני השערים (
vertex-networking-vpn-gw1ו-onprem-vpn-gw1) נוצרו ושלכל אחד מהם יש שתי כתובות IP.
יצירת Cloud Routers
יוצרים Cloud Router ברשת ה-VPC
vertex-networking-vpcב-Cloud Shell:gcloud compute routers create vertex-networking-vpc-router1 \ --region us-central1\ --network vertex-networking-vpc \ --asn 65001יוצרים Cloud Router לרשת ה-VPC
onprem-vpc:gcloud compute routers create onprem-vpc-router1 \ --region us-central1\ --network onprem-vpc\ --asn 65002
הוספת שער Cloud NAT לרשת ה-VPC onprem-vpc
בשלב הזה, מוסיפים שער Cloud NAT ל-Cloud Router של רשת ה-VPC onprem-vpc.
שער Cloud NAT מספק קישוריות יוצאת למכונות וירטואליות (VM) של Compute Engine שאין להן כתובות IP חיצוניות.
ב-Cloud Shell, מוסיפים שער Cloud NAT ל-Cloud Router
onprem-vpc-router1gcloud compute routers nats create us-central-cloudnat-onprem \ --router=onprem-vpc-router1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges \ --region us-central1נכנסים לדף Cloud Routers במסוף Cloud de Confiance .
ברשימת Cloud Router, מוודאים שנוצרו
vertex-networking-vpc-router1ו-onprem-vpc-router1. יכול להיות שתצטרכו לרענן את כרטיסיית הדפדפן של מסוף Cloud de Confiance by S3NS כדי לראות את הערכים החדשים.ברשימת Cloud Router, לוחצים על
onprem-vpc-router1.בדף פרטי הנתב, מוודאים ששער
us-central-cloudnat-onpremCloud NAT נוצר.
יצירת מנהרות VPN
ברשת
vertex-networking-vpc, יוצרים מנהרת VPN בשםvertex-networking-vpc-tunnel0:gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel0 \ --peer-gcp-gateway onprem-vpn-gw1 \ --region us-central1 \ --ike-version 2 \ --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \ --router vertex-networking-vpc-router1 \ --vpn-gateway vertex-networking-vpn-gw1 \ --interface 0ברשת
vertex-networking-vpc, יוצרים מנהרת VPN בשםvertex-networking-vpc-tunnel1:gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel1 \ --peer-gcp-gateway onprem-vpn-gw1 \ --region us-central1 \ --ike-version 2 \ --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \ --router vertex-networking-vpc-router1 \ --vpn-gateway vertex-networking-vpn-gw1 \ --interface 1ברשת
onprem-vpc, יוצרים מנהרת VPN בשםonprem-vpc-tunnel0:gcloud compute vpn-tunnels create onprem-vpc-tunnel0 \ --peer-gcp-gateway vertex-networking-vpn-gw1 \ --region us-central1\ --ike-version 2 \ --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \ --router onprem-vpc-router1 \ --vpn-gateway onprem-vpn-gw1 \ --interface 0ברשת
onprem-vpc, יוצרים מנהרת VPN בשםonprem-vpc-tunnel1:gcloud compute vpn-tunnels create onprem-vpc-tunnel1 \ --peer-gcp-gateway vertex-networking-vpn-gw1 \ --region us-central1\ --ike-version 2 \ --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \ --router onprem-vpc-router1 \ --vpn-gateway onprem-vpn-gw1 \ --interface 1נכנסים לדף VPN במסוף Cloud de Confiance .
ברשימת מנהרות ה-VPN, מוודאים שנוצרו ארבע מנהרות VPN.
יצירת סשנים של BGP
Cloud Router משתמש בפרוטוקול Border Gateway Protocol (BGP) כדי להחליף מסלולים בין רשת ה-VPC (במקרה הזה, vertex-networking-vpc) לבין הרשת המקומית (שמיוצגת על ידי onprem-vpc). ב-Cloud Router, מגדירים ממשק ורשת שכנה של BGP לנתב המקומי.
הממשק והגדרת עמית BGP יוצרים יחד סשן BGP.
בקטע הזה יוצרים שתי סשנים של BGP עבור vertex-networking-vpc ושני סשנים עבור onprem-vpc.
אחרי שמגדירים את הממשקים ואת עמיתי ה-BGP בין הנתבים, הם מתחילים להחליף מסלולים באופן אוטומטי.
יצירת סשנים של BGP עבור vertex-networking-vpc
ב-Cloud Shell, ברשת
vertex-networking-vpc, יוצרים ממשק BGP ל-vertex-networking-vpc-tunnel0:gcloud compute routers add-interface vertex-networking-vpc-router1 \ --interface-name if-tunnel0-to-onprem \ --ip-address 169.254.0.1 \ --mask-length 30 \ --vpn-tunnel vertex-networking-vpc-tunnel0 \ --region us-central1ברשת
vertex-networking-vpc, יוצרים קישור בין רשתות שכנות באמצעות BGP למנהרהbgp-onprem-tunnel0:gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \ --peer-name bgp-onprem-tunnel0 \ --interface if-tunnel0-to-onprem \ --peer-ip-address 169.254.0.2 \ --peer-asn 65002 \ --region us-central1ברשת
vertex-networking-vpc, יוצרים ממשק BGP ל-vertex-networking-vpc-tunnel1:gcloud compute routers add-interface vertex-networking-vpc-router1 \ --interface-name if-tunnel1-to-onprem \ --ip-address 169.254.1.1 \ --mask-length 30 \ --vpn-tunnel vertex-networking-vpc-tunnel1 \ --region us-central1ברשת
vertex-networking-vpc, יוצרים קישור בין רשתות שכנות באמצעות BGP למנהרהbgp-onprem-tunnel1:gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \ --peer-name bgp-onprem-tunnel1 \ --interface if-tunnel1-to-onprem \ --peer-ip-address 169.254.1.2 \ --peer-asn 65002 \ --region us-central1
יצירת סשנים של BGP עבור onprem-vpc
ברשת
onprem-vpc, יוצרים ממשק BGP ל-onprem-vpc-tunnel0:gcloud compute routers add-interface onprem-vpc-router1 \ --interface-name if-tunnel0-to-vertex-networking-vpc \ --ip-address 169.254.0.2 \ --mask-length 30 \ --vpn-tunnel onprem-vpc-tunnel0 \ --region us-central1ברשת
onprem-vpc, יוצרים קישור בין רשתות שכנות באמצעות BGP למנהרהbgp-vertex-networking-vpc-tunnel0:gcloud compute routers add-bgp-peer onprem-vpc-router1 \ --peer-name bgp-vertex-networking-vpc-tunnel0 \ --interface if-tunnel0-to-vertex-networking-vpc \ --peer-ip-address 169.254.0.1 \ --peer-asn 65001 \ --region us-central1ברשת
onprem-vpc, יוצרים ממשק BGP ל-onprem-vpc-tunnel1:gcloud compute routers add-interface onprem-vpc-router1 \ --interface-name if-tunnel1-to-vertex-networking-vpc \ --ip-address 169.254.1.2 \ --mask-length 30 \ --vpn-tunnel onprem-vpc-tunnel1 \ --region us-central1ברשת
onprem-vpc, יוצרים קישור בין רשתות שכנות באמצעות BGP למנהרהbgp-vertex-networking-vpc-tunnel1:gcloud compute routers add-bgp-peer onprem-vpc-router1 \ --peer-name bgp-vertex-networking-vpc-tunnel1 \ --interface if-tunnel1-to-vertex-networking-vpc \ --peer-ip-address 169.254.1.1 \ --peer-asn 65001 \ --region us-central1
אימות של יצירת סשן BGP
נכנסים לדף VPN במסוף Cloud de Confiance .
ברשימת מנהרות ה-VPN, מוודאים שהערך בעמודה BGP session status עבור כל אחת מהמנהרות השתנה מ-Configure BGP session ל-BGP established. יכול להיות שתצטרכו לרענן את כרטיסיית הדפדפן של מסוף Cloud de Confiance by S3NS כדי לראות את הערכים החדשים.
יצירת נקודת הקצה (endpoint) של Private Service Connect (PSC)
בקטע הזה יוצרים נקודת קצה (endpoint) של Private Service Connect (PSC) לממשקי Google APIs, שמופעלים במכונות וירטואליות ברשת onprem-vpc, כדי לגשת אל GenAI API מהרשת onprem-vpc.
נקודת קצה (endpoint) של Private Service Connect (PSC) היא כתובת IP פנימית ברשת onprem-vpc שאפשר לגשת אליה ישירות מלקוחות ברשת הזו. נקודת הקצה הזו נוצרת על ידי פריסת כלל העברה שמפנה תעבורת רשת שתואמת לכתובת ה-IP של נקודת הקצה של PSC לחבילה של Google APIs: באופן ספציפי, לחבילה all-apis.
כתובת ה-IP של נקודת הקצה של PSC (192.168.0.1) תפורסם מ-vertex-networking-vpc-router Cloud Router כנתיב מותאם אישית לפרסום אל הרשת onprem-vpc בשלב מאוחר יותר.
שמירת כתובת IP פנימית גלובלית להקצאה לנקודת הקצה:
gcloud compute addresses create psc-googleapi-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=192.168.0.1 \ --network=vertex-networking-vpcיוצרים את נקודת הקצה, יחד עם כלל העברה שמקשר את נקודת הקצה לממשקי API ולשירותים של Google:
gcloud compute forwarding-rules create pscvertex \ --global \ --network=vertex-networking-vpc\ --address=psc-googleapi-ip \ --target-google-apis-bundle=all-apisמפרטים את נקודות הקצה של PSC שהוגדרו ומוודאים שנקודת הקצה
pscvertexנוצרה:gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --globalמקבלים את הפרטים של נקודת הקצה של PSC שהוגדרה ומוודאים שכתובת ה-IP היא
192.168.0.1:gcloud compute forwarding-rules describe \ pscvertex --global
יצירת פרסום של מסלולים מותאמים אישית עבור vertex-networking-vpc
בקטע הזה, יוצרים מסלול מותאם אישית לפרסום עבור vertex-networking-vpc-router1 (ה-Cloud Router של vertex-networking-vpc) כדי לפרסם את כתובת ה-IP של נקודת הקצה (endpoint) של PSC ברשת onprem-vpc.
נכנסים לדף Cloud Routers במסוף Cloud de Confiance .
ברשימת Cloud Router, לוחצים על
vertex-networking-vpc-router1.בדף פרטי הנתב, לוחצים על עריכה.
בקטע Advertised routes (מסלולים שפורסמו), באפשרות Routes (מסלולים), בוחרים באפשרות Create custom routes (יצירת מסלולים בהתאמה אישית).
מסמנים את תיבת הסימון פרסום כל רשתות המשנה שגלויות ל-Cloud Router כדי להמשיך לפרסם את רשתות המשנה שזמינות ל-Cloud Router. הפעלת האפשרות הזו מדמה את ההתנהגות של Cloud Router במצב ברירת המחדל של פרסום.
לוחצים על הוספת נתיב בהתאמה אישית.
בשדה מקור, בוחרים באפשרות טווח כתובות IP בהתאמה אישית.
בשדה טווח כתובות IP, מזינים את כתובת ה-IP הבאה:
192.168.0.1בקטע תיאור, מזינים את הטקסט הבא:
Custom route to advertise Private Service Connect endpoint IP addressלוחצים על סיום ואז על שמירה.
מוודאים ש-onprem-vpc למד את המסלולים שמפורסמים
נכנסים לדף Routes במסוף Cloud de Confiance .
בכרטיסייה Effective routes (מסלולים אפקטיביים), מבצעים את הפעולות הבאות:
- בקטע רשת, בוחרים באפשרות
onprem-vpc. - בשדה אזור, בוחרים באפשרות
us-central1 (Iowa). - לוחצים על הצגה.
ברשימת המסלולים, מוודאים שיש רשומות שהשמות שלהן מתחילים ב-
onprem-vpc-router1-bgp-vertex-networking-vpc-tunnel0וב-onprem-vpc-router1-bgp-vfertex-networking-vpc-tunnel1, ושבשתי הרשומות האלה טווח כתובות ה-IP של היעד הוא192.168.0.1/32. (192.168.0.1היא כתובת ה-IP של נקודת הקצה של PSC).אם הרשומות האלה לא מופיעות מיד, צריך לחכות כמה דקות ואז לרענן את כרטיסיית הדפדפן של מסוף Cloud de Confiance by S3NS .
- בקטע רשת, בוחרים באפשרות
הגדרת מכונה וירטואלית ברשת המקומית
בקטע הזה, יוצרים מכונה וירטואלית ב-Compute Engine ברשת ה-VPC onprem-vpc. המופע של המכונה הווירטואלית מדמה לקוח מקומי שמתחבר לנקודת הקצה של PSC וניגש ל-GenAI API.
יצירה של חשבון שירות שמנוהל על ידי משתמש
במדריך הזה יוצרים חשבון שירות שמנוהל על ידי המשתמשים בהתאם לשיטות המומלצות של Compute Engine ו-IAM.
ב-Cloud Shell, מריצים את הפקודות הבאות ומחליפים את PROJECT_ID במזהה הפרויקט:
projectid=PROJECT_ID gcloud config set project ${projectid}יוצרים את חשבון השירות:
gcloud iam service-accounts create user-managed-saמקצים לחשבון השירות את התפקיד משתמש ב-Agent Platform (
roles/aiplatform.user) ב-IAM:gcloud projects add-iam-policy-binding $projectid \ --member="serviceAccount:user-managed-sa@$projectid.s3ns.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
יצירת מופע VM on-prem-client
בשלב הזה יוצרים את המכונה הווירטואלית (VM), שמשתמשת בכתובת ה-IP של Private Service Connect (192.168.0.1) כדי לגשת לממשקי API של Google דרך HA VPN.
כדי לאפשר לשרת proxy לאימות זהויות (IAP) להתחבר למכונות הווירטואליות, צריך ליצור כלל חומת אש ש:
- רלוונטי לכל מכונות ה-VM שרוצים להפוך לנגישות דרך IAP. (במקרה הזה, יש רק
on-prem-client). - מאפשר תעבורת TCP דרך יציאה 22 מטווח כתובות ה-IP
35.235.240.0/20. הטווח הזה כולל את כל כתובות ה-IP שמשמשות את IAP להעברת TCP.
יוצרים את המכונה הווירטואלית
on-prem-client. הפקודה הבאה מתקינה גם את החבילותtcpdumpו-dnsutils, שמכילות את כלי השירותtcpdumpו-digשבהם תשתמשו בהמשך כדי לאמת את בקשות ה-API:gcloud compute instances create on-prem-client \ --zone=us-central1-a \ --image-family=debian-11 \ --image-project=debian-cloud \ --subnet=onprem-vpc-subnet1 \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --no-address \ --shielded-secure-boot \ --service-account=user-managed-sa@$projectid.s3ns.iam.gserviceaccount.com \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install tcpdump dnsutils -y"יוצרים כלל חומת אש של IAP בשם
ssh-iap-on-prem-vpc:gcloud compute firewall-rules create ssh-iap-on-prem-vpc \ --network onprem-vpc \ --allow tcp:22 \ --source-ranges=35.235.240.0/20
אימות גישה לאינטרנט הציבורי ל-Agent Platform
בקטע הזה, מתחברים למופע של מכונת on-prem-client VM באמצעות שרת proxy לאימות זהויות (IAP), ואז מריצים את הפקודה dig מול הדומיין הציבורי של Gemini Enterprise Agent Platform (us-central1-aiplatform.googleapis.com) כדי לאמת את הקישוריות הציבורית לממשקי API של Agent Platform (כולל AI גנרטיבי).
ב-Cloud Shell (כרטיסייה ראשונה), מריצים את הפקודות הבאות ומחליפים את PROJECT_ID במזהה הפרויקט:
projectid=PROJECT_ID gcloud config set project ${projectid}מתחברים למכונה הווירטואלית
on-prem-clientבאמצעות IAP:gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iapמריצים את הפקודה
dig:dig us-central1-aiplatform.googleapis.comאמור להופיע פלט
digשדומה לזה, שבו כתובות ה-IP בקטע התשובה הן כתובות IP ציבוריות:; <<>> DiG 9.16.44-Debian <<>> us-central1.aiplatfom.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42506 ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;us-central1.aiplatfom.googleapis.com. IN A ;; ANSWER SECTION: us-central1.aiplatfom.googleapis.com. 300 IN A 173.194.192.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.152.95 us-central1.aiplatfom.googleapis.com. 300 IN A 172.217.219.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.146.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.147.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.125.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.136.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.148.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.200.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.234.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.251.171.95 us-central1.aiplatfom.googleapis.com. 300 IN A 108.177.112.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.128.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.251.6.95 us-central1.aiplatfom.googleapis.com. 300 IN A 172.217.212.95 us-central1.aiplatfom.googleapis.com. 300 IN A 74.125.124.95 ;; Query time: 8 msec ;; SERVER: 169.254.169.254#53(169.254.169.254) ;; WHEN: Wed Sep 27 04:10:16 UTC 2023 ;; MSG SIZE rcvd: 321
הגדרה ואימות של גישה פרטית ל-Agent Platform
בקטע הזה נסביר איך להגדיר גישה פרטית ל-Agent Platform כדי שכשתשלחו בקשות לנקודת הקצה של השירות הציבורי (us-central1-aiplatform.googleapis.com), הן יופנו מחדש לנקודת הקצה של ה-PSC. נקודת הקצה (endpoint) של PSC מעבירה את הבקשה אל
מעדכנים את הקובץ /etc/hosts כך שיפנה לנקודת הקצה של PSC
בשלב הזה מוסיפים שורה לקובץ /etc/hosts שגורמת להפניה אוטומטית של בקשות שנשלחות לנקודת הקצה של השירות הציבורי (us-central1-aiplatform.googleapis.com) לנקודת הקצה של ה-PSC (192.168.0.1).
בכרטיסייה
on-prem-clientVM instance (מכונה וירטואלית), משתמשים בכלי לעריכת טקסט כמוvimאוnanoכדי לפתוח את הקובץ/etc/hosts:sudo vim /etc/hostsמוסיפים את השורה הבאה לקובץ:
192.168.0.1 us-central1-aiplatform.googleapis.comהשורה הזו מקצה את כתובת ה-IP של נקודת הקצה של PSC (
192.168.0.1) לשם הדומיין שמוגדר במלואו של Gemini Enterprise Agent Platform Google API (us-central1-aiplatform.googleapis.com).הקובץ אחרי העריכה אמור להיראות כך:
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.0.1 us-central1-aiplatform.googleapis.com # Added by you 172.16.10.6 on-prem-client.us-central1-a.c.vertex-genai-400103.internal on-prem-client # Added by Google 169.254.169.254 metadata.google.internal # Added by Googleשומרים את הקובץ באופן הבא:
- אם אתם משתמשים ב-
vim, לוחצים על המקשEscואז מקלידים:wqכדי לשמור את הקובץ ולצאת. - אם אתם משתמשים ב-
nano, מקלידיםControl+Oולוחצים עלEnterכדי לשמור את הקובץ, ואז מקלידיםControl+Xכדי לצאת.
- אם אתם משתמשים ב-
שולחים פינג לנקודת הקצה של Gemini Enterprise Agent Platform באופן הבא:
ping us-central1-aiplatform.googleapis.comהפלט הבא אמור להתקבל באמצעות הפקודה
ping. 192.168.0.1היא כתובת ה-IP של נקודת הקצה של PSC:PING us-central1-aiplatform.googleapis.com (192.168.0.1) 56(84) bytes of data.מקלידים
Control+Cכדי לצאת מ-ping.מריצים את הפקודה
tcpdumpהבאה כדי לאמת את פענוח ה-DNS ואת נתיב הנתונים של כתובת ה-IP כששולחים בקשת חיזוי מיידי לנקודת הקצה:sudo tcpdump -i any port 53 -n or host 192.168.0.1
יצירת הבקשה הפרטית
בשלב הזה יוצרים קובץ טקסט בשם request.json שמכיל את מטען הייעודי (payload) של בקשת curl לדוגמה ששולחים אל GenAI API בארכיטקטורת REST.
מידע נוסף על בקשות לדוגמה זמין במאמר בנושא בקשה לדוגמה.
כשפקודת
tcpdumpממשיכה לפעול בכרטיסייה הראשונה, פותחים סשן חדש של Cloud Shell (בכרטיסייה השנייה) בלחיצה על פתיחת כרטיסייה חדשה ב-Cloud Shell.בסשן החדש של Cloud Shell (כרטיסייה שנייה), מריצים את הפקודות הבאות ומחליפים את PROJECT_ID במזהה הפרויקט:
projectid=PROJECT_ID gcloud config set project ${projectid}מתחברים למכונה הווירטואלית
on-prem-clientבאמצעות IAP:gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iapמריצים את הפקודות הבאות ומחליפים את PROJECT_ID במזהה הפרויקט:
projectid=PROJECT_ID gcloud config set project ${projectid}משתמשים בכלי לעריכת טקסט כמו
vimאוnanoכדי ליצור קובץ חדש בשםrequest.jsonשמכיל את הטקסט הבא:{ "contents": [{ "role": "user", "parts": [{ "text": "Give me ten interview questions for the role of program manager." }] }] }מריצים את הפקודה הבאה כדי לשלוח בקשה לנקודת הקצה של PSC, שמעבירה את הבקשה ל-GenAI API. כשנקודת הקצה מקבלת את התגובה, היא מעבירה אותה בחזרה למכונת ה-
on-prem-clientVM:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/publishers/google/models/gemini-2.0-flash-lite:generateContent"אמורה להופיע תגובה שדומה לדוגמה הבאה:
{ "predictions": [ { "content": " 1. **What is your experience in managing programs?**\n2. **What are your strengths and weaknesses as a program manager?**\n3. **What is your approach to managing a program?**\n4. **How do you handle risks and challenges in a program?**\n5. **How do you communicate with stakeholders in a program?**\n6. **How do you measure the success of a program?**\n7. **What is your experience in working with cross-functional teams?**\n8. **What is your experience in managing budgets and resources?**\n9. **What is your experience in managing change in a program?**\n10. **What are your career goals as a program manager?**", "citationMetadata": { "citations": [] }, "safetyAttributes": { "categories": [ "Finance", "Health" ], "blocked": false, "scores": [ 0.6, 0.1 ] } } ], "metadata": { "tokenMetadata": { "outputTokenCount": { "totalBillableCharacters": 505, "totalTokens": 153 }, "inputTokenCount": { "totalBillableCharacters": 54, "totalTokens": 12 } } } }בכרטיסייה הראשונה, מוודאים שכתובת ה-IP של נקודת הקצה של PSC (
192.168.0.1) שימשה לגישה לממשקי API של Agent Platform ממופע המכונה הווירטואליתon-prem-client(רשת המשנה172.16.10.0/28).במסוף
tcpdumpבכרטיסייה הראשונה של Cloud Shell, אפשר לראות שלא צריך לבצע חיפוש DNS ל-us-central1-aiplatform.googleapis.com, כי השורה שהוספתם לקובץ/etc/hostsמקבלת עדיפות, וכתובת ה-IP של נקודת הקצה של PSC (192.168.0.1) משמשת בנתיב הנתונים.הפלט
tcpdumpאמור להיראות כך:23:48:49.938797 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2054:2093, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 39 23:48:49.938947 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2093:2117, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 24 23:48:49.939839 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [F.], seq 2117, ack 6264, win 501, options [nop,nop,TS val 2943864306 ecr 2340789954], length 0 23:48:49.940292 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0 23:48:49.940437 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [F.], seq 6264, ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0 23:48:49.940442 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [.], ack 6265, win 501, options [nop,nop,TS val 2943864307 ecr 2340789958], length 0 23:48:49.941193 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2118, win 272, options [nop,nop,TS val 2340789959 ecr 2943864306], length 0
הסרת המשאבים
כדי להימנע מחיובים בחשבון Cloud de Confiance by S3NS על המשאבים שבהם השתמשתם במדריך הזה, אתם יכולים למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
כדי למחוק את המשאבים הספציפיים בפרויקט, מריצים את הפקודות הבאות ב-Cloud Shell:
projectid=PROJECT_ID
gcloud config set project ${projectid}
gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet
gcloud compute instances delete on-prem-client --zone=us-central1-a --quiet
gcloud iam service-accounts delete user-managed-sa@$projectid.s3ns.iam.gserviceaccount.com --quiet
gcloud compute forwarding-rules delete pscvertex --global --quiet
gcloud compute addresses delete psc-googleapi-ip --global --quiet
gcloud compute vpn-tunnels delete vertex-networking-vpc-tunnel0 vertex-networking-vpc-tunnel1 onprem-vpc-tunnel0 onprem-vpc-tunnel1 --region=us-central1 --quiet
gcloud compute routers nats delete us-central-cloudnat-onprem --router=onprem-vpc-router1 --region=us-central1 --quiet
gcloud compute routers delete vertex-networking-vpc-router1 onprem-vpc-router1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete vertex-networking-vpn-gw1 onprem-vpn-gw1 --region=us-central1 --quiet
gcloud compute networks subnets delete onprem-vpc-subnet1 --region=us-central1 --quiet
gcloud compute networks delete onprem-vpc --quiet
gcloud compute networks delete vertex-networking-vpc --quiet
המאמרים הבאים
- מידע על אפשרויות של רשתות ארגוניות לגישה לנקודות קצה ולשירותים של Agent Platform
- איך ניגשים לשירותים שפורסמו דרך נקודות קצה
- איך Private Service Connect עובד ולמה הוא מציע יתרונות משמעותיים בביצועים.
- מידע נוסף על גישה לממשקי Google API דרך נקודות קצה
- כאן מוסבר איך ומתי כדאי להשתמש באזור העברת DNS במקום לעדכן את קובץ
/etc/hostsבסביבות ייצור ובסביבות גדולות. - מידע נוסף על מסלולים מותאמים אישית לפרסום