בדף הזה מוסבר איך להשתמש ב-VPC Service Controls כדי להגן על IAP להעברת TCP, ואיך להשתמש ב-IAP להעברת TCP בתוך היקף של VPC Service Controls.
לפני שמתחילים
כדאי לקרוא את הסקירה הכללית על VPC Service Controls.
הגדרה של שימוש בהעברת TCP של IAP ללא גבולות גזרה לשירות.
יצירה של גבולות גזרה לשירות באמצעות VPC Service Controls גבולות הגזרה לשירות הזה מגנים על המשאבים שמנוהלים על ידי Google בשירותים שאתם מציינים. כשיוצרים גבולות גזרה לשירות, צריך לבצע את הפעולות הבאות:
מוסיפים את הפרויקט שמכיל את מכונת Compute Engine שאליה רוצים להתחבר באמצעות IAP לפרויקטים בתוך גבולות גזרה לשירות. אם אתם מריצים לקוח IAP ל-TCP במכונת Compute Engine, צריך להוסיף להיקף גם את הפרויקט שמכיל את המכונה הזו.
מוסיפים את Identity-Aware Proxy TCP API לרשימת השירותים שמוגנים על ידי גבולות הגזרה לשירות.
אם יצרתם את גבולות הגזרה לשירות בלי להוסיף את הפרויקטים והשירותים שאתם צריכים, במאמר בנושא ניהול גבולות גזרה לשירות מוסבר איך לעדכן את גבולות הגזרה לשירות.
הגדרת רשומות ה-DNS באמצעות Cloud DNS
אם לקוח ה-IAP ל-TCP, שהוא כנראה Google Cloud CLI, לא פועל בתוך אף היקף, אפשר לדלג על השלב הזה. לעומת זאת, אם מריצים את הלקוח בתוך היקף, צריך להגדיר רשומות DNS ל-IAP עבור TCP.
IAP for TCP משתמש בדומיינים שהם לא תת-דומיינים של googleapis.com. באמצעות Cloud DNS, מוסיפים רשומות DNS כדי לוודא שרשת ה-VPC מטפלת נכון בבקשות שנשלחות לדומיינים האלה. מידע נוסף על מסלולי VPC זמין בסקירה הכללית על מסלולים.
כדי ליצור אזור מנוהל לדומיין, להוסיף רשומות DNS לניתוב בקשות ולבצע את העסקה: אפשר להשתמש ב-CLI של gcloud עם הטרמינל המועדף עליכם, או להשתמש ב-Cloud Shell, שבו ה-CLI של gcloud מותקן מראש.
מגדירים את
*.googleapis.comDNS כמו שמגדירים בדרך כלל שילובים של VPC Service Controls.כדאי לאסוף את המידע הזה כדי להשתמש בו כשמגדירים את רשומות ה-DNS:
PROJECT_ID הוא מזהה הפרויקט שמארח את רשת ה-VPC.
NETWORK_NAME הוא השם של רשת ה-VPC שבה מריצים את לקוח ה-TCP של IAP.
ZONE_NAME הוא שם האזור שאתם יוצרים. לדוגמה,
iap-tcp-zone.
יוצרים אזור פרטי מנוהל לדומיין
tunnel.cloudproxy.appכדי שרשת ה-VPC תוכל לטפל בו.gcloud dns managed-zones create ZONE_NAME \ --visibility=private \ --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \ --dns-name=tunnel.cloudproxy.app \ --description="Description of your managed zone"
מתחילים עסקה.
gcloud dns record-sets transaction start --zone=ZONE_NAME
מוסיפים את רשומת ה-DNS A הבאה. התנועה מנותבת מחדש לכתובת ה-IP הווירטואלית המוגבלת של Google.
gcloud dns record-sets transaction add \ --name=tunnel.cloudproxy.app. \ --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \ --zone=ZONE_NAME \ --ttl=300
מוסיפים את רשומת ה-CNAME הבאה של DNS כדי להפנות לרשומת ה-A שזה עתה הוספתם. כל התנועה שתואמת לדומיין מופנית לכתובות ה-IP שמופיעות בשלב הקודם.
gcloud dns record-sets transaction add \ --name="*.tunnel.cloudproxy.app." \ --type=CNAME tunnel.cloudproxy.app. \ --zone=ZONE_NAME \ --ttl=300
מבצעים את העסקה.
gcloud dns record-sets transaction execute --zone=ZONE_NAME
הגדרת DNS באמצעות BIND
במקום להשתמש ב-Cloud DNS, אפשר להשתמש ב-BIND. במקרה כזה, צריך לפעול לפי ההוראות להגדרת DNS באמצעות BIND, אבל להשתמש בדומיינים של IAP ל-TCP במקום בדומיינים הכלליים של googleapis.com.
שימוש ב-VIP פרטי
במקום להשתמש ב-VIP המוגבל, יכול להיות שאפשר להשתמש ב-VIP פרטי, בהתאם להגדרות של ההיקף והרשת. אם אתם מעדיפים לעשות את זה, אתם יכולים להשתמש
199.36.153.8 199.36.153.9 199.36.153.10 199.36.153.11
במקום
199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7
בהוראות להגדרת רשומות ה-DNS.
שימוש ב-VPC משותף
אם אתם משתמשים בVPC משותף, אתם צריכים להוסיף את הפרויקט המארח ואת פרויקט השירות לגבולות גזרה לשירות. איך מנהלים את גבולות השירות
המאמרים הבאים
- במאמר בנושא ניהול גבולות גזרה לשירות מוסבר איך להוסיף עוד משאבים לגבול הגזרה לשירות.