בעזרת Access Context Manager, אפשר לבצע עדכונים בכמות גדולה של משאבים ששייכים למדיניות הגישה של הארגון, כמו רמות גישה וגבולות שירות. השינויים במשאבים יחולו רק אם כל החלקים של הפעולה הגורפת יצליחו.
במאמר הזה מתואר רק החלפה בכמות גדולה של גבולות שירות. למידע נוסף על החלפה בכמות גדולה של רמות גישה, אפשר לעיין במסמכים של Access Context Manager.
קבלת רשימה של service perimeters
מכיוון שפעולות בכמות גדולה משפיעות על כל היקפי השירות בארגון, אפשר לקבל רשימה מלאה של ההיקפים. בנוסף, אפשר לעצב את הרשימה הזו כ-YAML ולהשתמש בה כדי לבצע שינויים בכמות גדולה בהיקפים.
כדי לקבל רשימה מפורמטת של גבולות גזרה לשירות, אפשר לעיין במאמר בנושא רישום של service perimeter (מפורמט).
כשמשתמשים בפקודה replace-all כדי לבטל את כל ההגדרות של גבולות הגזרה לשירות, אסור להגדיר את השדות etag בתוך גבולות הגזרה. סביר להניח שערכי ה-ETag ישתנו בין שליפת ההיקפים לעדכון שלהם, ולכן הפקודה replace-all תחזיר שגיאה של אי התאמה בין ערכי ה-ETag. עם זאת, אפשר להגדיר etag לכל הבקשה replace-all באמצעות הפרמטר --etag ברמה העליונה, אם רוצים לאכוף את בדיקת ה-ETag.
במקום להסיר ידנית כל אחד מנכסי etag בתוך הגדרות הגבולות, אפשר לאחזר את הגדרות הגבולות בלי נכסי etag על ידי ציון --format עם כל השדות מלבד etag.
gcloud access-context-manager perimeters list \ --policy=POLICY_NAME \ --format="json(name,title,description,perimeterType,status,spec,useExplicitDryRunSpec)"
החלפה בכמות גדולה של service perimeters
בקטע הבא מוסבר איך להחליף את גבולות השירות בכמות גדולה.
gcloud
כדי להחליף את כל גבולות השירות בבת אחת, משתמשים בפקודה replace-all.
gcloud access-context-manager perimeters replace-all POLICY_NAME \ --source-file=FILE \ --etag=ETAG \
כאשר:
POLICY_NAME הוא השם של מדיניות הגישה של הארגון. הערך הזה נדרש רק אם לא הגדרתם מדיניות גישה שמוגדרת כברירת מחדל.
FILE הוא השם של קובץ .yaml שמגדיר את ההגדרות החדשות של הגדרות האבטחה הקיימות.
לדוגמה:
- name: accessPolicies/11271009391/servicePerimeters/storage_perimeter title: Storage Perimeter description: Perimeter to protect Storage resources. perimeterType: PERIMETER_TYPE_REGULAR status: restrictedServices: - storage.googleapis.com - name: accessPolicies/11271009391/servicePerimeters/bigquery_perimeter title: BigQuery Perimeter description: Perimeter to protect BigQuery resources. perimeterType: PERIMETER_TYPE_REGULAR status: restrictedServices: - bigquery.googleapis.comמידע נוסף על הפורמט של קובץ ה-YAML מופיע במאמר בנושא מבנה ה-JSON של אובייקט
ServicePerimeterConfigב-Access Context Manager.ETAG (אופציונלי) הוא מחרוזת שמייצגת את גרסת היעד של מדיניות הגישה של הארגון. אם לא תכללו etag, הפעולה בכמות גדולה תכוון לגרסה האחרונה של מדיניות הגישה של הארגון.
כדי לקבל את ה-etag העדכני ביותר של מדיניות הגישה, צריך
listאת מדיניות הגישה.
API
כדי להחליף את כל גבולות השירות בבת אחת, מתקשרים אל servicePerimeters.replaceAll.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters.replaceAll?alt=json
כאשר:
- POLICY_NAME הוא השם של מדיניות הגישה של הארגון.
גוף הבקשה
גוף הבקשה צריך לכלול רשימה של אובייקטים מסוג ServicePerimeterConfig שמציינים את השינויים שרוצים לבצע.
אופציונלית, כדי לטרגט גרסה ספציפית של מדיניות הגישה של הארגון, אפשר לכלול תג etag. אם לא כוללים את ה-etag, הפעולה בכמות גדולה מכוונת לגרסה האחרונה של מדיניות הגישה של הארגון.
לדוגמה:
{ "servicePerimeters": [ object (ServicePerimeterConfig), object (ServicePerimeterConfig), ... ] "etag": string }
גוף התשובה
אם הפעולה בוצעה ללא שגיאות, גוף התגובה של הקריאה יכיל משאב Operation עם פרטים על פעולת הפרסום.
דוגמה לתגובה:
{
"name": "operations/accessPolicies/11271009391/replacePerimeters/1583523447707087",
"done": true,
"response": {
"@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceServicePerimetersResponse",
"servicePerimeters": [
{
"name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
"title": "Storage Perimeter",
"description": "Perimeter to protect Storage resources.",
"status": {
"accessLevels": [
"accessPolicies/11271009391/accessLevels/corpnet_access"
],
"restrictedServices": [
"bigtable.googleapis.com"
]
}
},
{
"name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
"title": "BigQuery Perimeter",
"description": "Perimeter to protect BigQuery resources.",
"status": {
"accessLevels": [
"accessPolicies/11271009391/accessLevels/prodnet_access"
],
"restrictedServices": [
"bigtable.googleapis.com"
]
}
}
]
}
}