כדי לאבטח את ההגדרה של Network Connectivity Center (NCC), משתמשים ב-VPC Service Controls.
VPC Service Controls מספק אבטחה נוספת ל-Google APIs ולשירותים, כולל ההגדרה של NCC. בנוסף ל-IAM, VPC Service Controls מגביל את מערכות המקור שיכולות לבצע שינויים בהגדרות של NCC.
בדף הזה מתואר תרחיש נפוץ ומוצגת דוגמה להגדרה שמאפשרת גישה בין רכזת NCC לבין רשתות spoke של VPC שמופרדות על ידי גבולות שירות.
למידע מקיף, אפשר לעיין בסקירה הכללית על VPC Service Controls.
דוגמה: הצעות לחיבור רשתות spoke של VPC בין פרויקטים שונים בגבולות גזרה של שירותים
אם ההגדרה שלכם מחייבת שמרכז NCC והרשתות מסוג spoke של ה-VPC שלו ימוקמו בפרויקטים שונים ששייכים לגבולות גזרה נפרדים של VPC Service Controls, אתם צריכים להגדיר כללי תעבורת נתונים נכנסת (ingress) ותעבורת נתונים יוצאת (egress) בשני גבולות הגזרה. כך אדמינים של רשתות spoke יכולים להציע רשת spoke של VPC עם הפניה לרשת hub, ואדמינים של רשת hub יכולים לאשר רשתות spoke מוצעות.
בדוגמה שבדף הזה, האדמין של המרכז והאדמינים של הסניפים שייכים לארגונים נפרדים.
בטבלה הבאה מפורטים הכללים שנדרשים בדוגמה הזו:
| גבולות גזרה | כלל | מטרה |
|---|---|---|
| Spoke perimeter (פרויקט spoke) |
כלל תעבורת נתונים נכנסת 1 | לאפשר לאדמין של ה-Spoke ליזום הצעה ליצירת Spoke על ידי יצירת Spoke בפרויקט ה-Spoke (אם הניהול מתבצע מחוץ ל-SpokePerimeter) |
| כלל לתעבורת נתונים יוצאת (egress) מספר 1 | מאפשרים להצעה של רשת מסוג Spoke יוצאת ליזום צירוף לרשת מסוג Hub בפרויקט Hub, כולל אימות של רשת ה-VPC הבסיסית | |
| גבולות גזרה של ה-Hub (פרויקט ה-Hub) |
כלל תעבורת נתונים נכנסת 1 | אפשר לאדמין של הרכזת לנהל את הרכזת בפרויקט של הרכזת, כולל אישור או דחייה של הצעות לחיבור רשתות (אם הרכזת מנוהלת מחוץ ל-HubPerimeter) |
| כלל לתעבורת נתונים נכנסת (ingress) 2 | מאפשרים להצעה של רשת spoke נכנסת להתחיל את ההצטרפות לרשת hub | |
| כלל לתעבורת נתונים יוצאת (egress) מספר 1 | מאפשרים להצעה של רשת spoke נכנסת להתקשר חזרה לפרויקט ה-spoke כדי להשלים את הקישור של ה-spoke ל-hub, כולל אימות של רשת ה-VPC הבסיסית |
כללי גבולות גזרה של Spoke
כדי לאפשר יצירה וניהול של spoke, האדמין של ה-spoke מגדיר את כללי תעבורת הנתונים הנכנסת (ingress) ותעבורת הנתונים היוצאת (egress) הבאים:
| כלל | פרטים |
|---|---|
| כלל תעבורת נתונים נכנסת (ingress) מספר 1: יצירת רשת spoke |
כשמנהל של רשת spoke יוזם הצעה לרשת spoke על ידי הפעלת פקודת היצירה מחוץ לגבולות הגזרה (למשל, מתחנת עבודה של אדמין, מ-Cloud Shell או ממסוף Google Cloud ), מערכת VPC Service Controls מעריכה את הקריאה כבקשת תעבורת נתונים נכנסת (ingress) לפרויקט של רשת ה-spoke. SpokePerimeter צריך לאפשר כניסה מזהות האדמין של הרשת המקומית וממקור הרשת של NCC API.
הכלל הזה לא נדרש אם הניהול של רשתות spoke מתבצע באופן בלעדי מתוך רשת VPC שמוגנת על ידי SpokePerimeter.
|
| כלל לתעבורת נתונים יוצאת 1: אימות של רשת ושל חיבור למרכז |
כשאדמין של רשת מסוג Spoke מציע רשת כזו, הבקשה יוזמת צירוף לרשת מסוג Hub בפרויקט של רשת ה-Hub. במסגרת הבקשה, NCC API מאמת גם את רשת ה-VPC הבסיסית באמצעות Compute Engine API. SpokePerimeter צריך לאפשר יציאה (egress) מהאדמין של הרכזת עבור ה-API של NCC ושל Compute Engine.
|
הגדרת גבולות גזרה של רשתות Spoke
הדוגמאות לכללים לתעבורת נתונים נכנסת ויוצאת בקטעים הבאים מבוססות על הגדרת גבולות הגזרה הבאה.
מידע נוסף על גבולות גזרה לשירות זמין במאמר פרטים והגדרה של גבולות גזרה לשירות.
# Spoke perimeter definition name: accessPolicies/2345678901/servicePerimeters/SpokePerimeter status: resources: - projects/222222222222 restrictedServices: - networkconnectivity.googleapis.com - compute.googleapis.com title: SpokePerimeter
כלל לתעבורת נתונים נכנסת (ingress) ברשת spoke
בקטע הזה מופיעה דוגמה להטמעה של כלל תעבורת נתונים נכנסת (ingress) עבור גבולות הגזרה של ה-spoke, כפי שמתואר במאמר כללים לגבולות הגזרה של ה-spoke.
הכלל הזה נדרש רק אם מנהלים רשתות משנה מחוץ ל-SpokePerimeter.
פרטים על תחביר הכללים מופיעים במאמר בנושא כללי כניסה. הוראות להחלת כללים מופיעות במאמר הגדרת מדיניות לתעבורת נתונים נכנסת ויוצאת.
echo """
# Rule 1: Allow the spoke administrator to initiate a spoke proposal by creating
# a spoke in the spoke project (if managing from outside SpokePerimeter)
- ingressFrom:
identities:
# Specify the principal identifier for the spoke administrator or deployment pipeline:
- serviceAccount:spoke-admin-sa@spoke-project.iam.gserviceaccount.com
# - group:spoke-admins@example.org
# - user:spoke-admin@example.org
sources:
- accessLevel: accessPolicies/2345678901/accessLevels/SpokeAdminAccessLevel
# Alternatively, specify a management project or VPC network if managing
# from a VPC network outside the perimeter:
# - resource: projects/MANAGEMENT_PROJECT_NUMBER
ingressTo:
operations:
- serviceName: networkconnectivity.googleapis.com
methodSelectors:
- method: "*"
resources:
- projects/222222222222
""" > spoke-ingress.yaml
מומלץ להגדיר כללי כניסה ספציפיים ככל האפשר:
identities: צריך לציין רק את מזהה החשבון הראשי שנדרש לסביבה שלכם, ולא סוגים כלליים של זהויות. בדוגמה הזו, כלל 1 מציין חשבון שירות לצינור עיבוד נתונים אוטומטי לפריסה. אפשר גם לציין קבוצת Google לניהול הצוות, או חשבון משתמש נפרד. פרטים נוספים זמינים במאמר בנושא זהויות נתמכות לכללי כניסה ויציאה.
sources: הגבלת המקורות לרמות גישה ידועות. בדוגמה הזו מוגדרת רמת גישה ממדיניות הגישה שמנהלת אתSpokePerimeterכדי לאשר מקורות חיצוניים כמו תחנות עבודה של אדמינים, Cloud Shell או מסוף Google Cloud . לחלופין, אפשר לאפשר גישה מרשת VPC לניהול מחוץ לגבולות גזרה על ידי שימוש במאפיין- resource:כדי לציין את הפרויקט או רשת ה-VPC. פרטים נוספים זמינים במאמרים בנושא איך מאפשרים גישה מחוץ להיקף ובקרת גישה מבוססת-הקשר עם כללי כניסה.
operations: ההגבלות עלnetworkconnectivity.googleapis.comנאכפות ברמת השירות, ולכן נדרשmethod: "*". אין שיטות מפורטות יותר לשירות הזה.
resources: מציינים את מספר הפרויקט המדויק של פרויקט ה-spoke ב-resources. לא להשתמש בתווים כלליים לחיפוש (*).
כלל לתעבורת נתונים יוצאת (egress) ב-Spoke
בקטע הזה מופיעה דוגמה להטמעה של כלל יציאה עבור היקף האבטחה של ה-spoke, כפי שמתואר במאמר כללים להיקף האבטחה של ה-spoke.
פרטים על תחביר הכללים מופיעים במאמר בנושא כללים ליציאת נתונים.
echo """
# Rule 1: Allow the outbound spoke proposal to initiate attachment to the hub in
# the hub project, which includes verifying the backing VPC network
- egressTo:
operations:
- serviceName: networkconnectivity.googleapis.com
methodSelectors:
- method: "*"
- serviceName: compute.googleapis.com
methodSelectors:
- method: NetworksService.Get
resources:
- projects/111111111111
egressFrom:
identities:
# Specify the principal identifier for the spoke administrator or deployment pipeline:
- serviceAccount:spoke-admin-sa@spoke-project.iam.gserviceaccount.com
# - group:spoke-admins@example.org
# - user:spoke-admin@example.org
""" > spoke-egress.yaml
מומלץ להגדיר כללי תעבורת נתונים יוצאת (egress) שהם ספציפיים ככל האפשר:
identities: צריך לציין רק את מזהה החשבון הראשי שנדרש לסביבה שלכם, ולא סוגים כלליים של זהויות. בדוגמה הזו, כלל 1 מציין חשבון שירות לצינור עיבוד נתונים אוטומטי לפריסה. אפשר גם לציין קבוצת Google לניהול הצוות או חשבון משתמש נפרד. פרטים נוספים זמינים במאמר בנושא זהויות נתמכות לכללי כניסה ויציאה.
operations: ההגבלות עלnetworkconnectivity.googleapis.comנאכפות ברמת השירות, ולכן נדרשmethod: "*". במקוםcompute.googleapis.com, מצייניםmethod: NetworksService.Getכדי להעניק הרשאה לאימות רשת ה-VPC הבסיסית כשמתחילים את הצירוף ל-hub.
resources: מציינים את מספר הפרויקט המדויק של ה-Hub ב-resources. לא להשתמש בתווים כלליים לחיפוש (*).
כללים של גבולות גזרה של Hub
כדי להפעיל את הניהול של הרכזת ולאפשר הצעות להוספת רשתות משנה, האדמין של הרכזת מגדיר את הכללים הבאים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress):
| כלל | פרטים |
|---|---|
| כלל לתעבורת נתונים נכנסת (ingress) מספר 1: ניהול מרכזים |
כשמנהל מרכזיות מנהל את המרכזייה מחוץ לגבולות הגזרה (למשל, מתחנת עבודה של אדמין, מ-Cloud Shell או ממסוף Google Cloud ), מערכת VPC Service Controls מעריכה את השיחה כבקשת כניסה לפרויקט של המרכזייה. הכלל הזה מאפשר לאדמין של הרכזת לבדוק את הרשתות המוצעות ולקבל אותן (העברת הרשת המוצעת למצב ACTIVE) או לדחות אותן (העברת הרשת המוצעת למצב REJECTED). HubPerimeter צריך לאפשר כניסה מהזהות של האדמין של הרכזת וממקור הרשת.
הכלל הזה לא נדרש אם הניהול של הרכזת מתבצע באופן בלעדי מתוך רשת VPC שמוגנת על ידי HubPerimeter.
|
| כלל לתעבורת נתונים נכנסת (ingress) מספר 2: קובץ מצורף של Hub |
כשאדמין של רשת מסוג Spoke מציע רשת כזו, הבקשה יוזמת צירוף לרשת מסוג Hub בפרויקט של רשת ה-Hub.
HubPerimeter צריך לאפשר כניסה מהזהות של האדמין ברשת מסוג Hub & Spoke וממקור הרשת עבור NCC API בכל היקפי השירות.
|
| כלל לתעבורת נתונים יוצאת 1: קישור של רשתות מסוג Spoke ואימות הרשת |
כשמנהל של הסתעפות מציע הסתעפות, הבקשה חוזרת לפרויקט של הסתעפות כדי להשלים את הקישור של הסתעפות למרכז ולהעביר את הסתעפות למצב PENDING_REVIEW. במסגרת הבקשה, NCC API מאמת גם את רשת ה-VPC הבסיסית באמצעות Compute Engine API.
האדמין של HubPerimeter צריך לאפשר יציאה (egress) גם ל-NCC וגם ל-Compute Engine APIs.
|
הגדרת ההיקף של המרכז
הדוגמאות לכללים לתעבורת נתונים נכנסת ויוצאת בקטעים הבאים מבוססות על הגדרת גבולות הגזרה הבאה.
מידע נוסף על גבולות גזרה לשירות זמין במאמר פרטים והגדרה של גבולות גזרה לשירות.
# Hub perimeter definition name: accessPolicies/1234567890/servicePerimeters/HubPerimeter status: resources: - projects/111111111111 restrictedServices: - networkconnectivity.googleapis.com - compute.googleapis.com title: HubPerimeter
כללים לתעבורת נתונים נכנסת (ingress) במרכז
בקטע הזה מופיעה דוגמה להטמעה של כללי הכניסה להיקף של הרכזת, כפי שמתואר במאמר כללי היקף של רכזת.
פרטים על תחביר הכללים מופיעים במאמר בנושא כללי כניסה. הוראות להחלת כללים מופיעות במאמר הגדרת מדיניות לתעבורת נתונים נכנסת ויוצאת.
echo """
# Rule 1: Allow the hub administrator to manage the hub in the hub project
# (if managing from outside HubPerimeter)
- ingressFrom:
identities:
# Specify the principal identifier for the hub administrator:
- group:hub-admins@example.com
# - user:hub-admin@example.com
# - serviceAccount:hub-admin-sa@hub-project.iam.gserviceaccount.com
sources:
- accessLevel: accessPolicies/1234567890/accessLevels/HubAdminAccessLevel
# Alternatively, specify a management project or VPC network if managing
# from a VPC network outside the perimeter:
# - resource: projects/MANAGEMENT_PROJECT_NUMBER
ingressTo:
operations:
- serviceName: networkconnectivity.googleapis.com
methodSelectors:
- method: "*"
resources:
- projects/111111111111
# Rule 2: Allow the inbound spoke proposal to initiate attachment to the hub
- ingressFrom:
identities:
# Specify the principal identifier for the spoke administrator or deployment pipeline:
- serviceAccount:spoke-admin-sa@spoke-project.iam.gserviceaccount.com
# - group:spoke-admins@example.org
# - user:spoke-admin@example.org
sources:
# Specify an access level defined in the hub organization's access policy if
# the spoke administrator manages spokes from the Google Cloud console or
# external networks:
- accessLevel: accessPolicies/1234567890/accessLevels/SpokeAdminAccessLevel
# Alternatively, specify the spoke project if the spoke administrator
# manages from a VPC network in the spoke project:
# - resource: projects/222222222222
ingressTo:
operations:
- serviceName: networkconnectivity.googleapis.com
methodSelectors:
- method: "*"
resources:
- projects/111111111111
""" > hub-ingress.yaml
מומלץ להגדיר כללי כניסה ספציפיים ככל האפשר:
identities: מציינים רק את מזהה החשבון הראשי שנדרש לסביבה שלכם, ולא סוגי זהויות רחבים:- בדוגמה הזו, בכלל 1 מוגדרת קבוצת Google של אדמינים במרכז, לניהול הצוות. אפשר גם לציין חשבון משתמש או חשבון שירות ספציפיים. הכלל הזה נדרש רק אם מנהלים את המרכז מחוץ לארגון
HubPerimeter. - בדוגמה הזו, כלל 2 מציין חשבון שירות של אדמין ב-spoke עבור צינור עיבוד נתונים אוטומטי לפריסה. אפשר גם לציין קבוצת Google לניהול הצוות או חשבון משתמש נפרד.
מידע נוסף זמין במאמר בנושא זהויות נתמכות לכללי תעבורה נכנסת ויוצאת.
- בדוגמה הזו, בכלל 1 מוגדרת קבוצת Google של אדמינים במרכז, לניהול הצוות. אפשר גם לציין חשבון משתמש או חשבון שירות ספציפיים. הכלל הזה נדרש רק אם מנהלים את המרכז מחוץ לארגון
sources: הגבלת המקורות לרמות גישה או לפרויקטים מוכרים:- בדוגמה הזו, כלל 1 מציין רמת גישה לאדמינים של מרכזים ממדיניות הגישה שמנהלת את
HubPerimeterכדי לאשר מקורות חיצוניים כמו תחנות עבודה של אדמינים, Cloud Shell או מסוףGoogle Cloud . לחלופין, אפשר לאפשר גישה מרשת VPC לניהול מחוץ לגבולות גזרה, באמצעות המאפיין- resource:כדי לציין את הפרויקט או רשת ה-VPC. פרטים נוספים זמינים במאמרים בנושא איך מאפשרים גישה מחוץ להיקף ובקרת גישה מבוססת-הקשר עם כללי כניסה. - בדוגמה הזו, כלל 2 מציין רמת גישה לאדמינים של spoke ממדיניות הגישה שמנהלת את
HubPerimeterכדי לאשר מקורות חיצוניים כמו תחנות עבודה של אדמינים, Cloud Shell או מסוף Google Cloud . אפשרות אחרת היא לאפשר גישה מרשת VPC בפרויקט המרכזי באמצעות המאפיין- resource:כדי לציין את מספר הפרויקט המרכזי (למשל, עבור צינור פריסה אוטומטי).
- בדוגמה הזו, כלל 1 מציין רמת גישה לאדמינים של מרכזים ממדיניות הגישה שמנהלת את
operations: ההגבלות עלnetworkconnectivity.googleapis.comנאכפות ברמת השירות, ולכן נדרשmethod: "*". אין שיטות מפורטות יותר לשירות הזה.
resources: מציינים את מספר הפרויקט המדויק של ה-Hub ב-resources. לא להשתמש בתווים כלליים לחיפוש (*).
כלל לתעבורת נתונים יוצאת (egress) במרכז
בקטע הזה מופיעה דוגמה להטמעה של כלל תעבורת נתונים יוצאת (egress) עבור גבולות הגזרה של ה-Hub, כפי שמתואר במאמר כללים לגבולות הגזרה של ה-Hub.
פרטים על תחביר הכללים מופיעים במאמר בנושא כללים ליציאת נתונים.
echo """
# Rule 1: Allow the inbound spoke proposal to call back to the spoke project to
# complete linking the spoke to the hub, which includes verifying the backing
# VPC network
- egressTo:
operations:
- serviceName: networkconnectivity.googleapis.com
methodSelectors:
- method: "*"
- serviceName: compute.googleapis.com
methodSelectors:
- method: NetworksService.Get
resources:
- projects/222222222222
egressFrom:
identities:
# Specify the principal identifier for the spoke administrator or deployment pipeline:
- serviceAccount:spoke-admin-sa@spoke-project.iam.gserviceaccount.com
# - group:spoke-admins@example.org
# - user:spoke-admin@example.org
""" > hub-egress.yaml
מומלץ להגדיר כללי תעבורת נתונים יוצאת (egress) שהם ספציפיים ככל האפשר:
identities: מציינים את מזהה החשבון הראשי של האדמין ב-spoke (כמו חשבון שירות, קבוצה או חשבון משתמש של צינור עיבוד נתונים לפריסה). כשמנהל של רשת spoke מציע רשת spoke, HubPerimeterבודק את תעבורת הנתונים היוצאת (egress) תחת הזהות של מנהל רשת ה-spoke כדי להשלים את הקישור של רשת ה-spoke לרשת ה-Hub בפרויקט ה-spoke, כולל אימות של רשת ה-VPC הבסיסית.פרטים נוספים זמינים במאמר בנושא זהויות נתמכות לכללי כניסה ויציאה.
operations: ההגבלות עלnetworkconnectivity.googleapis.comנאכפות ברמת השירות, ולכן נדרשmethod: "*". ב-compute.googleapis.com, מצייניםmethod: NetworksService.Getכדי להעניק הרשאה לאימות רשת ה-VPC הבסיסית כשמשלימים את הקישור לפרויקט spoke.
resources: מציינים את מספר הפרויקט המדויק של פרויקט ה-spoke ב-resources. לא להשתמש בתווים כלליים לחיפוש (*).