Policy

מדיניות ניהול הזהויות והרשאות הגישה (IAM), שמציינת את אמצעי בקרת הגישה למשאבים ב-Google Cloud.

Policy הוא אוסף של bindings. binding מקשרת members אחד או יותר, או חשבונות משתמשים, לrole יחיד. חשבונות ראשיים יכולים להיות חשבונות משתמשים, חשבונות שירות, קבוצות Google ודומיינים (כמו G Suite). role היא רשימה של הרשאות עם שם. כל role יכול להיות תפקיד מוגדר מראש ב-IAM או תפקיד בהתאמה אישית שנוצר על ידי משתמש.

דוגמה ל-JSON:

    {
      "bindings": [
        {
          "role": "roles/resourcemanager.organizationAdmin",
          "members": [
            "user:mike@example.com",
            "group:admins@example.com",
            "domain:google.com",
            "serviceAccount:my-project-id@appspot.gserviceaccount.com"
          ]
        },
        {
          "role": "roles/resourcemanager.organizationViewer",
          "members": [
            "user:eve@example.com"
          ],
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }

דוגמה ל-YAML:

    bindings:
    - members:
      - user:mike@example.com
      - group:admins@example.com
      - domain:google.com
      - serviceAccount:my-project-id@appspot.gserviceaccount.com
      role: roles/resourcemanager.organizationAdmin
    - members:
      - user:eve@example.com
      role: roles/resourcemanager.organizationViewer
      condition:
        title: expirable access
        description: Does not grant access after Sep 2020
        expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
    etag: BwWWja0YfJA=
    version: 3

למידע על IAM והמאפיינים שלו, תוכלו לעיין במסמכי העזרה של IAM.

ייצוג ב-JSON
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "etag": string
}
שדות
version

integer

מציין את הפורמט של המדיניות.

הערכים התקפים הם 0,‏ 1 ו-3. בקשות שמציינות ערך לא תקין נדחות.

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

  • קבלת מדיניות שכוללת קישור תפקיד מותנה
  • הוספה של קישור תפקיד מותנה למדיניות
  • שינוי של קישור תפקיד מותנה במדיניות
  • הסרה של קישור תפקידים, עם או בלי תנאי, ממדיניות שכוללת תנאים

חשוב: אם משתמשים בתנאים של IAM, צריך לכלול את השדה etag בכל קריאה ל-setIamPolicy. אם משמיטים את השדה הזה, IAM מאפשר להחליף את מדיניות גרסה 3 במדיניות גרסה 1, וכל התנאים במדיניות גרסה 3 נמחקים.

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

במאמרי העזרה של IAM מוסבר אילו משאבים תומכים בתנאים במדיניות ה-IAM שלהם.

bindings[]

object (Binding)

משייך רשימה של members או חשבונות משתמשים לrole. אפשר גם לציין condition שקובע איך ומתי המערכת מחילה את bindings. כל אחד מה-bindings חייב להכיל לפחות גורם ראשי אחד.

ב-bindings ב-Policy אפשר להפנות עד 1,500 חשבונות משתמשים, ומתוכם עד 250 יכולים להיות קבוצות Google. כל מופע של גורם מרכזי נספר במסגרת המגבלות האלה. לדוגמה, אם ההרשאה bindings מעניקה 50 תפקידים שונים ל-user:alice@example.com, ולא לחשבון משתמש אחר, תוכלו להוסיף עוד 1,450 חשבונות משתמשים ל-bindings ב-Policy.

auditConfigs[]

object (AuditConfig)

הגדרת רישום ביומני ביקורת בענן עבור המדיניות הזו.

etag

string (bytes format)

etag משמש לבקרת בו-זמניות אופטימית כדי למנוע מצב שבו עדכונים בו-זמניים של מדיניות יחליפו אחד את השני. מומלץ מאוד להשתמש ב-etag במחזור הקריאה-שינוי-כתיבה כדי לבצע עדכונים במדיניות, וכך למנוע מרוץ תהליכים: ערך etag מוחזר בתגובה לבקשת getIamPolicy, והמערכות צריכות להוסיף את ה-etag לבקשת setIamPolicy כדי לוודא שהשינוי יוחל על אותה גרסה של המדיניות.

חשוב: אם משתמשים בתנאים של IAM, צריך לכלול את השדה etag בכל קריאה ל-setIamPolicy. אם משמיטים את השדה הזה, IAM מאפשר להחליף את מדיניות גרסה 3 במדיניות גרסה 1, וכל התנאים במדיניות גרסה 3 נמחקים.

מחרוזת בקידוד Base64.