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

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

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

יצירה של service perimeter

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2. בשדה שם, מזינים שם לכלל היציאה.

    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) או קווים תחתונים (_). השם של ההיקף הוא תלוי-אותיות (case sensitive) וחייב להיות ייחודי במדיניות הגישה.

  • 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.

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