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

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

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

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

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

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

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

המסוף

  1. בתפריט הניווט במסוף Google Cloud , לוחצים על 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. לוחצים על הוספת הפרויקטים שנבחרו. הפרויקטים שנוספו יופיעו בקטע פרויקטים.

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

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

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

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

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

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

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

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

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

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

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

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

    • ללא שירותים: האפשרות הזו לא מאפשרת גישה לאף אחד מהשירותים של Google Cloud .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ‫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 שמכיל את הערכים של מאפייני המקור, הזהות, הפרויקט והשירות. לרשימת המאפיינים של כללי תעבורת נתונים נכנסת (ingress), ראו חומר עזר בנושא כללי כניסה.

  • ‫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 כשיוצרים את ה-perimeter. ‫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.

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