יצירה של גבולות גזרה לשירות

בדף הזה מוסבר איך ליצור גבולות גזרה לשירות.

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

יצירה של גבולות גזרה לשירות

בקטע הזה נסביר איך ליצור גבולות גזרה לשירות, להוסיף פרויקטים או רשתות VPC לגבולות הגזרה ולהגן על שירותים.

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

אחרי שיוצרים גבולות גזרה לשירות או מעדכנים גבולות גזרה קיימים לשירות, יכולות לחלוף עד 30 דקות עד שהשינויים יתעדכנו וייכנסו לתוקף. במהלך הזמן הזה, גבולות הגזרה עשויים לחסום בקשות עם הודעת השגיאה הבאה: Error 403: Request is prohibited by organization's policy.

המסוף

  1. בתפריט הניווט של מסוף Cloud de Confiance , לוחצים על Security (אבטחה) ואז על VPC Service Controls.

    מעבר אל VPC Service Controls

  2. אם מתבקשים, בוחרים את הארגון, התיקייה או הפרויקט.

  3. בוחרים מדיניות גישה קיימת או יוצרים מדיניות גישה חדשה. מוודאים שההיקף של מדיניות הגישה כולל את כל הפרויקטים ורשתות ה-VPC שרוצים להוסיף לגבולות גזרה.

  4. בדף VPC Service Controls, בוחרים מצב אכיפה של גבולות הגזרה. כברירת מחדל, האפשרות מצב אכיפה נבחרת. כדי ליצור גבולות גזרה לבדיקות, לוחצים על מצב פרימטר לבדיקות.

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

  5. לוחצים על היקף חדש.

  6. בדף Create a service perimeter, בשדה Title, מזינים שם לגבולות גזרה לשירות.

    אורך השם של ההיקף יכול להיות עד 50 תווים, הוא חייב להתחיל באות ויכול להכיל רק אותיות לטיניות ב-ASCII‏ (a-z,‏ A-Z), מספרים (0-9) או קווים תחתונים (_). השם של ההיקף הוא תלוי-אותיות וצריך להיות ייחודי במדיניות הגישה.

  7. אופציונלי: בשדה תיאור, מזינים תיאור של ההיקף.

  8. בקטע סוג ההיקף, בוחרים באפשרות רגיל.

  9. בקטע מצב אכיפה, בוחרים מצב אכיפה של ההיקף. האפשרויות הזמינות הן הרצת בדיקה ואכיפה.

  10. לוחצים על Continue.

  11. כדי להוסיף פרויקטים או רשתות VPC שרוצים לאבטח בתוך גבולות הגזרה:

    1. כדי להוסיף פרויקטים להיקף, לוחצים על הוספת פרויקטים.

      1. בחלונית Add projects, בוחרים את הפרויקטים שרוצים להגן עליהם.

      2. לוחצים על הוספת הפרויקטים שנבחרו. הפרויקטים שנוספו יופיעו בקטע Projects.

    2. כדי להוסיף רשתות VPC להיקף, לוחצים על הוספת רשתות.

      1. ברשימת הפרויקטים, לוחצים על הפרויקט שמכיל את רשתות ה-VPC.

      2. בחלונית Add VPC networks (הוספת רשתות VPC), בוחרים את רשתות ה-VPC שרוצים להגן עליהן.

      3. לוחצים על הוספת הרשתות שנבחרו. הרשתות שנוספו מופיעות בקטע VPC networks.

    3. לוחצים על Continue.

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

    1. בחלונית Restricted services (שירותים מוגבלים), לוחצים על Add services (הוספת שירותים).

    2. בחלונית הוספת שירותים, בוחרים את השירותים שרוצים להגן עליהם.

    3. לוחצים על הוספת השירותים שנבחרו.

    4. לוחצים על Continue.

  13. אופציונלי: אם רוצים להגדיר אילו שירותים נגישים מנקודות קצה ברשת בתוך גבולות גזרה, בחלונית VPC accessible services (שירותים נגישים ב-VPC), בוחרים אחת מהאפשרויות הזמינות:

    • כל השירותים: האפשרות הזו מאפשרת גישה לכל השירותים של Cloud de Confiance .

    • ללא שירותים: האפשרות הזו לא מאפשרת שימוש באף אחד מהשירותים של Cloud de Confiance .

    • כל השירותים המוגבלים: האפשרות הזו מאפשרת גישה רק לשירותי Cloud de Confiance שמוגנים בגבולות הגזרה האלה.

    • שירותים נבחרים: האפשרות הזו מאפשרת גישה רק ל Cloud de Confiance שירותים שבחרתם.

      1. לוחצים על הוספת שירותים.

      2. בחלונית הוספת שירותים, בוחרים את השירותים שרוצים לאפשר.

      3. לוחצים על הוספת השירותים שנבחרו.

      4. כדי לכלול בנוסף את כל השירותים המוגבלים שגבולות הגזרה מגינים עליהם בשירותים שנבחרו, לוחצים על המתג Include all restricted services (כלול את כל השירותים המוגבלים) למצב מופעל.

      5. לוחצים על Continue.

    אפשר גם להוסיף שירותים נגישים אחרי שיוצרים גבול גזרה.

    מידע נוסף זמין במאמר שירותים שאפשר לגשת אליהם דרך VPC.

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

    1. בחלונית Access levels, לוחצים על Add access levels.

      אפשר גם להוסיף רמות גישה אחרי שיוצרים את ההיקף.

    2. מסמנים את התיבות שמתאימות לרמות הגישה שרוצים להחיל על ההיקף.

    3. לוחצים על הוספת רמות הגישה שנבחרו.

    4. לוחצים על Continue.

  15. כדי לאפשר גישה למשאבים בתוך גבולות גזרה מלקוחות API מחוץ לגבולות הגזרה: מבצעים את הפעולות הבאות:

    1. בחלונית Ingress rules, לוחצים על Add an ingress rule.

    2. בשדה כותרת, מזינים כותרת לכלל התעבורה הנכנסת.

    3. בקטע מאת, מציינים את המקורות מחוץ לגבולות הגזרה שנדרשת להם גישה. אפשר לציין פרויקטים, רמות גישה ורשתות VPC כמקורות.

    4. בקטע To, מציינים את המשאבים בתוך גבולות הגזרה שהמקורות יכולים לגשת אליהם.

    5. לוחצים על Continue.

    לרשימת המאפיינים של כללי הכניסה, ראה חומר עזר בנושא כללי כניסה.

  16. כדי לאפשר גישה שכוללת לקוח API או משאבים בתוך גבולות הגזרה למשאבים מחוץ לגבולות הגזרה, מבצעים את הפעולות הבאות:

    1. בחלונית Egress rules, לוחצים על Add an egress rule.

    2. בשדה כותרת, מזינים כותרת לכלל תעבורת הנתונים היוצאת (egress).

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

    4. בקטע To, מציינים את המשאבים מחוץ לגבולות הגזרה שאליהם המקורות יכולים לגשת.

    רשימת המאפיינים של כללי תעבורת נתונים יוצאת (egress) זמינה במאמר חומר עזר בנושא כללי תעבורת נתונים יוצאת (egress).

  17. לוחצים על יצירה.

gcloud

כדי ליצור גבולות גזרה חדשים במצב אכיפה, משתמשים בפקודה gcloud access-context-manager perimeters create.

gcloud access-context-manager perimeters create NAME \
  --title=TITLE \
  --resources=RESOURCES \
  --restricted-services=RESTRICTED-SERVICES \
  --ingress-policies=INGRESS-FILENAME.yaml \
  --egress-policies=EGRESS-FILENAME.yaml \
  [--access-levels=LEVELS] \
  [--enable-vpc-accessible-services] \
  [--vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

כדי ליצור היקף חדש במצב פרימטר לבדיקות, משתמשים בפקודה gcloud access-context-manager perimeters dry-run create.

gcloud access-context-manager perimeters dry-run create NAME \
  --perimeter-title=TITLE \
  --perimeter-type=TYPE \
  --perimeter-resources=RESOURCES \
  --perimeter-restricted-services=RESTRICTED-SERVICES \
  --perimeter-ingress-policies=INGRESS-FILENAME.yaml \
  --perimeter-egress-policies=EGRESS-FILENAME.yaml \
  [--perimeter-access-levels=LEVELS] \
  [--perimeter-enable-vpc-accessible-services] \
  [--perimeter-vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • NAME הוא שם ההיקף.

    אורך השם של ההיקף יכול להיות עד 50 תווים, הוא חייב להתחיל באות ויכול להכיל רק אותיות לטיניות ב-ASCII‏ (a-z,‏ A-Z), מספרים (0-9) או קווים תחתונים (_). השם של ההיקף הוא תלוי-אותיות וצריך להיות ייחודי במדיניות הגישה.

  • TITLE הוא השם של גבולות הגזרה שקריא לאנשים.

  • TYPE הוא סוג הגדר ההיקפית. לדוגמה, גבולות גזרה רגילים או גבולות גזרה של גישור.

  • RESOURCES היא רשימה של מספר פרויקט אחד או יותר או שמות של רשתות VPC, שמופרדים באמצעות פסיקים. לדוגמה: projects/12345 או //compute.googleapis.com/projects/my-project/global/networks/vpc1. מותר להשתמש רק בפרויקטים וברשתות VPC. פורמט הפרויקט: projects/project_number. פורמט VPC: //compute.googleapis.com/projects/project-id/global/networks/network_name. אם מציינים פרויקטים, יש תמיכה רק במספרי פרויקטים. אי אפשר להשתמש בשם או במזהה של הפרויקט.

  • RESTRICTED-SERVICES היא רשימה מופרדת בפסיקים של שירות אחד או יותר. לדוגמה: storage.googleapis.com או storage.googleapis.com,bigquery.googleapis.com.

  • INGRESS-FILENAME הוא קובץ JSON או YAML שמכיל את הערכים של מאפייני המקור, הזהות, הפרויקט והשירות. רשימת המאפיינים של כללי כניסה מופיעה במאמר חומר עזר בנושא כללי כניסה.

  • EGRESS-FILENAME הוא קובץ JSON או YAML שמכיל את הערכים של מאפייני הזהות, הפרויקט והשירות. רשימת המאפיינים של כללי יציאה זמינה במאמר חומר עזר בנושא כללי יציאה.

  • POLICY_NAME הוא השם המספרי של מדיניות הגישה של הארגון. לדוגמה, 330193482019. צריך לכלול את שם המדיניות רק אם לא הגדרתם מדיניות גישה כברירת מחדל.

אפשרויות נוספות:

  • ההרשאות --access-levels או --perimeter-access-levels נדרשות רק אם רוצים להוסיף רמות גישה כשיוצרים את ההיקף. ‫LEVELS: רשימה מופרדת בפסיקים של רמות גישה שרוצים להחיל על היקף השירות.

    אפשר גם להוסיף רמות גישה אחרי שיוצרים את ההיקף.

  • המאפיינים --enable-vpc-accessible-services ו---vpc-allowed-services, או --perimeter-enable-vpc-accessible-services ו---perimeter-vpc-allowed-services, נדרשים רק אם רוצים להוסיף שירותים שאפשר לגשת אליהם מ-VPC כשיוצרים את גבול הגזרה. ‫ACCESSIBLE-SERVICES: רשימה מופרדת בפסיקים של שירות אחד או יותר שאתם רוצים לאפשר לרשתות בתוך גבולות הגזרה שלכם לגשת אליהם. הגישה לשירותים שלא נכללים ברשימה הזו נחסמת.

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

    כדי לכלול במהירות את כל השירותים שמוגנים על ידי גבולות גזרה, מציינים RESTRICTED-SERVICES ברשימה של ACCESSIBLE-SERVICES. לדוגמה: --perimeter-vpc-allowed-services=RESTRICTED-SERVICES.

    אפשר גם להגדיר שירותים שאפשר לגשת אליהם מ-VPC אחרי שיוצרים את גבולות הגזרה.

לדוגמה, הפקודה הבאה יוצרת פרימטר חדש במצב פרימטר לבדיקות בשם ProdPerimeter שכולל את הפרויקטים example-project ו-example-project2, ומגביל את ממשקי ה-API של Cloud Storage ו-BigQuery.

gcloud access-context-manager perimeters \
  dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \
  --perimeter-type="regular" \
  --perimeter-resources=projects/12345,projects/67890 \
  --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --perimeter-ingress-policies=ingress.yaml \
  --perimeter-egress-policies=egress.yaml \
  --policy=330193482019

API

כדי ליצור גבולות גזרה לשירות, קוראים ל-accessPolicies.servicePerimeters.create.

 POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

כאשר:

  • POLICY_NAME הוא השם המספרי של מדיניות הגישה של הארגון. לדוגמה, 330193482019.

גוף הבקשה

גוף הבקשה חייב לכלול משאב ServicePerimeter שמגדיר את גבולות הגזרה לשירות.

למשאב ServicePerimeter, מציינים PERIMETER_TYPE_REGULAR בשביל perimeterType.

מצב פרימטר לבדיקות

צריך לכלול את ההיקף המוצע כ-spec ולהגדיר את useExplicitDryRunSpec כ-true.

גוף התשובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה של הקריאה יכיל משאב Operation עם פרטים על הפעולה POST.

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