בדף הזה מוסבר איך לשחזר גרסה קודמת של מדיניות הרשאה ב-IAM אחרי ביצוע שינויים לא מכוונים או מחיקה בטעות.
כדי לשחזר מדיניות IAM קודמת, צריך למצוא את setIamPolicy האחרון שבו הפעולה הצליחה לפני השינוי או המחיקה, ולהשתמש בו כדי לשחזר את המדיניות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לשחזור של מדיניות הרשאה קודמת, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט, בתיקייה או בארגון:
-
שחזור מדיניות ההרשאה באמצעות
setIamPolicy:- צפייה ב-Logging (
roles/logging.viewer) - אדמין ארגוני (
roles/resourcemanager.organizationAdmin) - בעלים (
roles/owner)
- צפייה ב-Logging (
-
שחזור של כללי מדיניות הרשאה באמצעות מאגר משאבי הענן:
בעלים של נכס ב-Cloud (
roles/cloudasset.owner)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
כשמשחזרים מדיניות הרשאה באמצעותsetIamPolicy, צריך את התפקיד 'אדמין ארגוני' כדי לשחזר מדיניות הרשאה ברמת הארגון והתיקייה, ואת התפקיד 'בעלים' כדי לשחזר מדיניות הרשאה ברמת הפרויקט.
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
שחזור מדיניות הרשאות עם המופע האחרון של setIamPolicy שהצליח
כדי לשחזר מדיניות הרשאות לגרסה קודמת, אפשר לעיין ביומני הביקורת ולחפש את המופע האחרון של setIamPolicy לפני השינוי או המחיקה, ואז להשתמש במידע מהמופע הזה כדי לשחזר את המדיניות. התהליך הזה כולל את השלבים הבאים:
- מזהים את המופע האחרון של
setIamPolicyשהצליח במדיניות ההרשאה ומאחזרים אתinsertId. - משתמשים ב-
insertIdמהבקשהsetIamPolicyכדי לייצא את מדיניות ההרשאה בפורמט YAML או JSON. - משנים את קובץ הפלט כך שיתאים למדיניות ההרשאות הקודמת שפעלה, ומבטלים את מדיניות ההרשאות הנוכחית.
מזהים את המופע האחרון של setIamPolicy שהצליח ומאחזרים את insertId
כדי לזהות את המופע האחרון של setIamPolicy שבוצע בהצלחה ולאחזר את isertId, אפשר לעיין ביומני הביקורת באמצעות מסוף Google Cloud או ה-CLI של gcloud.
המסוף
נכנסים לדף Logs Explorer במסוף Google Cloud .
מזינים אחת מהשאילתות הבאות בעורך השאילתות. השאילתות האלה מחפשות ביומני הביקורת רשומות שכוללות את הערך
SetIamPolicyבשדהmethodNameשלprotoPayload:כדי לקבל את היומנים של כל השינויים במדיניות ההרשאות שבוצעו במשאב, משתמשים בשאילתה הבאה:
logName="RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity" protoPayload.methodName:SetIamPolicy
כדי לקבל את היומנים של שינויים במדיניות ההרשאות שקשורים למשתמש או לחשבון שירות ספציפיים, משתמשים בשאילתה הבאה:
logName="RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity" protoPayload.methodName:SetIamPolicy protoPayload.serviceData.policyDelta.bindingDeltas.member:"EMAIL_ADDRESS"
מחליפים את מה שכתוב בשדות הבאים:
-
RESOURCE_TYPE: סוג המשאב שלגביו רוצים להציג את יומני הביקורת. הערכים התקינים הםprojects,foldersאוorganizations. -
RESOURCE_ID: מזהה הפרויקט, התיקייה או הארגון. מזהי פרויקטים מכילים אותיות וספרות, למשלmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. Google Cloud -
EMAIL_ADDRESS: כתובת האימייל של המשתמש או של חשבון השירות – לדוגמה,example-service-account@example-project.iam.gserviceaccount.com.
-
כדי להריץ את השאילתה, לוחצים על Run query.
משתמשים בבורר ציר הזמן כדי לציין את טווח הזמן המתאים לשאילתה. לחלופין, אפשר להוסיף ביטוי של חותמת זמן ישירות לכלי לעריכת שאילתות. מידע נוסף זמין במאמר הצגת יומנים לפי טווח זמן.
מעתיקים את
insertIdמהמופע האחרון שלsetIamPolicyלפני השינוי או המחיקה.
gcloud
הפקודה
gcloud logging read
קוראת רשומות ביומן.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שלגביו רוצים להציג את יומני הביקורת. אפשר להשתמש בערךprojects,foldersאוorganizations. -
RESOURCE_ID: מזהה הפרויקט, הארגון או התיקייה ב- Google Cloud. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
TIME_PERIOD: תקופת הזמן שלגביה מוצגים יומני הביקורת. הערכים שמוחזרים לא ישנים יותר מהערך הזה. אם לא מציינים ערך, ערך ברירת המחדל הוא1d. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. -
RESOURCE_TYPE_SINGULAR: סוג המשאב שלגביו רוצים להציג את יומני הביקורת. אפשר להשתמש בערךproject,folderאוorganization.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud logging read \ 'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity AND protoPayload.methodName=SetIamPolicy' \ --freshness=TIME_PERIOD \ --RESOURCE_TYPE_SINGULAR=RESOURCE_ID
Windows (PowerShell)
gcloud logging read ` 'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity AND protoPayload.methodName=SetIamPolicy' ` --freshness=TIME_PERIOD ` --RESOURCE_TYPE_SINGULAR=RESOURCE_ID
Windows (cmd.exe)
gcloud logging read ^ 'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity AND protoPayload.methodName=SetIamPolicy' ^ --freshness=TIME_PERIOD ^ --RESOURCE_TYPE_SINGULAR=RESOURCE_ID
מעתיקים את insertId מהמופע האחרון של setIamPolicy לפני השינוי או המחיקה.
שימוש ב-insertId כדי לייצא את מדיניות ההרשאות
משתמשים ב-insertId שאוחזר מהמופע האחרון של setIamPolicy כדי להריץ את הפקודה הבאה ב-CLI של gcloud ולייצא את מדיניות ההרשאה בפורמט JSON או YAML. אפשר לייצא כללי מדיניות הרשאה לארגונים ולפרויקטים.
ברמת הארגון
הפקודה
gcloud logging read
קוראת רשומות ביומן.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
ORGANIZATION_ID: הארגון שרוצים להציג ולייצא את מדיניות ההרשאות שלו. -
INSERT_ID: הinsertIdשל הבקשהsetIamPolicy. -
FORMAT: הפורמט של התגובה. אפשר להשתמש ב-jsonאו ב-yaml. -
TIME_PERIOD: תקופת הזמן שיומני הביקורת מתייחסים אליה. הערכים שמוחזרים לא ישנים יותר מהערך הזה. אם לא מציינים ערך, ערך ברירת המחדל הוא1d. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. -
OUTPUT_FILE: שם הקובץ והסיומת של הפלט. לדוגמה:previous_policy.jsonאוprevious_policy.yaml.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud logging read organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com insertId="INSERT_ID"' --organization=ORGANIZATION_ID --format="FORMAT(protoPayload.request.policy)" --freshness=TIME_PERIOD > OUTPUT_FILE
Windows (PowerShell)
gcloud logging read organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com insertId="INSERT_ID"' --organization=ORGANIZATION_ID --format="FORMAT(protoPayload.request.policy)" --freshness=TIME_PERIOD > OUTPUT_FILE
Windows (cmd.exe)
gcloud logging read organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com insertId="INSERT_ID"' --organization=ORGANIZATION_ID --format="FORMAT(protoPayload.request.policy)" --freshness=TIME_PERIOD > OUTPUT_FILE
ברמת הפרויקט
הפקודה
gcloud logging read
קוראת רשומות ביומן.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
INSERT_ID: הinsertIdשל הבקשהsetIamPolicy. -
TIME_PERIOD: תקופת הזמן שיומני הביקורת מתייחסים אליה. הערכים שמוחזרים לא ישנים יותר מהערך הזה. אם לא מציינים ערך, ערך ברירת המחדל הוא1d. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. -
FORMAT: הפורמט של התגובה. אפשר להשתמש ב-jsonאו ב-yaml. -
OUTPUT_FILE: השם של הקובץ שבו רוצים לשמור את הפלט, לדוגמהprevious_policy.jsonאוprevious_policy.yaml.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud logging read \ 'protoPayload.methodName="SetIamPolicy" AND insertId="INSERT_ID"' \ --freshness=TIME_PERIOD \ --format="FORMAT(protoPayload.request.policy)" > OUTPUT_FILE
Windows (PowerShell)
gcloud logging read ` 'protoPayload.methodName="SetIamPolicy" AND insertId="INSERT_ID"' ` --freshness=TIME_PERIOD ` --format="FORMAT(protoPayload.request.policy)" > OUTPUT_FILE
Windows (cmd.exe)
gcloud logging read ^ 'protoPayload.methodName="SetIamPolicy" AND insertId="INSERT_ID"' ^ --freshness=TIME_PERIOD ^ --format="FORMAT(protoPayload.request.policy)" > OUTPUT_FILE
שינוי קובץ הפלט וביטול מדיניות ההרשאות הנוכחית
משנים את קובץ הפלט בדרכים הבאות ומבטלים את מדיניות ההרשאות הנוכחית.
באופן פרוגרמטי או באמצעות כלי לעריכת טקסט, משנים את קובץ הפלט על ידי מחיקת השורות הבאות:
--- protoPayload: request: policy:הקובץ שמתקבל מתחיל ב-
auditConfigs:.טוענים את מדיניות ההרשאות הקיימת.
gcloud
הפקודה
gcloud get-iam-policyמאחזרת את מדיניות ההרשאות של הפרויקט, התיקייה או הארגון.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שרוצים לקבל את מדיניות ההרשאה שלו. הערכים התקינים הםprojects,resource-manager foldersאוorganizations. -
RESOURCE_ID: מזהה הפרויקט, התיקייה או הארגון ב- Google Cloud . מזהי פרויקטים מכילים אותיות וספרות, למשלmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
FORMAT: הפורמט הרצוי למדיניות ההרשאה. אפשר להשתמש ב-jsonאו ב-yaml. -
PATH: הנתיב לקובץ פלט חדש של מדיניות ההרשאות.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
Windows (PowerShell)
gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
Windows (cmd.exe)
gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
לדוגמה, הפקודה הבאה מקבלת את מדיניות ההרשאה של הפרויקט
my-projectושומרת אותה בספריית הבית בפורמט JSON:gcloud projects get-iam-policy my-project --format json > ~/policy.json
C#
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
בדוגמה הבאה מוצג איך מקבלים את מדיניות ההרשאות של פרויקט. כדי ללמוד איך לקבל את מדיניות ההרשאות של תיקייה או ארגון, אפשר לעיין במסמכי התיעוד של ספריית הלקוח של Resource Manager בשפת התכנות שלכם.
Java
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
בדוגמה הבאה מוצג איך מקבלים את מדיניות ההרשאות של פרויקט. כדי ללמוד איך לקבל את מדיניות ההרשאות של תיקייה או ארגון, אפשר לעיין במסמכי התיעוד של ספריית הלקוח של Resource Manager בשפת התכנות שלכם.
Python
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
בדוגמה הבאה מוצג איך מקבלים את מדיניות ההרשאות של פרויקט. כדי ללמוד איך לקבל את מדיניות ההרשאות של תיקייה או ארגון, אפשר לעיין במסמכי התיעוד של ספריית הלקוח של Resource Manager בשפת התכנות שלכם.
REST
ה-method
get-iam-policyב-API של מנהל המשאבים מקבלת את מדיניות ההרשאה של פרויקט, של תיקייה או של ארגון.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
API_VERSION: גרסת ה-API שבה ייעשה שימוש. לפרויקטים ולארגונים, צריך להשתמש ב-v1. לתיקיות, צריך להשתמש ב-v2. -
RESOURCE_TYPE: סוג המשאב שאת המדיניות שלו רוצים לנהל. אפשר להשתמש ב-projects, ב-foldersאו ב-organizations. -
RESOURCE_ID: מזהה הפרויקט, הארגון או התיקייה שלכם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו Google Cloud. מזהי תיקיות וארגונים מכילים רק ספרות, כמוmy-project.123456789012 -
POLICY_VERSION: הגרסה של המדיניות שתוחזר. בבקשות צריך לציין את הגרסה הכי עדכנית של המדיניות (3). פרטים נוספים מופיעים במאמר ציון גרסת מדיניות בזמן אחזור מדיניות.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
תוכן בקשת JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התשובה תכיל את מדיניות ההרשאות של המשאב. לדוגמה:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:my-user@example.com" ] } ] }שומרים את התגובה בקובץ מהסוג המתאים (
jsonאוyaml).-
מעתיקים את הערך
etagממדיניות ההרשאות הנוכחית.מחליפים את הערך
etagבקובץ הפלט בערךetagשהעתקתם ממדיניות ההרשאה הנוכחית. כדי ליזום בקשתsetIamPolicyחדשה, הערך שלetagבקובץ הפלט צריך להיות זהה לערך הנוכחי שלetag. מוודאים שהרווחים ב-etag לא השתנו בקובץ הפלט.בודקים את הקובץ כדי לוודא שהוא תואם למדיניות ההרשאות הקודמת. כדאי ליצור פרויקט חדש ולהחיל עליו את המדיניות כדי לוודא שהיא פועלת כמצופה.
מגדירים את מדיניות ההרשאות כך שתחליף את מדיניות ההרשאות הנוכחית במדיניות ההרשאות שבקובץ הפלט שיצרתם.
gcloud
הפקודה
gcloud set-iam-policyמגדירה את המדיניות בבקשה כמדיניות ההרשאה החדשה של הפרויקט, התיקייה או הארגון.לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שעבורו רוצים להגדיר את מדיניות ההרשאה. הערכים התקפים הםprojects,resource-manager foldersאוorganizations. -
RESOURCE_ID: מזהה הפרויקט, התיקייה או הארגון ב- Google Cloud . מזהי פרויקטים מכילים אותיות וספרות, למשלmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
PATH: הנתיב לקובץ שכולל את מדיניות ההרשאה החדשה.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Windows (PowerShell)
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Windows (cmd.exe)
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
התגובה מכילה את מדיניות ההרשאה המעודכנת.
לדוגמה, הפקודה הבאה מגדירה את מדיניות ההרשאה ששמורה ב-
policy.jsonכמדיניות ההרשאה של הפרויקטmy-project:gcloud projects set-iam-policy my-project ~/policy.json
C#
Java
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
בדוגמה הבאה מוצג איך מגדירים את מדיניות ההרשאות של פרויקט. כדי ללמוד איך להגדיר את מדיניות ההרשאות של תיקייה או ארגון, אפשר לעיין במסמכי התיעוד של ספריית הלקוח של מנהל המשאבים בשפת התכנות שלכם.
Python
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
בדוגמה הבאה מוצג איך מגדירים את מדיניות ההרשאות של פרויקט. כדי ללמוד איך להגדיר את מדיניות ההרשאות של תיקייה או ארגון, אפשר לעיין במסמכי התיעוד של ספריית הלקוח של מנהל המשאבים בשפת התכנות שלכם.
REST
ה-method
set-iam-policyשל ה-API של מנהל המשאבים קובע את המדיניות בבקשה כמדיניות ההרשאה החדשה של הפרויקט, התיקייה או הארגון.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
API_VERSION: גרסת ה-API שבה ייעשה שימוש. לפרויקטים ולארגונים, צריך להשתמש ב-v1. לתיקיות, צריך להשתמש ב-v2. -
RESOURCE_TYPE: סוג המשאב שאת המדיניות שלו רוצים לנהל. אפשר להשתמש ב-projects, ב-foldersאו ב-organizations. -
RESOURCE_ID: מזהה הפרויקט, הארגון או התיקייה שלכם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו Google Cloud. מזהי תיקיות וארגונים מכילים רק ספרות, כמוmy-project.123456789012 -
POLICY: ייצוג ב-JSON של המדיניות שרוצים להגדיר. מידע נוסף על הפורמט של מדיניות מופיע במאמרי העזרה בנושא מדיניות.
שיטת ה-HTTP וכתובת ה-URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
תוכן בקשת JSON:
{ "policy": POLICY }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מכילה את מדיניות ההרשאה המעודכנת.
-
שחזור מדיניות הרשאה באמצעות מאגר משאבי הענן
כדי לשחזר מדיניות הרשאות לגרסה קודמת, אפשר להשתמש ב-מאגר משאבי ענן כדי לראות את היסטוריית השינויים של מדיניות ההרשאות של המשאב, ולהשתמש במידע הזה כדי לשחזר את המדיניות. התהליך הזה כולל את השלבים הבאים:
- משתמשים במאגר משאבי הענן כדי לבדוק את היסטוריית השינויים של מדיניות ההרשאות ולזהות את מדיניות ההרשאות שרוצים לשחזר.
- מעתיקים את מדיניות ההרשאה ויוצרים קובץ חדש בפורמט JSON.
- מחליפים את מדיניות ההרשאות הנוכחית במדיניות שבקובץ החדש.
בדיקת היסטוריית השינויים במדיניות ההרשאות באמצעות מאגר משאבי הענן
המסוף
נכנסים לדף Asset Inventory במסוף Google Cloud .
לוחצים על הכרטיסייה IAM Policy (מדיניות IAM).
מריצים את השאילתה הבאה בשדה Filter:
Resource :
RESOURCE_IDמחליפים את
RESOURCE_IDבמזהה Google Cloudהפרויקט, התיקייה או הארגון. מזהי פרויקטים הם אלפאנומריים, למשלmy-project. מזהי תיקיות וארגונים הם מספריים, למשל123456789012.כדי לראות את היסטוריית השינויים של מדיניות ההרשאות של המשאב, לוחצים על שם המשאב ואז בוחרים בכרטיסייה היסטוריית שינויים.
כדי להשוות בין שינויים במדיניות ההרשאה של המשאב, בוחרים שני רשומות שונות עם חותמת זמן מהתפריט בחירת רשומה להשוואה.
gcloud
הפקודה
gcloud asset get-history
מאחזרת את ההיסטוריה המעודכנת של מדיניות ההרשאה בנכס שחופף לחלון זמן.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שלגביו רוצים להציג את יומני הביקורת. אפשר להשתמש בערךproject,folderאוorganization. -
RESOURCE_ID: מזהה הפרויקט, הארגון או התיקייה ב- Google Cloud. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
ASSET_NAME: רשימה מופרדת בפסיקים של שמות משאבים בפורמט של המשאבים שרוצים לראות את היסטוריית מדיניות ההרשאות שלהם. לדוגמה,//cloudresourcemanager.googleapis.com/projects/my-project. המשאבים האלה יכולים להיות כל אחד מסוגי המשאבים שתומכים במדיניות הרשאות. -
START_TIME: תחילת טווח הזמן. הטווח המקסימלי הוא 7 ימים. הערך חייב להיות השעה הנוכחית או שעה שחלה לפני 35 ימים לכל היותר. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes. -
END_TIME: אופציונלי. נקודת הסיום של טווח הזמן. הטווח המקסימלי הוא 7 ימים. הערך חייב להיות השעה הנוכחית או שעה שחלה לפני לא יותר מ-35 ימים. אם לא מציינים שעת סיום, המערכת מניחה שהשעה היא השעה הנוכחית. מידע על פורמטים של שעות זמין במאמר gcloud topic datetimes.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud asset get-history \ --RESOURCE_TYPE=RESOURCE_ID \ --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \ --content-type=iam-policy \ --start-time=START_TIME \ --end-time=END_TIME
Windows (PowerShell)
gcloud asset get-history ` --RESOURCE_TYPE=RESOURCE_ID ` --asset-names=ASSET_NAME_1,ASSET_NAME_2,... ` --content-type=iam-policy ` --start-time=START_TIME ` --end-time=END_TIME
Windows (cmd.exe)
gcloud asset get-history ^ --RESOURCE_TYPE=RESOURCE_ID ^ --asset-names=ASSET_NAME_1,ASSET_NAME_2,... ^ --content-type=iam-policy ^ --start-time=START_TIME ^ --end-time=END_TIME
התשובה מכילה את ההיסטוריה המעודכנת של מדיניות ההרשאות.
יצירת קובץ מדיניות הרשאה חדש
אחרי שבודקים את היסטוריית מדיניות ההרשאות ומזהים את מדיניות ההרשאות שרוצים לשחזר, מבצעים את השלבים הבאים.
מעתיקים את מדיניות ההרשאה שרוצים לשחזר, החל מהשורה
"bindings"ועד לשורה"etag".מדביקים את מדיניות ההרשאה שהעתקתם לקובץ חדש, ומוסיפים סוגריים מסולסלים (
{}) מסביב למדיניות. לדוגמה, מדיניות ההרשאה יכולה להיראות כך:{ "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" ], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": "BwWWja0YfJA=", }שומרים את הקובץ בפורמט JSON. לדוגמה, אפשר לתת לקובץ החדש את השם
previous_iam_policy.json.
הגדרת מדיניות ההרשאות החדשה
מגדירים את מדיניות ההרשאות כך שתחליף את מדיניות ההרשאות הנוכחית במדיניות ההרשאות שבקובץ הפלט שיצרתם.
gcloud
הפקודה gcloud set-iam-policy מגדירה את המדיניות בבקשה כמדיניות ההרשאה החדשה של הפרויקט, התיקייה או הארגון.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
-
RESOURCE_TYPE: סוג המשאב שעבורו רוצים להגדיר את מדיניות ההרשאה. הערכים התקפים הםprojects,resource-manager foldersאוorganizations. -
RESOURCE_ID: מזהה הפרויקט, התיקייה או הארגון ב- Google Cloud . מזהי פרויקטים מכילים אותיות וספרות, למשלmy-project. מזהי תיקיות וארגונים מכילים רק ספרות, למשל123456789012. -
PATH: הנתיב לקובץ שכולל את מדיניות ההרשאה החדשה.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Windows (PowerShell)
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Windows (cmd.exe)
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
התגובה מכילה את מדיניות ההרשאה המעודכנת.
לדוגמה, הפקודה הבאה מגדירה את מדיניות ההרשאה ששמורה ב-policy.json כמדיניות ההרשאה של הפרויקט my-project:
gcloud projects set-iam-policy my-project ~/policy.json
C#
Java
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
בדוגמה הבאה מוצג איך מגדירים את מדיניות ההרשאות של פרויקט. כדי ללמוד איך להגדיר את מדיניות ההרשאות של תיקייה או ארגון, אפשר לעיין במסמכי התיעוד של ספריית הלקוח של מנהל המשאבים בשפת התכנות שלכם.
Python
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
בדוגמה הבאה מוצג איך מגדירים את מדיניות ההרשאות של פרויקט. כדי ללמוד איך להגדיר את מדיניות ההרשאות של תיקייה או ארגון, אפשר לעיין במסמכי התיעוד של ספריית הלקוח של מנהל המשאבים בשפת התכנות שלכם.
REST
ה-method set-iam-policy של ה-API של מנהל המשאבים קובע את המדיניות בבקשה כמדיניות ההרשאה החדשה של הפרויקט, התיקייה או הארגון.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
API_VERSION: גרסת ה-API שבה ייעשה שימוש. לפרויקטים ולארגונים, צריך להשתמש ב-v1. לתיקיות, צריך להשתמש ב-v2. -
RESOURCE_TYPE: סוג המשאב שאת המדיניות שלו רוצים לנהל. אפשר להשתמש ב-projects, ב-foldersאו ב-organizations. -
RESOURCE_ID: מזהה הפרויקט, הארגון או התיקייה שלכם. מזהי פרויקטים הם מחרוזות אלפאנומריות, כמו Google Cloud. מזהי תיקיות וארגונים מכילים רק ספרות, כמוmy-project.123456789012 -
POLICY: ייצוג ב-JSON של המדיניות שרוצים להגדיר. מידע נוסף על הפורמט של מדיניות מופיע במאמרי העזרה בנושא מדיניות.
שיטת ה-HTTP וכתובת ה-URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
תוכן בקשת JSON:
{
"policy": POLICY
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מכילה את מדיניות ההרשאה המעודכנת.