ResourceInfo

מכיל מידע על משאבי IAM.

ייצוג ב-JSON
{
  "policyType": string,
  "policyName": string,
  "policyRegion": string,
  "resourceContainer": string,
  "resource": {
    object (Resource)
  },
  "monitoredResource": {
    object (MonitoredResource)
  },
  "permissions": [
    string
  ],
  "nextExpectedResourceState": {
    "@type": string,
    field1: ...,
    ...
  },
  "federatedResourceHierarchy": {
    object (FederatedResourceHierarchy)
  },
  "targetResourceLocations": [
    string
  ]
}
שדות
policyType

string

אופציונלי: סוג המדיניות של המשאב. הערכים התקינים של policyType יכולים להיות compute_instances,‏ storage_buckets,‏ resourcemanager_projects וכו'.

policyName

string

אופציונלי: שם המדיניות של המשאב. ערכים תקינים ל-policyName יכולים להיות ‎/myproject/myinstance,‏ ‎/myproject/mybucket,‏ ‎/myproject וכו'.

policyRegion

string

אופציונלי: המיקום של המדיניות.

resourceContainer

string

אופציונלי: שם מאגר המשאבים. הפורמט יכול להיות אחד מהבאים: ‫- projects/‫- folders/‫- organizations/

resource

object (Resource)

אופציונלי: מאפייני הליבה של משאב.

monitoredResource

object (MonitoredResource)

אופציונלי: המשאב במעקב של ביקורת הענן.

permissions[]

string

אופציונלי: רשימת שמות ההרשאות ב-IAM שרוצים לבדוק, בפורמט: {serviceName}/{plural}.{verb} או בפורמט מדור קודם: {serviceName}.{plural}.{verb}.

  • ‫{serviceName} הוא השירות שבבעלותו המשאב.
  • ‫{plural} מתייחס לשדה plural של מקור המידע הזה. הערך צריך להיות בפורמט lowerCamelCase.

דוגמה: ["library.googleapis.com/shelves.get", "library.googleapis.com/shelves.update", "library.shelves.get", "library.shelves.update"]

nextExpectedResourceState

object

אופציונלי. התצוגה הצפויה של המשאב אחרי ביצוע שינוי.

דוגמה: CreateBookRequest יכול להיראות כך: { parent: "projects/project-123" book { author: "Someone Famous" title: "This is a Title" read: false } book_id: "book-123" }

nextExpectedResourceState יכול להיות: { name: "projects/project-123/books/book-123" author: "Someone Famous" title: "This is a Title" }

אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type" מכיל URI שמזהה את הסוג. דוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }.

federatedResourceHierarchy

object (FederatedResourceHierarchy)

אופציונלי: היררכיית משאבים מאוחדת לאיחוד מדיניות IAM.

targetResourceLocations[]

string

אופציונלי: המיקומים של משאב היעד. הבעלים של הפעולה יכול לציין את מיקומי היעד כמערך של שמות אזורים ב-Google Cloud ללא כפילויות, או כ-‎["global"]‎. הערה: אין תמיכה בשמות של כמה אזורים.

משאב

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

ייצוג ב-JSON
{
  "service": string,
  "name": string,
  "type": string,
  "labels": {
    string: string,
    ...
  },
  "uid": string,
  "annotations": {
    string: string,
    ...
  },
  "displayName": string,
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "etag": string,
  "location": string
}
שדות
service

string

השם של השירות שהמשאב הזה שייך אליו, כמו pubsub.googleapis.com. יכול להיות שהשירות יהיה שונה משם המארח של ה-DNS שמשרת בפועל את הבקשה.

name

string

המזהה הקבוע (השם) של משאב ב-service. אפשר לזהות משאב באופן לוגי בתור '//{resource.service}/{resource.name}'. ההבדלים בין שם משאב לבין URI הם:

  • שם המשאב הוא מזהה לוגי, שלא תלוי בפרוטוקול הרשת ובגרסת ה-API. לדוגמה, //pubsub.googleapis.com/projects/123/topics/news-feed.
  • ה-URI כולל בדרך כלל פרוטוקול ופרטי גרסה, ולכן אפשר להשתמש בו ישירות באפליקציות. לדוגמה, https://pubsub.googleapis.com/v1/projects/123/topics/news-feed.

פרטים נוספים זמינים בכתובת https://cloud.google.com/apis/design/resource_names.

type

string

סוג המשאב. התחביר הוא ספציפי לפלטפורמה כי פלטפורמות שונות מגדירות את המשאבים שלהן בצורה שונה.

בממשקי Google API, פורמט הסוג חייב להיות ‎ "{service}/{kind}‎", כמו ‎ "pubsub.googleapis.com/Topic"‎.

labels

map (key: string, value: string)

התוויות או התגים במשאב, כמו תגי משאבים של AWS ותוויות משאב ב-Kubernetes.

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

uid

string

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

annotations

map (key: string, value: string)

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

מידע נוסף: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

displayName

string

ניתן לשינוי. השם המוצג שהוגדר על ידי הלקוחות. חייב להכיל עד 63 תווים.

createTime

string (Timestamp format)

פלט בלבד. חותמת הזמן שבה נוצר המשאב. יכול להיות שזה הזמן שבו התחילה היצירה או הזמן שבו היא הסתיימה.

הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: "2014-10-02T15:01:23Z", ‏ "2014-10-02T15:01:23.045123456Z" או "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

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

הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: "2014-10-02T15:01:23Z", ‏ "2014-10-02T15:01:23.045123456Z" או "2014-10-02T15:01:23+05:30".

deleteTime

string (Timestamp format)

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

הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: "2014-10-02T15:01:23Z", ‏ "2014-10-02T15:01:23.045123456Z" או "2014-10-02T15:01:23+05:30".

etag

string

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

location

string

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

במוצרי Google Cloud, הקידוד הוא מה שמשמש את ממשקי Google Cloud API, כמו us-east1,‏ aws-us-east-1 ו-azure-eastus2. הסמנטיקה של location זהה לתווית cloud.googleapis.com/location שמשמשת חלק מממשקי Google Cloud API.

FederatedResourceHierarchy

ייצוג ב-JSON
{
  "version": integer,
  "federatedHierarchy": [
    {
      object (FederatedResource)
    }
  ],
  "nonFederatedParent": {
    object (PolicyName)
  }
}
שדות
version

integer

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

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

             +----------+----------------------+
             | Version  | Supported Attributes |
             +----------+----------------------+
             | 0        | grant policies, tags |
             +----------+----------------------+
             | 1        | grant policies, tags |
             +----------+----------------------+

הערה: אין הבדל בין גרסה 0 לגרסה 1. מומלץ להשתמש באפשרות 1.

federatedHierarchy[]

object (FederatedResource)

בסדר מסוים, החל מצומת העלה, מאפייני המשאבים בבקשה הזו שיש להם מידע מאוחד. שם המדיניות של שם צומת העלה חייב להיות זהה ל-PolicyName הבסיסי של המשאב בבקשה – CheckPolicyRequest.name,‏ BulkCheckPolicyRequest.requests.name וכו'. הרשימה הזו יכולה להכיל עד 15 רשומות.

nonFederatedParent

object (PolicyName)

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

FederatedResource

ייצוג ב-JSON
{
  "policyName": {
    object (PolicyName)
  },
  "resourceName": string,

  // Union field grant_policy can be only one of the following:
  "grantPolicyStatus": enum (FederatedAttributeStatus),
  "federatedGrantPolicy": {
    object (FederatedGrantPolicy)
  }
  // End of list of possible types for union field grant_policy.

  // Union field tags can be only one of the following:
  "tagsStatus": enum (FederatedAttributeStatus),
  "federatedTags": {
    object (FederatedTags)
  }
  // End of list of possible types for union field tags.
}
שדות
policyName

object (PolicyName)

resourceName

string

שם המשאב היחסי, לא כולל הקידומת / (לדוגמה, projects/project-id). מידע נוסף: https://cloud.google.com/apis/design/resource_names#relative_resource_name

השדה הזה משמש בגבולות גישה לפרטי כניסה (CAB) כדי להתאים ל-availableResource של כלל ה-CAB. מידע נוסף מופיע כאן: https://cloud.google.com/iam/docs/downscoping-short-lived-credentials

שדה איחוד grant_policy.

הערך grant_policy יכול להיות רק אחד מהבאים:

grantPolicyStatus

enum (FederatedAttributeStatus)

federatedGrantPolicy

object (FederatedGrantPolicy)

שדה איחוד tags.

הערך tags יכול להיות רק אחד מהבאים:

tagsStatus

enum (FederatedAttributeStatus)

federatedTags

object (FederatedTags)

PolicyName

שם פנימי למדיניות IAM, על סמך המשאב שהמדיניות חלה עליו. לא להתבלבל עם השם המלא החיצוני של משאב. מידע נוסף על ההבדל הזה

ייצוג ב-JSON
{
  "type": string,
  "id": string,
  "region": string
}
שדות
type

string

סוג המשאב. הסוגים מוגדרים בקובצי ‎ .service של IAM. הערכים התקינים של type יכולים להיות 'storage_buckets',‏ 'compute_instances',‏ 'resourcemanager_customers',‏ 'billing_accounts' וכו'.

id

string

מזהה מופע של הסוג. הפורמט של המזהה משתנה בהתאם לסוג. הפורמט של המזהה מוגדר בקובץ ה-IAM ‏ .service שמגדיר את הסוג, ב-path_mapping או בתגובה.

region

string

ב-Cloud IAM: המיקום של המדיניות. השדה הזה צריך להיות ריק או להכיל את הערך global אם המדיניות בבעלות IAM גלובלי. חובה לציין שם של אזור מתוך prodspec/cloud-iam-cloudspec למדיניות IAM אזורית.

ב-IAM מקומי: הערך בשדה הזה צריך להיות local.

FederatedGrantPolicy

מדיניות מאוחדת למתן הרשאות שסופקה על ידי המתקשר. הערכים האלה ישמשו במקום המדיניות המאוחסנת במהלך ההערכה של CheckPolicy. מובטח שיהיה לכל היותר 257 KiB. כדי להגדיל את המכסה הזו, צריך לבקש בדיקה משירותים שמשולבים עם איחוד IAM.

ייצוג ב-JSON
{
  "version": integer,
  "policyData": {
    "@type": string,
    field1: ...,
    ...
  },
  "visibleReferences": {
    object (VisibleReferences)
  },
  "sha256": string
}
שדות
version

integer

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

policyData

object

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

אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type" מכיל URI שמזהה את הסוג. דוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }.

visibleReferences

object (VisibleReferences)

sha256

string (bytes format)

גיבוב של policyData לשמירה במטמון. אותה מדיניות שחלה על משאבים שונים צפויה להניב את אותו הגיבוב.

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

VisibleReferences

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

ייצוג ב-JSON
{
  "gaiaIds": [
    string
  ],
  "customRoles": [
    string
  ],
  "cpis": [
    string
  ],
  "projectNumbers": [
    string
  ]
}
שדות
gaiaIds[]

string (int64 format)

customRoles[]

string

שם התפקיד המותאם אישית כפי שמופיע במדיניות. לדוגמה: organizations/1234/roles/myRole.

cpis[]

string

projectNumbers[]

string (int64 format)

מספר הפרויקט של projectOwner, ‏ projectEditor ו-projectViewer

FederatedTags

קובץ wrapper למפה של צמדי מפתח/ערך של תגים, כי אי אפשר להשתמש במפות כשדה ב-oneof. עדיין לא נתמך בשימוש בשירות של Google Cloud.

ייצוג ב-JSON
{
  "tags": {
    string: string,
    ...
  }
}
שדות
tags

map (key: string, value: string)

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.