בדף הזה מוסבר על כללים לתעבורת נתונים נכנסת ויוצאת ב-VPC Service Controls. מערכת VPC Service Controls משתמשת בכללי תעבורת נתונים נכנסת (ingress) ותעבורת נתונים יוצאת (egress) כדי לאפשר גישה למשאבים וללקוחות שמוגנים על ידי גבולות גזרה לשירות, וממשאבים וללקוחות כאלה.
כללי התעבורה הנכנסת והתעבורה היוצאת מגדירים את כיוון הגישה המותרת לזהויות ולמשאבים שונים ומזהויות ומשאבים שונים. כללי כניסה ויציאה יכולים להחליף ולפשט תרחישי שימוש שבעבר נדרש בהם גשר היקפי אחד או יותר.
במאמר הגדרת כללי מדיניות לתעבורת נתונים נכנסת ויוצאת מוסבר איך להחיל כללי מדיניות לתעבורת נתונים נכנסת ויוצאת על גבולות הגזרה לשירות.
אפשר להגדיר קבוצות זהויות וזהויות של צד שלישי ותפקידי IAM בכללי תעבורת נתונים נכנסת (ingress) ויוצאת (egress).
במאמר בנושא החלפת נתונים מאובטחת באמצעות כללי כניסה ויציאה מפורטים תרחישים לדוגמה ודוגמאות להחלפת נתונים מאובטחת.
רשימה של תרחישי שימוש ודוגמאות לבקרת גישה מבוססת-הקשר זמינה במאמר בקרת גישה מבוססת-הקשר עם כללי כניסה.
היתרונות של כללים לתעבורת נתונים נכנסת ויוצאת
- כללי כניסה ויציאה מאפשרים לכם להחליף נתונים באופן פרטי ויעיל בתוך ארגונים ובארגונים שונים באמצעות ממשקי API של שירותים. Google Cloud
- כללים לתעבורת נתונים נכנסת ויוצאת מאפשרים לכם להעניק גישה ל Google Cloud
משאבים בגבול גזרה על סמך ההקשר של בקשת ה-API:
- הגבלת סוגי הזהויות או הזהויות שאפשר להשתמש בהן בהינתן רשת מקור, כתובת IP או מכשיר.
- הגבלת Google Cloud הגישה לממשקי API ולשיטות מסוימות בהתאם לרשת המקור, לכתובת ה-IP, למכשיר ולסוג הזהות.
- כדי לצמצם את הסיכון לזליגת מידע, צריך להגביל את השירות, השיטות,Google Cloud הפרויקטים, רשתות ה-VPC והזהויות שמשמשים להפעלת אוסף הנתונים לשיתוף.
- הענקת הרשאת קריאה בלבד למערכי נתונים ולתמונות חיצוניים שלא מנוהלים על ידכם.
- מוודאים שללקוחות בפלחים עם פחות הרשאות אין גישה למשאביGoogle Cloud פלחים עם יותר הרשאות, ומאפשרים גישה בכיוון ההפוך.
- לפשט הגדרות שבעבר נדרש בהן גשר היקפי אחד או יותר.
הגדרה של תעבורת נתונים נכנסת (ingress) ויוצאת (egress)
ההגדרות של תעבורת נתונים נכנסת ותעבורת נתונים יוצאת לא תלויות בפעולה שמופעלת על המשאב. לכן, ההגדרות מתייחסות לכיוון הבקשה ולא לכיוון תנועת הנתונים.
Ingress: מתייחס לכל גישה של לקוח API מחוץ לגבולות הגזרה לשירות למשאבים בתוך גבולות הגזרה לשירות. דוגמה:
- לקוח Cloud Storage מחוץ לגבולות של היקף שירות קורא לפעולות קריאה, כתיבה או העתקה של Cloud Storage במשאב Cloud Storage בתוך הגבולות.
תעבורת נתונים יוצאת (egress): כל גישה שכוללת לקוח API או משאבים בתוך גבולות הגזרה לשירות ומשאבים מחוץ לגבולות הגזרה לשירות. דוגמאות:
- לקוח של Compute Engine בתוך גבולות גזרה לשירות קורא לפעולה
createשל Compute Engine, כאשר משאב התמונה נמצא מחוץ לגבולות הגזרה. - לקוח Cloud Storage – בתוך גבולות הגזרה או מחוצה להם – שמבצע קריאה לפקודה
copyכשקטגוריה אחת נמצאת בתוך גבולות הגזרה והקטגוריה השנייה נמצאת מחוצה להם.
- לקוח של Compute Engine בתוך גבולות גזרה לשירות קורא לפעולה
מודל המדיניות
כלל לתעבורת נתונים נכנסת (ingress) או יוצאת (egress) מורכב מבלוקים של from ו-to, כאשר:
-
fromמפנה למאפיינים של לקוח ה-API. -
toreferences the attributes of Google Cloud services and resources.
אפשר לשייך לגבול גזרה לשירות כמה כללים לתעבורת נתונים נכנסת ויוצאת. קריאה לשירותGoogle Cloud מותרת או נדחית על סמך הסמנטיקה הבאה:
- בקשה מלקוח מחוץ לגבולות הגזרה ל Google Cloud משאב בתוך גבולות הגזרה מותרת אם התנאים של כלל הכניסה הנדרש מתקיימים.
- בקשה מלקוח בתוך ההיקף ל Google Cloud משאב מחוץ להיקף מורשית אם התנאים של כלל היציאה הנדרש מתקיימים.
- קריאה ל-API שכוללת משאב Google Cloud בתוך ההיקף ומשאב Google Cloud מחוץ להיקף מותרת אם יש כלל כניסה שהלקוח עומד בו (אם הלקוח לא נמצא בתוך ההיקף), וכלל יציאה שהמשאב החיצוני עומד בו.
דוגמאות לבקשות API שמותרות על ידי כללי כניסה
- לקוח Cloud Storage מחוץ לגבולות הגזרה מוריד אובייקטים מקטגוריה של Cloud Storage בתוך גבולות הגזרה למכונה המקומית (לדוגמה, באמצעות הפקודה
gcloud storage cp). - לקוח BigQuery מחוץ להיקף משתמש במשימת BigQuery בפרויקט בתוך ההיקף כדי להריץ שאילתה על מערך נתונים של BigQuery בתוך ההיקף (לדוגמה, באמצעות הפקודה
bq query). - מכונה וירטואלית ב-Compute Engine ברשת VPC שנמצאת מחוץ לגבולות הגזרה כותבת לקטגוריה של Cloud Storage שנמצאת בתוך גבולות הגזרה.
דוגמאות לבקשות API שמותרות על ידי כללי יציאה
- לקוח Cloud Storage בתוך גבולות גזרה מעתיק אובייקטים בין קטגוריה של Cloud Storage מחוץ לגבולות גזרה לבין קטגוריה בתוך גבולות גזרה (לדוגמה, באמצעות הפקודה
gcloud storage cp).
- לקוח BigQuery בתוך ההיקף משתמש במשימת BigQuery בפרויקט מחוץ להיקף כדי להריץ שאילתה על מערך נתונים של BigQuery בתוך ההיקף (לדוגמה, באמצעות הפקודה
bq query).
דוגמאות לבקשות API שמותרות על ידי שילוב של כללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress)
- לקוח Cloud Storage מחוץ לגבולות גזרה מעתיק אובייקטים בין קטגוריה של Cloud Storage מחוץ לגבולות גזרה לבין קטגוריה בתוך גבולות גזרה (לדוגמה, באמצעות הפקודה
gcloud storage cp). - לקוח BigQuery מחוץ לגבולות גזרה משתמש במשימת BigQuery בפרויקט מחוץ לגבולות גזרה כדי להריץ שאילתה על מערך נתונים של BigQuery בתוך גבולות גזרה (לדוגמה, באמצעות הפקודה
bq query). - לקוח Compute Engine מחוץ להיקף יוצר דיסק Compute Engine מחוץ להיקף באמצעות מפתח Cloud KMS בתוך ההיקף.
בדוגמאות של BigQuery ו-Compute Engine, כלל כניסה לא מספיק כי המשימה ב-BigQuery או הדיסק ב-Compute Engine נמצאים מחוץ להיקף. צריך כלל תעבורת נתונים יוצאת (egress) כדי לאפשר בקשת API שכוללת משאב Google Cloud בתוך גבולות הגזרה (מערך הנתונים ב-BigQuery או המפתח ב-Cloud KMS) ומשאב מחוץ לגבולות הגזרה (המשימה ב-BigQuery או הדיסק ב-Compute Engine).
בקשות API שכוללות מספר היקפי שירות
אם המשאבים שאליהם ניגשים או לקוח ה-API שייכים למתחמי שירות שונים, כללי המדיניות של כל המתחמים הרלוונטיים צריכים לאפשר את בקשת ה-API. לדוגמה, נניח שיש לקוח Cloud Storage וקטגוריה a בתוך גבולות גזרה לשירות A, וקטגוריה b בתוך גבולות גזרה לשירות B. בדוגמה הזו, כדי שהלקוח של Cloud Storage יוכל להעתיק אובייקטים מהקטגוריה a לקטגוריה b ומהקטגוריה b לקטגוריה a, צריך את כללי הכניסה והיציאה הבאים:
- כלל יציאה בפרימטר
Aכדי לאפשר גישה לקטגוריהbשל Cloud Storage. - כלל יציאה בפרימטר
Bכדי לאפשר גישה לקטגוריהaשל Cloud Storage. - כלל של תעבורת נתונים נכנסת (ingress) בהיקף
Bכדי לאפשר גישה ללקוח Cloud Storage שנמצא מחוץ להיקףB.
מסמך עזר בנושא כללים לתעבורת נתונים נכנסת (ingress)
אפשר להגדיר כללי Ingress באמצעות מסוף Google Cloud , קובץ JSON או קובץ YAML. בדוגמה הבאה נעשה שימוש בפורמט .yaml:
- ingressFrom:
identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
*OR*
identities:
- PRINCIPAL_IDENTIFIER
sources:
- resource: RESOURCE
*OR*
- accessLevel: ACCESS_LEVEL
*OR*
- pscEndpoint:
forwardingRule: PSC_ENDPOINT
ingressTo:
operations:
- serviceName: SERVICE
methodSelectors:
- method: METHOD
*OR*
- permission: PERMISSION
*OR*
roles:
- ROLE_NAME
resources:
- projects/PROJECT
*OR*
- folders/FOLDER
*OR*
- organizations/ORGANIZATION
title: TITLE
- ingressFrom:– חובה. מתחיל את הבלוקfromשמפרט את המקורות והזהויות המותרים מחוץ להיקף.identityType:– חובה להשתמש במאפיין הזה או במאפייןidentities. במאפיין הזה מוגדרים סוגי הזהויות שאפשר להשתמש בהם מsources(מקור הרשת) שצוין. ערכים קבילים:ANY_IDENTITY,ANY_USER_ACCOUNT, ANY_SERVICE_ACCOUNT. ANY_IDENTITYמאפשר בקשות מכל הזהויות, כולל בקשות לא מאומתות. ANY_USER_ACCOUNTמאפשר לכל המשתמשים האנושיים, ו-ANY_SERVICE_ACCOUNTמאפשר לכל חשבונות השירות, אבל גםANY_USER_ACCOUNTוגםANY_SERVICE_ACCOUNTלא מאפשרים בקשות לא מאומתות.המאפיין הזה לא מגביל את הזהויות על סמך הארגון. לדוגמה,
ANY_SERVICE_ACCOUNTמאפשר לחשבון שירות מכל ארגון.identities:– חובה להשתמש במאפיין הזה או במאפייןidentityType. המאפיין הזה מתחיל רשימה של חשבונות שירות, חשבונות משתמשים, קבוצות Google, זהויות של צד שלישי וזהויות של סוכנים שיכולים לגשת למשאבים בפרימטר.
PRINCIPAL_IDENTIFIER– מציינים חשבון משתמש, חשבון שירות, קבוצת Google, זהות של צד שלישי או זהות של סוכן שרוצים להעניק להם גישה למשאבים בפרימטר.מידע על הזהויות הנתמכות ועל הפורמטים של המזהים שלהן זמין במאמר זהויות נתמכות לכללי תעבורה נכנסת ותעבורה יוצאת.
sources:– חובה. המאפיין הזה מתייחס לרשימה של מקורות רשת. כל ערך ברשימה הוא רמת גישה, Google Cloud משאב (כמו פרויקט, תיקייה, ארגון או רשת VPC) או נקודת קצה של Private Service Connect. אם מגדירים את המאפייןaccessLevelלערך"*", מדיניות הכניסה מאפשרת גישה מכל מקור ברשת. אם מגדירים את המאפיין הזה לפרויקט, לתיקייה או לארגון, מדיניות הכניסה מאפשרת גישה מכל המשאבים בהיררכיית המשאבים. אם מציינים רשת VPC, מדיניות הכניסה מאפשרת גישה מהרשת הספציפית הזו.כשפרויקט משויך נמחק באופן סופי, יכול להיות שהערך הזה יוסר בלי שתופעל שגיאה. במהלך פתרון הבעיות, כדאי לבדוק אם הערך הזה הוסר או לא.
- resource:– צריך להשתמש במאפיין הזה או במאפייןaccessLevel. מציינים פרויקט, תיקייה, ארגון או רשת VPC מחוץ לגבול הגזרה שרוצים לספק להם גישה. כדי לציין פרויקט, משתמשים בפורמט:projects/PROJECT_NUMBER. כדי לציין תיקייה, צריך להשתמש בפורמט:folders/FOLDER_NUMBER. כדי לציין ארגון, משתמשים בפורמט:organizations/ORGANIZATION_NUMBER. כדי לציין רשת VPC, משתמשים בפורמט://compute.googleapis.com/projects/PROJECT_ID/global/networks/NETWORK_NAME.- accessLevel:– חובה להשתמש במאפיין הזה או במאפייןresource. מציינת את רמת הגישה מחוץ לגבולות הגזרה שאליה ניתנת הגישה. אם מגדירים את המאפייןaccessLevelלערך"*", מדיניות הכניסה מאפשרת גישה מכל מקור ברשת.- pscEndpoint:– אפשר להשתמש במאפיין הזה, במאפייןresourceאו במאפייןaccessLevel. מציינים את נקודות הקצה של Private Service Connect שרוצים לאפשר גישה מהן.
forwardingRule:– מציין את נקודת הקצה של Private Service Connect. כדי לציין נקודת קצה (endpoint) של Private Service Connect, צריך להשתמש בפורמט הבא://compute.googleapis.com/projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_ID.
ingressTo:– חובה. מתחיל את הבלוקtoשבו מפורטות פעולות השירות המותרות במשאבים שצוינו Google Cloud בתוך גבולות גזרה.operations:– חובה להשתמש במאפיין הזה או במאפייןroles. מציין את תחילת הרשימה של השירותים והפעולות/השיטות שאליהם לקוח שעומד בתנאים של הבלוקfromיכול לגשת.
- serviceName:– חובה. השדה הזה יכול להיות שם שירות תקין או להיות מוגדר ל-"*"כדי לאפשר גישה לכל השירותים. לדוגמה,bigquery.googleapis.comהואserviceNameתקין. רשימת השירותים הזמינים מופיעה במאמר מוצרים נתמכים.
methodSelectors:– חובה אם הערך שלserviceNameהוא לא"*". ההתחלה של רשימת שיטות שלקוח שעומד בתנאים של בלוקfromיכול לגשת אליהן. במאמר הגבלות נתמכות על שיטות שירות מפורטת רשימה של שיטות והרשאות שניתן להגביל בשירותים.רשימה של שיטות שירות ש-VPC Service Controls לא יכול לשלוט בהן מופיעה במאמר חריגים של שיטות שירות.
- method:– חובה להשתמש במאפיין הזה או במאפייןpermission. השדה הזה יכול להיות שיטה תקפה של שירות, או שאפשר להגדיר אותו ל-"*"כדי לאפשר גישה לכל השיטות של השירות שצוין.- permission:– חובה להשתמש במאפיין הזה או במאפייןmethod. השדה הזה חייב להיות הרשאת שירות תקינה. הגישה למשאבים בתוך ההיקף מותרת לפעולות שנדרשת להן הרשאה.כשבקשה למשאב דורשת כמה הרשאות, צריך לציין את כל ההרשאות הנדרשות באותה פעולה כדי שכלל הכניסה יפעל. לדוגמה, אם בקשה למשאב BigQuery דורשת את ההרשאות
bigquery.jobs.createו-bigquery.tables.create, צריך לציין את שתי ההרשאות האלה באותה פעולה. בנוסף, אם מציינים את ההרשאות כמה פעמים לאותו משאב באמצעותGoogle Cloud המסוף, ההרשאות לא נוצרות באותה פעולה. כדי למנוע את הבעיה הזו, צריך לציין את כל ההרשאות למשאב בבת אחת.roles:– חובה להשתמש במאפיין הזה או במאפייןoperations. המאפיין הזה מתייחס לרשימה של תפקידי IAM שמגדירים את היקף הגישה לשירותים שצוינו בכלל.
ROLE_NAME– מציינים תפקיד יחיד או שילוב של תפקידים שכוללים את כל ההרשאות שנדרשות לגישה לשירותים. כדי לציין תפקיד, משתמשים בפורמטים של שמות התפקידים שמוזכרים ברכיבי תפקידים, למעט הפורמט הבא:projects/PROJECT_ID/roles/IDENTIFIER.מידע על תפקידים נתמכים ב-IAM זמין במאמר תפקידים נתמכים.
resources:– חובה. במאפיין הזה מציינים את רשימתGoogle Cloud המשאבים בגבולות גזרה לשירות שאליהם הלקוח מחוץ לגבולות גזרה יכול לגשת. אפשר להגדיר את השדה הזה ל-"*"כדי לאפשר גישה נכנסת לכל משאב Google Cloud בתוך ההיקף. אפשר לציין פרויקטים (projects/PROJECT_NUMBER), תיקיות (folders/FOLDER_NUMBER) או ארגונים (organizations/ORGANIZATION_NUMBER).
title:– אופציונלי. במאפיין הזה מציינים את השם של כלל הכניסה. השם חייב להיות ייחודי בתוך ההיקף ולא יכול לחרוג מ-100 תווים. במדיניות הגישה, האורך הכולל של כל שמות הכללים לא יכול להיות יותר מ-240,000 תווים.
כדי ליצור כלל כניסה פונקציונלי, צריך לציין את המאפיינים הבאים:
- מאפיין
sources. צריך לצייןaccessLevel,resource(פרויקט, תיקייה, ארגון או רשת VPC) או מאפייןpscEndpoint, או להגדיר את מאפייןaccessLevelלערך"*".
- מאפיין
identityTypeאו מאפייןidentities - מאפיין
resources - מאפיין
serviceName
אחרי שמסיימים להגדיר את קובץ מדיניות הכניסה, אפשר לעיין במאמר עדכון של מדיניות כניסה ויציאה כדי לקבל הוראות להחלת קובץ מדיניות הכניסה על היקף השירות.
אם מגדירים כמה כללי תעבורת נתונים נכנסת (ingress) ב-גבולות גזרה לשירות, מערכת VPC Service Controls מאשרת בקשה אם היא עומדת בתנאים של אחד מכללי התעבורה הנכנסת.
הפניה לכללים לתעבורת נתונים יוצאת (egress)
אפשר להגדיר כללי תעבורת נתונים יוצאת (egress) באמצעות המסוף Google Cloud , קובץ JSON או קובץ YAML. בדוגמה הבאה נעשה שימוש בפורמט .yaml:
- egressTo:
operations:
- serviceName: SERVICE_NAME
methodSelectors:
- method: METHOD
*OR*
- permission: PERMISSION
*OR*
roles:
- ROLE_NAME
resources:
- projects/PROJECT
*OR*
- folders/FOLDER
*OR*
- organizations/ORGANIZATION
*OR*
externalResources:
- EXTERNAL_RESOURCE_PATH
egressFrom:
identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
*OR*
identities:
- PRINCIPAL_IDENTIFIER
sources:
- resource: RESOURCE
*OR*
- accessLevel: ACCESS_LEVEL
*OR*
- pscEndpoint:
forwardingRule: PSC_ENDPOINT
sourceRestriction: RESTRICTION_STATUS
title: TITLE
- egressTo:– חובה. מתחיל את הבלוקtoשבו מפורטות פעולות השירות המותרות במשאבי Google Cloud פרויקטים שצוינו מחוץ לגבולות גזרה.operations:– חובה להשתמש במאפיין הזה או במאפייןroles. מציין את תחילת הרשימה של השירותים והפעולות/השיטות שאליהם לקוח שעומד בתנאים של הבלוקfromיכול לגשת.
- serviceName:– חובה. השדה הזה יכול להיות שם שירות תקין או להיות מוגדר ל-"*"כדי לאפשר גישה לכל השירותים. רשימת השירותים הזמינים מופיעה במאמר מוצרים נתמכים.
methodSelectors:– חובה אם הערך שלserviceNameהוא לא"*". ההתחלה של רשימת שיטות שלקוח שעומד בתנאים של בלוקfromיכול לגשת אליהן. במאמר הגבלות נתמכות על שיטות שירות מפורטת רשימה של שיטות והרשאות שניתן להגביל בשירותים.רשימה של שיטות שירות ש-VPC Service Controls לא יכול לשלוט בהן מופיעה במאמר חריגים של שיטות שירות.
- method:– חובה להשתמש במאפיין הזה או במאפייןpermission. השדה הזה יכול להיות method תקף של שירות, או שאפשר להגדיר בו את הערך"*"כדי לאפשר גישה לכל ה-methods של השירות שצוין.- permission:– חובה להשתמש במאפיין הזה או במאפייןmethod. השדה הזה חייב להיות הרשאת שירות תקינה. הגישה למשאבים שצוינו מחוץ לגבולות גזרה מותרת לפעולות שנדרשת להן הרשאה.כשבקשה למשאב דורשת כמה הרשאות, צריך לציין את כל ההרשאות הנדרשות באותה פעולה כדי שכלל היציאה יפעל. לדוגמה, אם בקשה למשאב BigQuery דורשת את ההרשאות
bigquery.jobs.createו-bigquery.tables.create, צריך לציין את שתי ההרשאות האלה באותה פעולה. בנוסף, אם מציינים את ההרשאות כמה פעמים לאותו משאב באמצעותGoogle Cloud המסוף, ההרשאות לא נוצרות באותה פעולה. כדי למנוע את הבעיה הזו, צריך לציין את כל ההרשאות למשאב בבת אחת.roles:– חובה להשתמש במאפיין הזה או במאפייןoperations. המאפיין הזה מתייחס לרשימה של תפקידי IAM שמגדירים את היקף הגישה לשירותים שצוינו בכלל.
ROLE_NAME– מציינים תפקיד יחיד או שילוב של תפקידים שכוללים את כל ההרשאות שנדרשות לגישה לשירותים. כדי לציין תפקיד, משתמשים בפורמטים של שמות התפקידים שמוזכרים ברכיבי תפקידים, למעט הפורמט הבא:projects/PROJECT_ID/roles/IDENTIFIER.מידע על תפקידים נתמכים ב-IAM זמין במאמר תפקידים נתמכים.
resources:– המאפיין הזה הוא רשימה של Google Cloudמשאבים (פרויקטים, תיקיות או ארגונים) מחוץ לגבולות גזרה לשירות שלקוחות בתוך הגבולות יכולים לגשת אליהם. כדי לציין פרויקט, צריך להשתמש בפורמטprojects/PROJECT_NUMBER. כדי לציין תיקייה, משתמשים בפורמטfolders/FOLDER_NUMBER. כדי לציין ארגון, משתמשים ב-organizations/ORGANIZATION_NUMBER. אפשר להגדיר את השדה הזה לערך"*"כדי לאפשר גישה ליציאה לכל משאב Google Cloud .
externalResources:– המאפיין הזה משמש רק לציון משאבי BigQuery Omni. המאפיין הזה הוא רשימה של משאבים חיצוניים שנתמכים על ידי BigQuery Omni, שלקוחות בתוך גבולות גזרה יכולים לגשת אליהם. אפשר לציין רק משאבים של Amazon S3 או של Azure Blob Storage. ב-Amazon S3, הפורמט הנתמך הואs3://BUCKET_NAME. ב-Azure Storage, הפורמט הנתמך הואazure://myaccount.blob.core.windows.net/CONTAINER_NAME.
egressFrom:– חובה. מתחיל את הבלוקfromשמפרט את המקורות והזהויות המותרים בתוך ההיקף.identityType:– חובה להשתמש במאפיין הזה או במאפייןidentities. במאפיין הזה מוגדרים סוגי הזהויות שאפשר להשתמש בהם כדי לגשת למשאבים שצוינו מחוץ לגבולות הגזרה. ערכים קבילים:ANY_IDENTITY,ANY_USER_ACCOUNT, ANY_SERVICE_ACCOUNT. ANY_IDENTITYמאפשר בקשות מכל הזהויות, כולל בקשות לא מאומתות. ANY_USER_ACCOUNTמאפשר לכל המשתמשים האנושיים, ו-ANY_SERVICE_ACCOUNTמאפשר לכל חשבונות השירות, אבל גםANY_USER_ACCOUNTוגםANY_SERVICE_ACCOUNTלא מאפשרים בקשות לא מאומתות.המאפיין הזה לא מגביל את הזהויות על סמך הארגון. לדוגמה,
ANY_SERVICE_ACCOUNTמאפשר לחשבון שירות מכל ארגון.identities:– חובה להשתמש במאפיין הזה או במאפייןidentityType. המאפיין הזה מתחיל רשימה של חשבונות שירות, חשבונות משתמשים, קבוצות Google, זהויות של צד שלישי וזהויות של סוכנים שיכולים לגשת למשאבים שצוינו מחוץ להיקף.
PRINCIPAL_IDENTIFIER– מציינים חשבון משתמש, חשבון שירות, קבוצת Google, זהות של צד שלישי או זהות של סוכן שיכולים לגשת למשאבים שצוינו מחוץ לגבולות.מידע על הזהויות הנתמכות ועל הפורמטים של המזהים שלהן זמין במאמר זהויות נתמכות לכללי תעבורה נכנסת ותעבורה יוצאת.
sources:– במאפיין הזה מציינים רשימה של מקורות ברשת. ערך המאפיין יכול להיות רשימה של פרויקטים, תיקיות, ארגונים, רמות גישה או נקודות קצה של Private Service Connect. כדי לאכוף הגבלות גישה על סמךsourcesשצוין, מגדירים את מאפייןsourceRestrictionלערךSOURCE_RESTRICTION_ENABLED.VPC Service Controls מעריך את המאפיינים
accessLevel,resourceו-pscEndpointשל המאפייןsourcesכתנאי OR.- resource:– צריך להשתמש במאפיין הזה או במאפייןaccessLevel. מציינים משאב אחד או יותר Google Cloud מגבולות הגזרה לשירות שרוצים לאפשר לו גישה לנתונים מחוץ לגבולות הגזרה. המאפיין הזה תומך בפרויקטים, בתיקיות ובארגונים. כדי לציין פרויקט, משתמשים בפורמט:projects/PROJECT_NUMBER. כדי לציין תיקייה, צריך להשתמש בפורמט:folders/FOLDER_NUMBER. כדי לציין ארגון, משתמשים בפורמט:organizations/ORGANIZATION_NUMBER.אי אפשר להשתמש ב-
"*"במאפיין הזה כדי לאפשר גישה לכל המשאבים Google Cloud .- accessLevel:– צריך להשתמש במאפיין הזה או במאפייןresource. מציינים רמת גישה אחת או יותר שמאפשרת למשאבים בתוך גבולות הגזרה לגשת למשאבים מחוץ לגבולות הגזרה. חשוב לוודא שרמות הגישה האלה מוגדרות באותה מדיניות גישה כמו ההיקף. אם מגדירים את המאפייןaccessLevelכ-"*", מדיניות היציאה מאפשרת גישה מכל מקור ברשת.- pscEndpoint:– אפשר להשתמש במאפיין הזה, במאפייןresourceאו במאפייןaccessLevel. מציינת את נקודות הקצה של Private Service Connect שדרכן רוצים לאפשר למשאבים בתוך גבולות הגזרה לגשת למשאבים חיצוניים.
forwardingRule:– מציין את נקודת הקצה של Private Service Connect. כדי לציין נקודת קצה (endpoint) של Private Service Connect, צריך להשתמש בפורמט הבא://compute.googleapis.com/projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_ID.
sourceRestriction:– חובה אם משתמשים במאפייןsources. המאפיין הזה מאפשר לכם לאכוף הגבלות גישה על סמךsourcesשצוין. כדי לאכוף את הגבלות הגישה האלה, מגדירים את מאפייןsourceRestrictionלערךSOURCE_RESTRICTION_ENABLED.כדי להשבית את הגבלות הגישה האלה, מגדירים את המאפיין
sourceRestrictionלערךSOURCE_RESTRICTION_DISABLED.אם לא מגדירים ערך למאפיין
sourceRestriction, מערכת VPC Service Controls מתעלמת מהמאפייןsourcesולא אוכפת הגבלות גישה.
title:– אופציונלי. במאפיין הזה מציינים את השם של כלל היציאה. השם חייב להיות ייחודי בתוך ההיקף ולא יכול לחרוג מ-100 תווים. במדיניות הגישה, האורך הכולל של כל שמות הכללים לא יכול להיות יותר מ-240,000 תווים.
אחרי שמסיימים להגדיר את קובץ מדיניות היציאה, אפשר לעיין במאמר עדכון של מדיניות הכניסה והיציאה כדי לקבל הוראות להחלת קובץ מדיניות היציאה על היקף השירות.
אם מגדירים כמה כללי יציאה בגבולות גזרה לשירות, מערכת VPC Service Controls מאשרת בקשה אם היא עומדת בתנאים של אחד מכללי היציאה.
שימוש במצב פרימטר לבדיקות כדי לבדוק מדיניות של תעבורת נתונים נכנסת (ingress)/תעבורת נתונים יוצאת (egress)
אם לא רוצים להעניק גישה לכל השיטות של שירות מסוים, לפעמים קשה לקבוע את רשימת השיטות המדויקת שרוצים לאפשר. הסיבה לכך היא ש-method מסוימת בשירות יכולה לגרום להפעלת method אחרת בשירות Google Cloud נפרד. לדוגמה, BigQuery טוען טבלה מקטגוריה של Cloud Storage כדי להריץ שאילתה.
כדי לקבוע את קבוצת השיטות הנכונה שצריך לאפשר, אפשר להשתמש במצב הרצה יבשה של VPC Service Controls. כדי לעשות את זה, קודם מפעילים גבולות גזרה במצב פרימטר לבדיקות ללא מדיניות תעבורת נתונים נכנסת (ingress) או תעבורת נתונים יוצאת (egress), ואוספים את רשימת השיטות שהופעלו מיומן הביקורת. לאחר מכן, מוסיפים את השיטות האלה בהדרגה למדיניות הכניסה והיציאה במצב הרצה יבשה, עד שכל ההפרות יסתיימו. בשלב הזה, אפשר להעביר את ההגדרה ממצב הרצה יבשה למצב אכיפה.
תכונות שלא נתמכות
התכונות הבאות לא נתמכות כרגע בכללי תעבורת נתונים נכנסת (ingress) ותעבורת נתונים יוצאת (egress):
- זיהוי Google Cloud משאבים לפי תוויות במקום לפי פרויקטים.
- לא כל השירותים תומכים בכללי כניסה ויציאה לכל שיטה. מידע נוסף על הגבלות של שיטות שירות נתמכות
- אי אפשר להשתמש בסוגי הזהויות
ANY_SERVICE_ACCOUNTו-ANY_USER_ACCOUNTכדי לאפשר את הפעולות הבאות:- כל הפעולות ב-Container Registry.
- כל הפעולות בשירות notebooks.googleapis.com.
- פעולות ב-Cloud Storage באמצעות כתובות URL חתומות.
- עם פונקציות Cloud Run, אפשר לפרוס פונקציה של Cloud Functions מהמחשב המקומי.
- ייצוא יומנים ממאגר Cloud Logging למשאב Cloud Storage.
- כל הפעולות בממשק האינטרנט של Apache Airflow ב-Managed Airflow.
- חשוב להבין את המגבלות של השימוש בקבוצות זהויות בכללים לתעבורת נתונים נכנסת ויוצאת.
מגבלות
מידע על מגבלות של תעבורת נתונים נכנסת ותעבורת נתונים יוצאת זמין במאמר מכסות ומגבלות.
המאמרים הבאים
- כדי ללמוד איך לפתור הפרות של תעבורת נתונים נכנסת ויוצאת, אפשר לעבור על השיעור Codelab הזה.
- איך מגדירים את מרכז הבקרה של ההפרות וצופים בו
- איך מגדירים נקודות קצה של Private Service Connect בגבולות גזרה לשירות
- בסרטון הבא אתם יכולים ללמוד איך לבצע ביקורת ולנהל את הגישה באמצעות כללי כניסה ויציאה.