Package google.iam.v1

אינדקס

קישור

משייך members או מנהלים ל-role.

שדות
role

string

התפקיד שמוקצה לרשימה של members או חשבונות משתמשים. לדוגמה, roles/viewer,‏ roles/editor או roles/owner.

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

members[]

string

מציין את חשבונות המשתמשים שמבקשים גישה למשאב ב-Google Cloud. ‫members יכול לקבל את הערכים הבאים:

  • allUsers: מזהה מיוחד שמייצג את כל מי שמשתמש באינטרנט, עם או בלי חשבון Google.

  • allAuthenticatedUsers: מזהה מיוחד שמייצג את כל מי שאומת באמצעות חשבון Google או חשבון שירות. לא כולל זהויות שמגיעות מספקי זהויות חיצוניים (IdPs) דרך איחוד זהויות.

  • user:{emailid}: כתובת אימייל שמייצגת חשבון Google ספציפי. לדוגמה, alice@example.com .

  • serviceAccount:{emailid}: כתובת אימייל שמייצגת חשבון שירות של Google. לדוגמה, my-other-app@appspot.gserviceaccount.com.

  • serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: מזהה של חשבון שירות של Kubernetes. לדוגמה, my-project.svc.id.goog[my-namespace/my-kubernetes-sa].

  • group:{emailid}: כתובת אימייל שמייצגת קבוצה ב-Google. לדוגמה, admins@example.com.

  • domain:{domain}: הדומיין (הראשי) של G Suite שמייצג את כל המשתמשים בדומיין הזה. לדוגמה, google.com או example.com.
  • principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: זהות יחידה במאגר זהויות של כוח עבודה.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: כל הזהויות של כוח העבודה בקבוצה.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: כל הזהויות של כוח העבודה עם ערך מאפיין ספציפי.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: כל הזהויות במאגר זהויות של כוח עבודה.

  • principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: זהות אחת במאגר זהויות של עומסי עבודה.

  • principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: קבוצה במאגר הזהויות של עומסי העבודה.

  • principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: כל הזהויות במאגר זהויות של עומסי עבודה עם מאפיין מסוים.

  • principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*: כל הזהויות במאגר הזהויות של עומסי העבודה.

  • deleted:user:{emailid}?uid={uniqueid}: כתובת אימייל (בתוספת מזהה ייחודי) שמייצגת משתמש שנמחק לאחרונה. לדוגמה, alice@example.com?uid=123456789012345678901. אם המשתמש שוחזר, הערך הזה חוזר ל-user:{emailid} והמשתמש ששוחזר שומר על התפקיד בהתאמה.

  • deleted:serviceAccount:{emailid}?uid={uniqueid}: כתובת אימייל (בתוספת מזהה ייחודי) שמייצגת חשבון שירות שנמחק לאחרונה. לדוגמה, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. אם מבטלים את המחיקה של חשבון השירות, הערך הזה חוזר להיות serviceAccount:{emailid} וחשבון השירות שבוטלה המחיקה שלו שומר על התפקיד בקישור.

  • deleted:group:{emailid}?uid={uniqueid}: כתובת אימייל (בתוספת מזהה ייחודי) שמייצגת קבוצה ב-Google שנמחקה לאחרונה. לדוגמה, admins@example.com?uid=123456789012345678901. אם הקבוצה משוחזרת, הערך הזה חוזר ל-group:{emailid} והקבוצה המשוחזרת שומרת על התפקיד בהתאמה.

  • deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: זהות יחידה שנמחקה במאגר זהויות של כוח עבודה. לדוגמה, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.

condition

Expr

התנאי שמשויך לקשירה הזו.

אם התנאי מקבל את הערך true, הקישור הזה חל על הבקשה הנוכחית.

אם התנאי מקבל את הערך false, הקישור הזה לא חל על הבקשה הנוכחית. עם זאת, יכול להיות שקישור תפקיד אחר יקצה את אותו תפקיד לאחד או יותר מהחשבונות הראשיים בקישור הזה.

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

GetIamPolicyRequest

הודעת בקשה לשיטה GetIamPolicy.

שדות
resource

string

חובה: המשאב שעבורו מתבקשת המדיניות. בקטע שמות משאבים מוסבר מהו הערך המתאים לשדה הזה.

options

GetPolicyOptions

אופציונלי: אובייקט GetPolicyOptions לציון אפשרויות ל-GetIamPolicy.

GetPolicyOptions

הגדרה שכוללת את ההגדרות שסופקו ל-GetIamPolicy.

שדות
requested_policy_version

int32

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

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

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

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

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

מדיניות

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

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

בסוגים מסוימים של משאבים ב-Google Cloud, אפשר גם לציין condition ב-binding. condition הוא ביטוי לוגי שמאפשר גישה למשאב רק אם ערך הביטוי הוא true. תנאי יכול להוסיף מגבלות על סמך מאפיינים של הבקשה, של המשאב או של שניהם. במאמרי העזרה של IAM מוסבר אילו משאבים תומכים בתנאים במדיניות ה-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"
          ],
          "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
    }

דוגמה ל-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.

שדות
version

int32

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

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

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

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

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

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

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

bindings[]

Binding

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

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

etag

bytes

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

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

SetIamPolicyRequest

הודעת בקשה לשיטה SetIamPolicy.

שדות
resource

string

חובה: המשאב שעבורו מציינים את המדיניות. בקטע שמות משאבים מוסבר מהו הערך המתאים לשדה הזה.

policy

Policy

חובה: המדיניות המלאה שתחול על resource. גודל המדיניות מוגבל לכמה עשרות קילובייט. מדיניות ריקה היא מדיניות תקינה, אבל יכול להיות ששירותים מסוימים של Google Cloud (כמו פרויקטים) ידחו אותה.