אבטחת IAP להעברת TCP באמצעות VPC Service Controls

בדף הזה מוסבר איך להשתמש ב-VPC Service Controls כדי להגן על IAP להעברת TCP, ואיך להשתמש ב-IAP להעברת TCP בתוך היקף של VPC Service Controls.

לפני שמתחילים

  1. כדאי לקרוא את הסקירה הכללית על VPC Service Controls.

  2. הגדרה של שימוש בהעברת TCP של IAP ללא גבולות גזרה לשירות.

  3. יצירת גבול גזרה לשירות באמצעות VPC Service Controls גבולות הגזרה לשירות הזה מגנים על המשאבים שמנוהלים על ידי Google בשירותים שאתם מציינים. כשיוצרים גבולות גזרה לשירות, צריך לבצע את הפעולות הבאות:

    1. מוסיפים את הפרויקט שמכיל את מכונת Compute Engine שאליה רוצים להתחבר באמצעות IAP לגבולות גזרה לשירות. אם אתם מריצים לקוח IAP ל-TCP במכונת Compute Engine, צריך להוסיף להיקף גם את הפרויקט שמכיל את המכונה הזו.

    2. מוסיפים את 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.

  1. מגדירים את *.googleapis.com DNS כמו שמגדירים בדרך כלל שילובים של VPC Service Controls.

  2. כדאי לאסוף את המידע הזה כדי להשתמש בו כשמגדירים את רשומות ה-DNS:

    • ‫PROJECT_ID הוא מזהה הפרויקט שמארח את רשת ה-VPC.

    • ‫NETWORK_NAME הוא השם של רשת ה-VPC שבה מריצים את לקוח IAP ל-TCP.

    • ‫ZONE_NAME הוא שם האזור שאתם יוצרים. לדוגמה, iap-tcp-zone.

  3. יוצרים אזור פרטי מנוהל לדומיין 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"
  4. מתחילים עסקה.

    gcloud dns record-sets transaction start --zone=ZONE_NAME
  5. מוסיפים את רשומת ה-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
  6. מוסיפים את רשומת ה-DNS CNAME הבאה כדי להפנות לרשומת ה-A שזה עתה הוספתם. כל התנועה שתואמת לדומיין תופנה לכתובות ה-IP שצוינו בשלב הקודם.

    gcloud dns record-sets transaction add \
     --name="*.tunnel.cloudproxy.app." \
     --type=CNAME tunnel.cloudproxy.app. \
     --zone=ZONE_NAME \
     --ttl=300
  7. מבצעים את העסקה.

    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 משותף, אתם צריכים להוסיף את הפרויקט המארח ואת פרויקט השירות לגבולות גזרה לשירות. מידע נוסף זמין במאמר בנושא ניהול גבולות שירות.

המאמרים הבאים