הגדרת סביבה לשימוש במאגרי כתובות פרטיים ברשת VPC

בדף הזה מוסבר איך להגדיר את סביבת הרשת כדי להשתמש במאגרי כתובות פרטיים ברשת VPC. אם אתם לא מכירים בריכות פרטיות, כדאי לקרוא את הסקירה הכללית על בריכות פרטיות.

הסבר על אפשרויות ההגדרה של הרשת

מאגרי IP פרטיים מאוחסנים ברשת של ענן וירטואלי פרטי (VPC) בבעלות Google שנקראת רשת בעלים של שירות מנוהל. כשמגדירים מאגר פרטי, אפשר לבחור להשתמש ברשת של בעלים של שירות מנוהל או להגדיר חיבור פרטי בין הרשת של בעלים של שירות מנוהל לבין רשת ה-VPC שמכילה את המשאבים שלכם.

בוחרים אחת מהאפשרויות הבאות להגדרת הרשת, בהתאם לצרכים של הארגון:

  • שימוש ברשת של יצרן השירות בלבד: כדאי להשתמש באפשרות הזו אם:

    זוהי אפשרות ברירת המחדל ליצירת המאגר הפרטי, ולא נדרשת הגדרה של רשת. אם אתם מעוניינים באפשרות הזו, אתם יכולים להמשיך ליצירת המאגר הפרטי.

  • הגדרת חיבור פרטי בין הרשת של בעלים של שירות מנוהל לבין רשת ה-VPC שלכם: החיבור הפרטי מאפשר למכונות וירטואליות ברשת ה-VPC ובמאגרים פרטיים לתקשר באופן בלעדי באמצעות כתובות IP פנימיות. כדאי להשתמש באפשרות הזו אם:

    • אתם רוצים שה-builds יקבלו גישה למשאבים ברשת ה-VPC
    • אתם רוצים סוגי מכונות וגדלים שניתנים להגדרה

הגדרת חיבור פרטי בין רשת ה-VPC שלכם לבין הרשת של בעלים של שירות מנוהל

  1. צריך שיהיה לכם רשת VPC קיימת שבה תשתמשו כדי להתחבר לרשת של בעלים של שירות מנוהל.

  2. כדי להשתמש בדוגמאות של שורת הפקודה במדריך הזה, צריך להתקין ולהגדיר את Google Cloud CLI.

  3. הפעלת ה-API:

    המסוף


    מפעילים את Cloud Build API ואת Service Networking API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    הפעלת ממשקי ה-API

    gcloud

    מפעילים את Cloud Build API ואת Service Networking API:

    gcloud services enable cloudbuild.googleapis.com servicenetworking.googleapis.com
    
  4. כדי לוודא שלחשבון המשתמש יש את ההרשאות שנדרשות להגדרת חיבור פרטי, צריך לבקש מהאדמין להקצות לחשבון המשתמש את תפקיד ה-IAM‏ Compute Engine Network Admin (roles/compute.networkAdmin) בחשבון השירות של הפרויקט Google Cloud שבו נמצאת רשת ה-VPC. להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

    יכול להיות שהאדמין גם יוכל לתת את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

  5. ברשת ה-VPC, מקצים טווח כתובות IP פנימיות עם שם:

    טווח כתובות ה-IP שמציינים כאן יהיה כפוף לכללי חומת האש שמוגדרים ברשת ה-VPC.

    ‫Cloud Build שומר את טווחי כתובות ה-IP‏ 192.168.10.0/24 ו-172.17.0.0/16 לרשת הגשר של Docker. כשמקצים את טווחי כתובות ה-IP למשאבים בפרויקטים, מומלץ לבחור טווח מחוץ ל-192.168.10.0/24 ול-172.17.0.0/16 במקרים שבהם כלי הבנייה של Cloud Build אמורים לגשת למשאבים האלה.

    לדוגמה, לא תהיה גישה לטווח הכתובות של מישור הבקרה של Google Kubernetes Engine‏ 192.168.10.96/28 מה-builder‏ gke-deploy של Cloud Build בגלל החפיפה.

    המסוף

    1. נכנסים לדף VPC networks במסוף Google Cloud .

      לדף VPC networks

    2. בוחרים את רשת ה-VPC שתתחבר לרשת ה-VPC של המאגר הפרטי.

    3. לוחצים על הכרטיסייה Private service access (גישה פרטית לשירות).

    4. בכרטיסייה גישה פרטית לשירותים, בוחרים בכרטיסייה הקצאת טווחי כתובות IP לשירותים.

    5. לוחצים על הקצאת טווח כתובות IP.

    6. מזינים שם ותיאור לטווח שהוקצה.

    7. מציינים טווח כתובות IP להקצאה:

      • כדי לציין טווח של כתובות IP, בוחרים באפשרות בהתאמה אישית ומזינים בלוק CIDR.
      • כדי לציין אורך קידומת ולאפשר ל-Google לבחור טווח זמין, בוחרים באפשרות אוטומטי ומזינים אורך קידומת. אורך הקידומת צריך להיות /24 או פחות, למשל /22, /21 וכו'.
    8. לוחצים על הקצאה כדי ליצור את הטווח המוקצה.

    gcloud

    כדי לציין טווח כתובות ואורך קידומת (מסכה של רשת משנה), משתמשים בדגלים addresses ו-prefix-length. אורך הקידומת צריך להיות ‎ /24 או פחות, למשל ‎ /22, ‎/21 וכו'. לדוגמה, כדי להקצות את בלוק ה-CIDR‏ 192.168.0.0/16, צריך לציין 192.168.0.0 לכתובת ו-16 לאורך הקידומת.

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --addresses=192.168.0.0 \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    כדי לציין רק אורך קידומת (מסכה של רשת משנה), פשוט משתמשים בדגל prefix-length. כשלא מציינים את טווח הכתובות, Google Cloudבוחר באופן אוטומטי טווח כתובות לא בשימוש ברשת ה-VPC. בדוגמה הבאה נבחר טווח כתובות IP שלא נמצא בשימוש עם אורך קידומת של 16 ביטים.

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    מחליפים את ערכי ה-placeholder בפקודה בערכים הבאים:

    • RESERVED_RANGE_NAME: שם לטווח שהוקצה, למשל my-allocated-range.
    • DESCRIPTION: תיאור הטווח, למשל allocated for my-service.
    • VPC_NETWORK: השם של רשת ה-VPC, למשל my-vpc-network.

  6. יוצרים חיבור פרטי בין הרשת של בעלים של שירות מנוהל לבין רשת ה-VPC שלכם:

    המסוף

    1. נכנסים לדף VPC networks במסוף Google Cloud .

      לדף VPC networks

    2. בוחרים את רשת ה-VPC שתתחבר לרשת ה-VPC של המאגר הפרטי.

    3. לוחצים על הכרטיסייה Private service access (גישה פרטית לשירות).

    4. בכרטיסייה גישה לשירותים פרטיים, בוחרים בכרטיסייה חיבורים פרטיים לשירותים.

    5. לוחצים על Create connection (יצירת חיבור) כדי ליצור חיבור פרטי בין הרשת שלכם לבין הרשת של בעלים של שירות מנוהל.

    6. בשדה Assigned allocation, בוחרים את הטווח שהוקצה שיצרתם בשלב הקודם.

    7. לוחצים על Connect (חיבור) כדי ליצור את החיבור.

    gcloud

    1. יצירת חיבור פרטי:

      gcloud services vpc-peerings connect \
          --service=servicenetworking.googleapis.com \
          --ranges=ALLOCATED_RANGE_NAME \
          --network=VPC_NETWORK \
          --project=PROJECT_ID
      

      מחליפים את ערכי ה-placeholder בפקודה בערכים הבאים:

      • ALLOCATED_RANGE_NAME: השם של הטווח שהוקצה שיצרתם בשלב הקודם.
      • VPC_NETWORK: השם של רשת ה-VPC
      • PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC.

      הפקודה מפעילה פעולה ממושכת ומחזירה שם פעולה.

    2. בודקים אם הפעולה הצליחה. מחליפים את OPERATION_NAME בשם הפעולה שהתקבל בשלב הקודם.

      gcloud services vpc-peerings operations describe \
          --name=OPERATION_NAME
      
  7. [אופציונלי: תרחיש של VPC משותף]. אם אתם משתמשים ב-VPC משותף, אתם צריכים ליצור את טווח כתובות ה-IP שהוקצה ואת החיבור הפרטי בפרויקט המארח. בדרך כלל, אדמין רשת בפרויקט המארח צריך לבצע את המשימות האלה. אחרי שהפרויקט המארח מוגדר עם החיבור הפרטי, מכונות וירטואליות בפרויקטים של השירות יכולות להשתמש בחיבור הפרטי עם הרשת של בעלי השירות המנוהל. הפרויקט שמארח את חיבור ה-VPC והפרויקט שמכיל את המאגר הפרטי צריכים להיות חלק מאותו ארגון.

  8. [אופציונלי: שימוש בכללי חומת אש]. אם אתם יוצרים כלל חומת אש לתעבורת נתונים נכנסת ברשת ה-VPC, אתם צריכים לציין את אותו טווח כתובות IP שהקציתם כאן במסנן המקור של כלל תעבורת הנתונים הנכנסת.

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