הסבר על מאפיינים לתנאים ב-IAM

במאמר הזה מתוארים מאפיינים שנתמכים בביטוי תנאי.

מאפייני תנאים נתמכים

בקטעים הבאים מופיע סיכום של המאפיינים הנתמכים ופירוט של השירותיםGoogle Cloud שמזהים כל מאפיין.

מאפייני המשאבים

המאפיינים הבאים קשורים למשאב שלגביו נשלחת הבקשה.

מאפיין סיכום השימוש שירותים Google Cloud נתמכים
מאפיין שירות המשאב

ניהול הגישה לפי השירות שנמצא בשימוש. Google Cloud

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

  • Apigee
  • Application Integration
  • Apigee API Hub
  • שירות Backup and DR
  • BigQuery
  • BigQuery Reservation API
  • Bigtable
  • Binary Authorization
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • שרת proxy לאימות זהויות (IAP)
  • Integration Connectors
  • שירות מנוהל של Google Cloud ל-Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Cloud NGFW
  • Pub/Sub Lite
  • מנהל המשאבים
  • Secret Manager
  • Spanner
מאפיין סוג המשאב

ניהול הגישה לפי סוג המשאב.

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

  • Apigee
  • Application Integration
  • Apigee API Hub
  • BigQuery
  • BigQuery Reservation API
  • Bigtable
  • Binary Authorization
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • Cloud NGFW
  • שרת proxy לאימות זהויות (IAP)
  • Integration Connectors
  • שירות מנוהל של Google Cloud ל-Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Pub/Sub Lite
  • מנהל המשאבים
  • Secret Manager
  • Spanner
מאפיין שם המשאב

ניהול הגישה לפי שם המשאב.

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

  • Apigee
  • Application Integration
  • Apigee API Hub
  • שירות Backup and DR
  • BigQuery
  • BigQuery Reservation API
  • Bigtable
  • Binary Authorization
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • Cloud NGFW
  • Integration Connectors
  • שירות מנוהל של Google Cloud ל-Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Pub/Sub Lite
  • Secret Manager
  • Spanner
תגי משאבים

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

אפשר להשתמש במאפיין הזה במקומות הבאים:

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

כל Google Cloud השירותים (מידע נוסף מופיע במאמר תמיכה בתנאים שעברו בירושה)

אפשר לקרוא פרטים נוספים על מאפייני משאבים בקטע מאפייני משאבים שבדף הזה.

מאפיינים עיקריים

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

מאפיין סיכום השימוש סוגי ישויות נתמכים

מאפיין סוג הגורם המורשה

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

אפשר להשתמש במאפיין הזה בקישורי מדיניות של מדיניות לקביעת גבול הגישה לחשבונות משתמשים (PAB).

  • חשבונות Google
  • זהויות במאגר זהויות של כוח עבודה
  • זהויות במאגר זהויות של עומסי עבודה
  • חשבונות שירות

מאפיין הנושא של חשבון המשתמש

החלת מדיניות על סמך הזהות של חשבון המשתמש בבקשה.

אפשר להשתמש במאפיין הזה בקישורי מדיניות של מדיניות לקביעת גבול הגישה לחשבונות משתמשים (PAB).

  • חשבונות Google
  • זהויות במאגר זהויות של כוח עבודה
  • זהויות במאגר זהויות של עומסי עבודה
  • חשבונות שירות

אפשר לקרוא פרטים נוספים על מאפייני ישויות בקטע מאפייני ישויות שבדף הזה.

מאפייני הבקשות

המאפיינים הבאים קשורים לפרטי הבקשה.

מאפיין סיכום השימוש שירותים Google Cloud נתמכים

מאפיין רמות גישה

ניהול הגישה לפי רמות גישה ספציפיות.

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

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

שרת proxy לאימות זהויות (IAP)

מאפייני API

ניהול הגישה לפי נתונים של שירות או ממשק API ספציפיים של Google Cloud.

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

  • API Gateway
  • AutoML
  • Certificate Authority Service
  • פונקציות Cloud Run
  • Cloud Healthcare API
  • Cloud Key Management Service
  • Cloud Run
  • Cloud Runtime Configuration API
  • Cloud Storage
  • Compute Engine
  • Artifact Analysis
  • Dataproc
  • Earth Engine
  • שרתי גיימינג
  • ניהול זהויות והרשאות גישה
  • שרת proxy לאימות זהויות (IAP)
  • שירות מנוהל עבור Microsoft Active Directory
  • notebooks בניהול המשתמשים
  • מנהל המשאבים
  • Secret Manager
  • ניהול השירות

מאפייני תאריך/שעה

הגדרת גישה עם תאריך תפוגה, מתוזמנת או לזמן מוגבל למשאבי Google Cloud .

אפשר להשתמש במאפיינים האלה בקישורים של תפקידי מדיניות הרשאות.

כל Google Cloud השירותים (מידע נוסף מופיע במאמר תמיכה בתנאים שעברו בירושה)

מאפייני IP/יציאה של יעד

ניהול הגישה לפי כתובת ה-IP של היעד ו/או היציאה של הבקשה. לדוגמה, מופע של מכונה וירטואלית (VM) של Compute Engine יכול לחשוף כתובת IP חיצונית, כמו 10.0.0.2, אבל יכול להיות שהיציאה 22 תיחשף לשימוש האדמין בלבד.

משמש להעברת TCP של שרת Proxy לאימות זהויות (IAP).

אפשר להשתמש במאפיינים האלה בקישורים של תפקידי מדיניות הרשאות.

שרת proxy לאימות זהויות (IAP)

מאפיינים של כלל העברה

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

אפשר להשתמש במאפיינים האלה בקישורים של תפקידי מדיניות הרשאות.

מאפייני מארח/נתיב כתובת ה-URL

ניהול הגישה לפי נתיב כתובת ה-URL או המארח של בקשה. לדוגמה, תנאי יכול לציין ש-https://example.com היא האפליקציה הראשית שאליה יכול לגשת דומיין כללי של משתמשים, אבל https://hr.example.com/admin ישמש לגישה לדף באפליקציה שרק לאדמינים של משאבי אנוש יש גישה אליו.

אפשר להשתמש במאפיינים האלה בקישורים של תפקידי מדיניות הרשאות.

  • שרת proxy לאימות זהויות (IAP)
  • Cloud Run

אפשר לקרוא פרטים נוספים על מאפייני בקשות בקטע מאפייני בקשות שבדף הזה.

תמיכה בתנאים שעברו בירושה

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

כשמשתמשים במאפיינים ברמת הארגון, התיקייה או הפרויקט, חשוב לזכור שרוב המאפיינים זמינים רק לסוגי משאבים ספציפיים. אם חלק מתנאי מסוים ישתמש במאפיין שלא זמין למשאב, החלק הזה של התנאי אף פעם לא יפורש כמתן גישה. לדוגמה, התנאי resource.name.endsWith == devResource אף פעם לא מעניק גישה למשאב IAM כלשהו, כי משאבי IAM לא מספקים את שם המשאב.

כדי למנוע את הבעיה, השתמשו במאפיינים של סוג המשאב ושירות המשאב כדי להגביל את היקף התנאי. לדוגמה, התנאי הבא מקבל את הערך true לכל סוגי המשאבים, מלבד למופעים של Compute Engine. בניגוד לזה, במופעים של Compute Engine, התנאי בודק את שם המשאב:

resource.type != 'compute.googleapis.com/Disk' ||
    resource.name.endsWith('devResource')

מאפייני המשאבים

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

מאפיין resource.service

בעזרת המאפיין resource.service אפשר להגדיר תנאי לפיGoogle Cloud השירות שנמצא בשימוש. לדוגמה, תוכלו להגדיר תנאי שמגביל את הגישה של משתמש למשאבים שמשתמשים בשירות cloudresourcemanager.googleapis.com. במאמר ערכי שירות של משאבים תוכלו למצוא רשימה של הערכים שנתמכים.

אפשר להשתמש במאפיין resource.service בקישורים של תפקידים במדיניות הרשאה.

משתנה של מאפיין resource.service
סוג מאפיין

string

במאמר ערכי שירות של משאבים תוכלו למצוא רשימה של הערכים שנתמכים.

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

הפונקציה מחזירה את הערך true עבור המשאבים של Compute Engine:

resource.service == "compute.googleapis.com"
שירותים נתמכים
  • Apigee
  • Application Integration
  • Apigee API Hub
  • שירות Backup and DR
  • BigQuery
  • BigQuery Reservation API
  • Bigtable
  • Binary Authorization
  • Cloud Deploy
  • Cloud Key Management Service
  • Cloud Logging
  • Cloud SQL
  • Cloud Storage
  • Compute Engine
  • Dataform
  • Google Kubernetes Engine
  • Firestore
  • שרת proxy לאימות זהויות (IAP)
  • Integration Connectors
  • שירות מנוהל של Google Cloud ל-Apache Kafka
  • Network Security Integration
  • Parameter Manager
  • Cloud NGFW
  • Pub/Sub Lite
  • מנהל המשאבים
  • Secret Manager
  • Spanner

מאפיין resource.type

המאפיין resource.type מאפשר להגדיר תנאי לפי סוג המשאב. לדוגמה, אפשר להגדיר תנאי שמגביל את הגישה של משתמש למשאבים מסוג storage.googleapis.com/Object. במאמר ערכים של סוגי משאבים תוכלו למצוא רשימה של ערכים נתמכים.

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

אפשר להשתמש במאפיין resource.type בקישורים של תפקידים במדיניות הרשאה.

משתנה של מאפיין resource.type
סוג מאפיין

string

במאמר ערכים של סוגי משאבים תוכלו למצוא רשימה של הערכים שנתמכים.

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

הפונקציה מחזירה את הערך true, אלא אם המשאב הוא תמונה של Compute Engine:

resource.type != "compute.googleapis.com/Image"

הפונקציה מחזירה את הערך true רק אם המשאב הוא תמונה של Compute Engine או דיסק אחסון מתמיד (persistent disk):

(resource.type == "compute.googleapis.com/Image" ||
 resource.type == "compute.googleapis.com/Disk")
סוגי המשאבים שנתמכים
Apigee
  • מאפייני מוצר של API
  • מוצרי API
  • ממשקי proxy ל-API
  • רשומות מפה עם מפתח/ערך של Proxy ל-API
  • מפות מפתח/ערך של proxy ל-API
  • גרסאות של proxy ל-API
  • קובצי מטמון
  • מאפיינים של אפליקציות למפתחים
  • אפליקציות למפתחים
  • מאפיינים למפתחים
  • מפתחים
  • רשומות מפה עם מפתח/ערך של סביבה
  • מפות מפתח/ערך של סביבה
  • ייצוא
  • קטעי הוק (hooks) לזרימה
  • כינויים של מאגרי מפתחות
  • מאגרי מפתחות
  • שאילתות
  • תוכניות תמחור
  • הפניות
  • גרסאות של תהליכי עבודה משותפים
  • תהליכי עבודה משותפים
  • שרתי היעד
  • סשנים של יומן מעקב (ניפוי באגים)
Application Integration
  • הגדרות אימות
  • הפעלות
  • גרסאות השילוב
  • שילובים
  • מיקומים
  • השעיות
Apigee API Hub
  • ממשקי API
  • פעולות API
  • הגדרות
  • פריסות
  • מפרטים
  • גרסאות
שירות Backup and DR
  • כספות גיבוי
BigQuery
  • מערכי נתונים
  • מודלים
  • תרחישים
  • Tables
BigQuery Reservation API
  • משימות
  • הזמנות ב-BI
  • התחייבויות לקיבולת
  • מיקומים
  • הזמנות
Bigtable
  • אשכולות
  • מופעים
  • Tables
Binary Authorization
  • גורמים מאמתים
  • הגדרות של אימות רציף
  • מדיניות
Cloud Key Management Service
  • גרסאות של מפתחות הצפנה
  • מפתחות הצפנה
  • אוספי מפתחות
  • מיקומים
Cloud Logging
  • קטגוריות ביומן
  • תצוגות ביומן
Cloud NGFW
  • קבוצות של כתובות
Cloud SQL
  • הרצות גיבויים
  • מופעים
Cloud Storage
  • קטגוריות
  • תיקיות מנוהלות
  • Objects
Compute Engine
  • שירותים לקצה העורפי (גלובלי ואזורי)
  • חומות אש
  • כללי העברה (גלובלי ואזורי)
  • תמונות
  • תבניות של מכונה
  • מופעים
  • דיסקים לאחסון מתמיד (persistent disks) (אזורי ושל תחום מוגדר)
  • snapshots
  • שרתי proxy של HTTP(S) ביעד (גלובליים ואזוריים)
  • שרתי proxy של SSL ביעד
  • שרתי proxy של TCP ביעד
Dataform
  • תוצאות ההידור
  • מיקומים
  • הגדרות מוצר
  • מאגרי נתונים
  • הגדרות של תהליכי עבודה
  • הפעלות של תהליכי עבודה
  • סביבות עבודה
Google Cloud
  • מיקומים1
Google Kubernetes Engine
  • אשכולות
Firestore
  • מסדי נתונים
שרת proxy לאימות זהויות (IAP)
  • כל השירותים לקצה העורפי והאפליקציות של App Engine
  • כל משאבי המנהרה
  • כל אזורי המנהרה
  • כל שירותי האינטרנט
  • גרסאות שירות של אפליקציות ב-App Engine
  • שירותי אפליקציות ב-App Engine
  • שירותים לקצה העורפי של Compute Engine
  • מופעי מנהרות
Integration Connectors
  • חיבורים
  • מטא-נתונים של סכימת החיבור
  • קבצים מצורפים בנקודות קצה
  • הרשמות לאירועים
  • אזורים מנוהלים
שירות מנוהל של Google Cloud ל-Apache Kafka
  • אשכולות
  • קבוצות צרכנים
  • תפעול
  • נושאים
Parameter Manager
  • גרסאות פרמטרים
  • פרמטרים
Pub/Sub Lite
  • מיקומים
  • מינויים
  • נושאים
Network Security Integration
  • יירוט של קבוצות פריסה
  • חסימת פריסות
  • יירוט של קבוצות נקודות קצה
  • יירוט שיוכים של קבוצות נקודות קצה
  • קבוצות פריסה של שיקוף
  • שיקוף פריסות
  • קבוצות של נקודות קצה לשיקוף
  • שיקוף של שיוכי קבוצות של נקודות קצה
מנהל המשאבים
  • פרויקטים
Secret Manager
  • גרסאות של סודות
  • סודות
Spanner
  • גיבויים
  • מסדי נתונים
  • מכונות

1 ב-Cloud Key Management Service משמש סוג המשאב הזה כהורה של משאבים לאוסף מפתחות.

מאפיין resource.name

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

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

אפשר לראות בדוגמה הבאה איך להבטיח התנהגות כזו. בדוגמה הזו, התנאי מאפשר גישה לכל סוגי המשאבים, מלבד קטגוריות ואובייקטים של Cloud Storage. לעומת זאת, עבור קטגוריות ואובייקטים, התנאי מאפשר גישה רק לקטגוריה example-bucket ולאובייקטים שהיא מכילה:

(resource.type != 'storage.googleapis.com/Bucket' &&
 resource.type != 'storage.googleapis.com/Object') ||
resource.name.startsWith('projects/_/buckets/example-bucket')

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

בנוסף, שימו לב שהתנאי בודק את המאפיין resource.type ולא את המאפיין resource.service. יש כמה יתרונות בבדיקת המאפיין resource.type:

  • הוא מגביל את הבדיקה של resource.name לקבוצת המשאבים המתאימה. לדוגמה, אם אתם רוצים לתת גישה למכונות של Compute Engine בשם מסוים, כדאי להוציא את כל סוגי המשאבים מלבד מכונות של Compute Engine.
  • הוא ימנע את השינוי של היקף התנאי אם שירות מסוים יוסיף סוגים חדשים של משאבים בעתיד.

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

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

  • אפשר להשתמש בפונקציה extract() כדי לחלץ ערך משם משאב. לדוגמה, אפשר לחלץ מזהה פרויקט משם המשאב של מכונת VM ב-Compute Engine, ואז לכתוב ביטוי תנאי שמפנה למזהה הפרויקט.

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

  • אפשר להשתמש בפונקציה startsWith() או endsWith() כדי לכתוב תנאי שמעריך את ההתחלה או הסוף של שם המשאב.

אפשר להשתמש במאפיין resource.name בקישורים של תפקידים במדיניות הרשאה.

משתנה של מאפיין resource.name
סוג מאפיין

string

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

הפונקציות והאופרטורים שנתמכים startsWith(), endsWith(), extract(), ,
פרטים

השדה resource.name מכיל את שם המשאב היחסי של משאב היעד בבקשה. השם של המשאב היחסי הוא נתיב ב-URI ללא קו נטוי קדימה (/).

כדי להעריך את הפונקציה startsWith() ביחס ל-resource.name הפונקציה הזו משתמשת בליטרל של מחרוזת התחילית.

כדי להעריך את הפונקציה endsWith() ביחס ל-resource.name הפונקציה הזו משתמשת בליטרל של מחרוזת הסיומת.

הפונקציה extract() משתמשת בתבנית חילוץ כדי לחלץ חלק מ-resource.name. אפשר לקרוא פרטים נוספים בקטע חילוץ ערכים משמות משאבים שבדף הזה.

האופרטורים ו- מושווים ל-resource.name כולו, או לחלק שחולץ מתוך resource.name.

דוגמאות

הפונקציה מחזירה את הערך true, אלא אם שם המשאב מזהה קטגוריה של Cloud Storage בשם secret-bucket-123:

resource.name != "projects/_/buckets/secret-bucket-123"

הפונקציה מחזירה את הערך true אם שם המשאב מתחיל בתחילית שצוינה ובפורמט של מכונות VM של Compute Engine:

resource.name.startsWith("projects/project-123/zones/us-east1-b/instances/prod-")

הפונקציה מחזירה את הערך true אם שם המשאב מתחיל בתחילית שצוינה, בפורמט של הקטגוריות של Cloud Storage:

resource.name.startsWith("projects/_/buckets/my_bucket/objects/test-object-")

הפונקציה מחזירה את הערך true אם שם המשאב מסתיים בסיומת שצוינה, לדוגמה סיומת הקובץ של אובייקט ב-Cloud Storage:

resource.name.endsWith(".jpg")

הפונקציה מחזירה את השם או המספר של הפרויקט, אם הוא מופיע:

resource.name.extract("projects/{project}/")
סוגי המשאבים שנתמכים
Apigee
  • מאפייני מוצר של API
  • מוצרי API
  • ממשקי proxy ל-API
  • רשומות מפה עם מפתח/ערך של Proxy ל-API
  • מפות מפתח/ערך של proxy ל-API
  • גרסאות של proxy ל-API
  • קובצי מטמון
  • מאפיינים של אפליקציות למפתחים
  • אפליקציות למפתחים
  • מאפיינים למפתחים
  • מפתחים
  • רשומות מפה עם מפתח/ערך של סביבה
  • מפות מפתח/ערך של סביבה
  • ייצוא
  • קטעי הוק (hooks) לזרימה
  • כינויים של מאגרי מפתחות
  • מאגרי מפתחות
  • שאילתות
  • תוכניות תמחור
  • הפניות
  • גרסאות של תהליכי עבודה משותפים
  • תהליכי עבודה משותפים
  • שרתי היעד
  • סשנים של יומן מעקב (ניפוי באגים)
Application Integration
  • הגדרות אימות
  • הפעלות
  • גרסאות השילוב
  • שילובים
  • מיקומים
  • השעיות
Apigee API Hub
  • ממשקי API
  • פעולות API
  • הגדרות
  • פריסות
  • מפרטים
  • גרסאות
שירות Backup and DR
  • כספות גיבוי
BigQuery
  • מערכי נתונים
  • מודלים
  • תרחישים
  • Tables
BigQuery Reservation API
  • משימות
  • הזמנות ב-BI
  • התחייבויות לקיבולת
  • מיקומים
  • הזמנות
Bigtable
  • אשכולות
  • מופעים
  • Tables
Binary Authorization
  • גורמים מאמתים
  • הגדרות של אימות רציף
  • מדיניות
Cloud Deploy
  • הפעלת אוטומציה
  • אוטומציות
  • סוגים של יעדים בהתאמה אישית
  • צינורות עיבוד נתונים לפריסה
  • הרצות של משימות
  • גרסאות
  • השקות
  • יעדים
Cloud Key Management Service
  • מפתחות הצפנה
  • גרסאות של מפתחות הצפנה
  • אוספי מפתחות
Cloud Logging
  • קטגוריות ביומן
  • תצוגות ביומן
Cloud NGFW
  • קבוצות של כתובות
Cloud SQL
  • הרצות גיבויים
  • מופעים
Cloud Storage
  • קטגוריות
  • תיקיות מנוהלות
  • Objects
Compute Engine
  • שירותים לקצה העורפי (גלובלי ואזורי)
  • חומות אש
  • כללי העברה (גלובלי ואזורי)
  • תמונות
  • תבניות של מכונה
  • מופעים
  • דיסקים לאחסון מתמיד (persistent disks) (אזורי ושל תחום מוגדר)
  • snapshots
  • שרתי proxy של HTTP(S) ביעד (גלובליים ואזוריים)
  • שרתי proxy של SSL ביעד
  • שרתי proxy של TCP ביעד
Google Kubernetes Engine
  • אשכולות
Firestore
  • מסדי נתונים
Dataform
  • תוצאות ההידור
  • מיקומים
  • הגדרות מוצר
  • מאגרי נתונים
  • הגדרות של תהליכי עבודה
  • הפעלות של תהליכי עבודה
  • סביבות עבודה
Integration Connectors
  • חיבורים
  • מטא-נתונים של סכימת החיבור
  • קבצים מצורפים בנקודות קצה
  • הרשמות לאירועים
  • אזורים מנוהלים
שירות מנוהל של Google Cloud ל-Apache Kafka
  • אשכולות
  • קבוצות צרכנים
  • תפעול
  • נושאים
Parameter Manager
  • גרסאות פרמטרים
  • פרמטרים
Pub/Sub Lite
  • מיקומים
  • מינויים
  • נושאים
Network Security Integration
  • יירוט של קבוצות פריסה
  • חסימת פריסות
  • יירוט של קבוצות נקודות קצה
  • יירוט שיוכים של קבוצות נקודות קצה
  • קבוצות פריסה של שיקוף
  • שיקוף פריסות
  • קבוצות של נקודות קצה לשיקוף
  • שיקוף של שיוכי קבוצות של נקודות קצה
Secret Manager
  • גרסאות של סודות
  • סודות
Spanner
  • גיבויים
  • מסדי נתונים
  • מכונות

תגי משאבים

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

כל תג מורכב ממפתח ומערך. יש כמה סוגים של מזהים לכל מפתח וערך:

  • מזהה קבוע שהוא מזהה ייחודי בכל העולם ולא ניתן לעשות בו שימוש חוזר. לדוגמה, tagKeys/123456789012 יכול להיות המזהה הקבוע של מפתח התג ו-tagValues/567890123456 של ערך התג.
  • שם מקוצר. השם המקוצר של כל מפתח צריך להיות ייחודי בפרויקט או בארגון שבו המפתח מוגדר, והשם המקוצר של כל ערך צריך להיות ייחודי למפתח המשויך אליו. לדוגמה, env יכול להיות השם המקוצר של מפתח התג, ו-prod של ערך התג.
  • שם ממרחב שמות: צירוף של מספר הארגון או מזהה הפרויקט והשם המקוצר של מפתח התג. לדוגמה, 123456789012/env יכול להיות השם ממרחב השמות של מפתח התג שנוצר לארגון. איך מוצאים את מזהה משאב הארגון לדוגמה, myproject/env יכול להיות השם ממרחב השמות של מפתח התג שנוצר לפרויקט. איך מוצאים את מזהה הפרויקט

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

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

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

אפשר להשתמש בתנאים מבוססי-תגים במקומות הבאים:

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

אפשר להשתמש בפונקציות הבאות כדי להגדיר תנאים לפי תגים:

פונקציה תיאור
resource.hasTagKey(
  keyName: string
)
  bool

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

פרמטר
keyName: השם ממרחב השמות של מפתח התג, עם המזהה המספרי של הארגון והקו הנטוי קדימה כתחילית. לדוגמה, 123456789012/env.
דוגמה

הפונקציה מחזירה את הערך true אם המשאב לבקשה מכיל תג עם המפתח env:

resource.hasTagKey('123456789012/env')
resource.hasTagKeyId(
  keyId: string
)
  bool

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

פרמטר
keyId: המזהה הקבוע של מפתח התג. לדוגמה, tagKeys/123456789012.
דוגמה

הפונקציה מחזירה את הערך true אם המשאב לבקשה מכיל תג עם המפתח tagKeys/123456789012:

resource.hasTagKeyId('tagKeys/123456789012')
resource.matchTag(
  keyName: string,
  valueShortName: string
)
  bool

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

פרמטרים
  • keyName: השם ממרחב השמות של מפתח התג, עם המזהה המספרי של הארגון וקו נטוי קדימה כתחילית. לדוגמה: 123456789012/env.
  • valueShortName: השם המקוצר של ערך התג. לדוגמה: prod.
דוגמה

הפונקציה מחזירה את הערך true אם משאב הבקשה מכיל תג עם המפתח 123456789012/env ועם הערך prod:

resource.matchTag('123456789012/env', 'prod')
resource.matchTagId(
  keyId: string,
  valueId: string
)
  bool

הפונקציה בודקת אם למשאב הבקשה יש תג עם המפתח והערך שצוינו. אפשר לחפש את המפתח והערך באמצעות המזהים הקבועים שלהם. כדי לחפש מפתח תג באמצעות השם שלו ממרחב השמות ואת הערך באמצעות השם המקוצרשלו צריך להשתמש בפונקציה resource.matchTag().

פרמטרים
  • keyId: המזהה הקבוע של מפתח התג. לדוגמה, tagKeys/123456789012.
  • valueId: המזהה הקבוע של ערך התג. לדוגמה, tagValues/567890123456.
דוגמה

הפונקציה מחזירה את הערך true אם המשאב של הבקשה מכיל תג עם המפתח tagKeys/123456789012 ועם הערך tagValues/567890123456:

resource.matchTagId('tagKeys/123456789012', 'tagValues/567890123456')

מאפיינים עיקריים

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

אפשר להשתמש במאפייני חשבונות משתמשים בהקשר של מדיניות לקביעת גבול הגישה לחשבונות משתמשים (PAB).

מאפיין principal.type

המאפיין principal.type מאפשר להגדיר תנאי לפי סוג החשבון הראשי ששולח את הבקשה. לדוגמה, אפשר להוסיף תנאי לקישור מדיניות של חשבון משתמש למדיניות של גבולות גישה כדי לוודא שהמדיניות נאכפת רק בחשבונות שירות.

אפשר להשתמש במאפייני חשבונות משתמשים בהקשר של מדיניות לקביעת גבול הגישה לחשבונות משתמשים (PAB).

משתנה של מאפיין principal.type
סוג מאפיין

string

אופרטורים נתמכים , , in
סוגים נתמכים של חשבונות משתמשים
חשבונות Google
iam.googleapis.com/WorkspaceIdentity
זהויות במאגר זהויות של כוח עבודה
iam.googleapis.com/WorkforcePoolIdentity
זהויות במאגר זהויות של עומסי עבודה
iam.googleapis.com/WorkloadPoolIdentity
חשבונות שירות
iam.googleapis.com/ServiceAccount
דוגמאות

הערך שמתקבל הוא true אם החשבון הראשי בבקשה הוא חשבון שירות:

principal.type == "iam.googleapis.com/ServiceAccount"
        

הערך שמתקבל הוא true אם החשבון הראשי בבקשה הוא חשבון ב-Google Workspace או במאגר זהויות של כוח עבודה:

principal.type in ["iam.googleapis.com/WorkspaceIdentity", "iam.googleapis.com/WorkforcePoolIdentity"]
        

מאפיין principal.subject

בעזרת המאפיין principal.subject אפשר להגדיר תנאי לפי הגורם המבצע (principal) ששולח את הבקשה. לדוגמה, אפשר להוסיף תנאי לקישור מדיניות של מדיניות גבולות גישה לחשבון משתמש כדי לוודא שהמדיניות נאכפת רק לגבי חשבונות משתמשים שכתובות האימייל שלהם מסתיימות ב-@example.com.

אם משתמשים במאפיין principal.subject בתנאי, מומלץ להשתמש גם במאפיין principal.type כדי לקבוע לאילו סוגים של ישויות התנאי חל. הסיבה לכך היא שמזהי ישויות מורשות לא בהכרח ייחודיים בין סוגי ישויות מורשות. לדוגמה, המזהה example-user@example.com יכול לזהות חשבון Google או משתמש במאגר זהויות של כוח עבודה.

אם משתמשים במאפיין principal.type בנוסף למאפיין principal.subject, אפשר לוודא שהתנאי יתאים רק לישויות עם הסוג הרצוי. לדוגמה, הביטוי הבא תואם לחשבונות Google שכתובות האימייל שלהם מסתיימות ב-@example.com:

principal.type == 'iam.googleapis.com/WorkspaceIdentity' &&
principal.subject.endsWith('@example.com')

אפשר להשתמש במאפייני חשבונות משתמשים בהקשר של מדיניות לקביעת גבול הגישה לחשבונות משתמשים (PAB).

משתנה של מאפיין principal.subject
סוג מאפיין

string

אופרטורים נתמכים

, , in, startsWith(), endsWith()

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

הפונקציה מחזירה את הערך true אם שם המשתמש הראשי בבקשה מסתיים ב-@example.com:

principal.subject.endsWith("@example.com")
        

הפונקציה מחזירה את הערך true אם הגורם המרכזי בבקשה הוא example-service-account@example-project.iam.gserviceaccount.com:

principal.subject == "example-service-account@example-project.iam.gserviceaccount.com"
        

מאפייני הבקשות

מאפייני בקשה מאפשרים ליצור תנאים שמעריכים פרטים בנוגע לבקשה, כמו רמת הגישה, התאריך והשעה, כתובת ה-IP של היעד והיציאה (למנהור TCP של IAP) או מארח/נתיב של כתובת אתר צפויה (ל-IAP ול-Cloud Run).

מאפיין רמות גישה

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

המאפיין נגזר ממאפיינים של הבקשה, כמו כתובת ה-IP של המקור, מאפייני המכשיר והשעה ביום. למשל, ייתכן שרמת גישה בשם fullyTrusted דורשת שהמכשיר שממנו נשלחה הבקשה יהיה בבעלות החברה ושתהיה לו נעילת מסך. רמת הגישה של onNetwork יכולה לדרוש שהמכשיר שממנו נשלחה הבקשה יגיע מטווח מסוים של כתובות IP. למידע נוסף על רמות גישה, אפשר לעיין במסמכים בנושא Access Context Manager.

מאפיין רמות גישה זמין רק כשמשתמשים בשרת proxy לאימות זהויות (IAP) כדי לגשת למופע של מנהרה, או כדי לגשת לאפליקציית אינטרנט שפועלת בשירותים לקצה העורפי של App Engine או Compute Engine. באופן ספציפי יותר, מאפיין רמות הגישה זמין רק לבקשות שבודקות אחת מההרשאות הבאות:

  • iap.tunnelInstances.accessViaIAP
  • iap.webServiceVersions.accessViaIAP

אפשר להשתמש במאפיין רמות הגישה כשמקצים באופן מותנה את התפקידים הבאים שהוגדרו מראש:

  • משתמש מנהרה באבטחת IAP (roles/iap.tunnelResourceAccessor)

    מכיל הרשאה יחידה, iap.tunnelInstances.accessViaIAP.

  • משתמש של אפליקציית אינטרנט באבטחת IAP (roles/iap.httpsResourceAccessor)

    מכיל הרשאה יחידה, iap.webServiceVersions.accessViaIAP.

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

מאפיין request.auth.access_levels

משתנה של מאפיין request.auth.access_levels
סוג מאפיין <string>list
אופרטורים נתמכים in
פרטים

כדי לבדוק אם לבקשה יש רמת גישה ספציפית, השתמשו באופרטור in:

ACCESS_LEVEL_FULL_NAME in request.auth.access_levels

השם המלא של רמת גישה מופיע בפורמט הבא:

accessPolicies/POLICY_NUMBER/accessLevels/ACCESS_LEVEL
דוגמה

הפונקציה מחזירה את הערך true אם הבקשה נמצאת ברמת הגישה CorpNet:

"accessPolicies/199923665455/accessLevels/CorpNet"
    in request.auth.access_levels
סוגי המשאבים שנתמכים המאפיין זמין לבקשות שמשתמשות בשרת proxy לאימות זהויות (IAP) כדי לגשת למופע של מנהרה, לקבוצת יעד של מנהרה, לאפליקציית אינטרנט שפועלת על Google Cloud איזון עומסים או לאפליקציית אינטרנט שפועלת על App Engine.

מאפייני API

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

לדוגמה, כשמשתמשים ב-Cloud Storage כדי ליצור רשימת אובייקטים בקטגוריה, אפשר להשתמש בפרמטר prefix בבקשה כדי לכלול רק אובייקטים שהשמות שלהם מתחילים בתחילית ספציפית. אם משתמשים בגבולות הגישה של פרטי הכניסה כדי לצמצם את ההיקף של פרטי כניסה לטווח קצר, אפשר ליצור גבול גישה של פרטי הכניסה. שמגביל את ההרשאות לרישום אובייקטים על ידי בדיקת מאפיין ה-API storage.googleapis.com/objectListPrefix. מאפיין ה-API הזה מכיל את הערך של הפרמטר prefix מהבקשה.

בדפים הבאים מופיעות דוגמאות למקרים שבהם כדאי להשתמש במאפייני API בתנאי:

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

פונקציות למאפייני API

אפשר להשתמש בפונקציה הבאה כדי לעבוד עם מאפייני API:

פונקציה תיאור
api.getAttribute(
  attributeName: string,
  defaultValue: V<T>
)
  V<T>

הפונקציה מקבלת את מאפיין ה-API המבוקש.

פרמטרים
  • attributeName: מאפיין ה-API שמקבלים. הערכים שנתמכים מופיעים בחלק מאפייני API של Cloud Storage ובחלק מאפייני API של IAM שבדף הזה.
  • defaultValue: ערך ברירת המחדל (V) שמשתמשים בו אם מאפיין ה-API לא זמין. הערך V הוא מסוג T, ו-T זהה לסוג הערך של מאפיין ה-API. לדוגמה, אם הערך של מאפיין ה-API הוא מחרוזת, אפשר להשתמש במחרוזת ריקה או במחרוזת placeholder, כמו undefined.

דוגמה

הפונקציה מחזירה את אחת מהאפשרויות הבאות:

  • לבקשות להענקת תפקיד או לביטול תפקיד, הפונקציה מחזירה רשימה של תפקידים שהבקשה שינתה.
  • לכל סוגי הבקשות האחרים, הפונקציה מחזירה רשימה ריקה.
api.getAttribute("iam.googleapis.com/modifiedGrantsByRole", [])
hasOnly(
  items: list<T>
)
  bool

הפונקציה בודקת שרשימה מכילה רק את הפריטים המורשים, או קבוצת משנה של הפריטים האלה. אפשר לקרוא לפונקציה ברשימה שמוחזרת באמצעות api.getAttribute().

פרמטר
items: רשימה של פריטים מסוג T. כל פריט הוא ערך שמאפיין ה-API מורשה להכיל.
דוגמה

הפונקציה בודקת אם הבקשה תקצה או תבטל תפקידים אחרים מלבד עריכה ב-Pub/Sub (roles/pubsub.editor) או פרסום הודעות ב-Pub/Sub (roles/pubsub.publisher):

api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', [])
    .hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])

למטה מוצגת התוצאה של ערכי בקשות שונים:

תפקידים שהוקצו או בוטלו תוצאה
אין תפקידים

true

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

roles/pubsub.editor

true

התפקיד נמצא ברשימת ההיתרים.

roles/pubsub.editor
roles/pubsub.publisher

true

שני התפקידים נמצאים ברשימת ההיתרים

roles/billing.admin

false

התפקיד לא נמצא ברשימת ההיתרים.

roles/billing.admin
roles/pubsub.editor

false

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

מאפייני API של Cloud Storage

Cloud Storage מספק את מאפיין ה-API הבא.

משתנה של מאפיין storage.googleapis.com/objectListPrefix
סוג מאפיין string
פרטים

בבקשה לרישום אובייקטים בקטגוריה, המאפיין יכיל את הערך של הפרמטר prefix מהבקשה. אם הבקשה לא תכיל את הפרמטר prefix, המאפיין לא יוגדר.

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

שירותים שמזהים את המאפיין הזה Cloud Storage

מאפייני API של IAM

IAM מספק את מאפיין ה-API הבא:

משתנה של מאפיין iam.googleapis.com/modifiedGrantsByRole
סוג מאפיין list<string>
פרטים

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

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

סוגי המשאבים שמקבלים את המאפיין הזה

סוגי המשאבים הבאים מקבלים תנאים עם המאפיין modifiedGrantsByRole במדיניות ההרשאה שלהם:

  • פרויקטים
  • תיקיות
  • ארגונים
שירותים שמזהים את המאפיין הזה

השירותים הבאים מזהים את המאפיין modifiedGrantsByRole:

  • שער API
  • AutoML
  • Certificate Authority Service
  • פונקציות Cloud Run
  • Cloud Healthcare API
  • Cloud Key Management Service
  • Cloud Run
  • Cloud Runtime Configuration API
  • Cloud Storage
  • Compute Engine
  • Artifact Analysis
  • Dataproc
  • Earth Engine
  • שרתי גיימינג
  • ניהול זהויות והרשאות גישה
  • שרת proxy לאימות זהויות (IAP)
  • שירות מנוהל עבור Microsoft Active Directory
  • notebooks בניהול המשתמשים
  • מנהל המשאבים
  • Secret Manager
  • ניהול השירות

מאפיינים של Vertex AI Agent Engine API

‫Vertex AI Agent Engine מספק את מאפייני ה-API הבאים עבור שירותי ניהול ההקשר של Memory Bank ושל Session:

משתנה של מאפיין aiplatform.googleapis.com/memoryScope
סוג מאפיין map<string, string>
פרטים

בבקשה שכוללת גישה למשאבי Memory Bank או שינוי שלהם, המאפיין מכיל את הערך של השדה scope בזיכרון.

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

שירותים שמזהים את המאפיין הזה Vertex AI Agent Engine
משתנה של מאפיין aiplatform.googleapis.com/sessionUserId
סוג מאפיין string
פרטים

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

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

שירותים שמזהים את המאפיין הזה Vertex AI Agent Engine

מאפיין תאריך/שעה

המאפיין 'תאריך/שעה' משמש להגדרת גישה עם תאריך תפוגה, מתוזמנת או לזמן מוגבל Google Cloud למשאבים. אפשר להשתמש במאפייני תאריך ושעה בקישורים של תפקידים במדיניות הרשאות.

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

המאפיין request.time מכיל את חותמת הזמן של הבקשה. אפשר להשוות את חותמת הזמן הזו לחותמת זמן אחרת, או לטווח זמן מסוים.

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

יצירה, השוואה ושינוי של חותמות זמן וטווחי זמן

פונקציה או אופרטור תיאור
date(
  value: string
)
  Timestamp

הפונקציה ממירה תאריך מ-string ל-Timestamp.

פרמטר
value: תאריך בפורמט YYYY-MM-DD, שבו YYYY הוא השנה, MM הוא שתי הספרות של החודש ו-DD הוא שתי הספרות של היום. הערך בשדה Timestamp שמתקבל מכיל את התאריך שצוין ואת השעה (00:00:00.000 UTC).
דוגמה

הפונקציה יוצרת Timestamp שמייצגת את התאריך 2023-02-01 ואת השעה 00:00:00.000 UTC:

date("2023-02-01")
duration(
  value: string
)
  Duration

הפונקציה ממירה את משך הזמן מ-string ל-Duration.

פרמטר
value: Duration בשניות, ואחריהן s.
דוגמאות

הפונקציה יוצרת טווח זמן שמייצג דקה וחצי:

duration("90s")

הפונקציה יוצרת טווח זמן שמייצג 30 ימים:

duration("2592000s")
timestamp(
  value: string
)
  Timestamp

הפונקציה ממירה string ל-Timestamp.

פרמטר

value: חותמת זמן לפי שעון UTC שתואמת ל- RFC 3339.

דוגמה

הפונקציה יוצרת חותמת זמן שמייצגת את ה-12 באפריל 2023, בשעה 23:20:50.52 לפי שעון UTC:

timestamp("2023-04-12T23:20:50.52Z")
, , ,

האופרטור משווה בין שני ערכים של Timestamp.

דוגמאות

הפונקציה מחזירה את הערך true אם זמן הבקשה הוא לפני 12 באפריל 2022, בשעה 00:00:00 UTC:

request.time < timestamp("2022-04-12T00:00:00.00Z")

הפונקציה מחזירה את הערך true אם זמן הבקשה הוא לפני או שווה ל- 12 באפריל 2022, בשעה 00:00:00 UTC:

request.time <= timestamp("2022-04-12T00:00:00.00Z")

הפונקציה מחזירה את הערך true אם זמן הבקשה הוא אחרי 12 באפריל 2022, בשעה 00:00:00 UTC:

request.time > timestamp("2022-04-12T00:00:00.00Z")

הפונקציה מחזירה את הערך true אם זמן הבקשה הוא אחרי או שווה ל- 12 באפריל 2022, בשעה 00:00:00 UTC:

request.time >= timestamp("2022-04-12T00:00:00.00Z")
  • timestamp + duration   Timestamp
  • timestamp - duration   Timestamp

הפונקציה מחברת או מחסרת Duration מ-Timestamp.

דוגמאות

הפונקציה מחזירה את Timestamp שנמצאת 30 דקות אחרי 14:30:00 UTC ב-12 באפריל 2024:

timestamp("2024-04-12T14:30:00.00Z") + duration("1800s")

הפונקציה מחזירה את Timestamp שנמצאת 60 יום לפני 14:30:00 UTC ב-12 באפריל 2024:

timestamp("2024-04-12T14:30:00.00Z") - duration("5184000s")

חילוץ מידע מחותמת זמן

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

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

כדי לציין אזור זמן אחר, מכניסים את אזור הזמן לפונקציה. משתמשים בשם או בסטייה משעון UTC ממסד הנתונים של אזור הזמן של IETF. לדוגמה, אפשר להשתמש ב-Europe/Berlin או ב-+01:00 לציון שעון מרכז אירופה (CET).

הפונקציות והאופרטורים שנתמכים תיאור
Timestamp.getDate(
  timeZone: string
)
  int

הפונקציה מקבלת את היום בחודש מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אחת. היום הראשון בחודש הוא 1.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

הפונקציה מחזירה את הערך true אם הבקשה נשלחת אחרי היום ה-15 בחודש, לפי שעון UTC:

request.time.getDate() > 15
Timestamp.getDayOfMonth(
  timeZone: string
)
  int

הפונקציה מקבלת את היום בחודש מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אפס. היום הראשון בחודש הוא 0.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

הפונקציה מחזירה את הערך true אם הבקשה נשלחת אחרי היום ה-15 בחודש, לפי שעון UTC:

request.time.getDayOfMonth() > 14
Timestamp.getDayOfWeek(
  timeZone: string
)
  int

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

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

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

request.time.getDayOfWeek("Europe/Berlin") > 0 &&
    request.time.getDayOfWeek("Europe/Berlin") < 6
Timestamp.getDayOfYear(
  timeZone: string
)
  int

הפונקציה מקבלת את היום בשנה מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אפס. היום הראשון בשנה הוא 0.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

הפונקציה מחזירה את הערך true אם הבקשה נשלחת במהלך 5 הימים הראשונים של השנה במאונטיין ויו, קליפורניה:

request.time.getDayOfYear("America/Los_Angeles") >= 0 &&
    request.time.getDayOfYear("America/Los_Angeles") < 5
Timestamp.getFullYear(
  timeZone: string
)
  int

הפונקציה מקבלת את השנה מה-Timestamp.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

הפונקציה מחזירה את הערך true אם הבקשה נשלחת במהלך שנת 2023 במאונטיין ויו, קליפורניה:

request.time.getFullYear("America/Los_Angeles") == 2023

הפונקציה מחזירה את הערך true אם הבקשה נשלחת במהלך שנת 2022 לפי שעון UTC:

request.time.getFullYear() == 2022
Timestamp.getHours(
  timeZone: string
)
  int

הפונקציה מקבלת את השעה ביום מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אפס. הערכים נעים בין 0 ל-23.

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

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

הפונקציה מחזירה את הערך true אם הבקשה נשלחת בין השעות 09:00 ל-17:00 באמצע השבוע בברלין, גרמניה:

request.time.getDayOfWeek("Europe/Berlin") >= 1 &&
    request.time.getDayOfWeek("Europe/Berlin") <= 5 &&
    request.time.getHours("Europe/Berlin") >= 9 &&
    request.time.getHours("Europe/Berlin") <= 17
Timestamp.getMilliseconds(
  timeZone: string
)
  int

הפונקציה מקבלת את מספר אלפיות השנייה מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אפס. הערכים נעים בין 0 ל-999.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
Timestamp.getMinutes(
  timeZone: string
)
  int

הפונקציה מקבלת את מספר הדקות אחרי השעה מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אפס. הערכים נעים בין 0 ל-59.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

הפונקציה מחזירה את הערך true אם הבקשה נשלחת בשעה 09:30 או מאוחר יותר בברלין, גרמניה:

request.time.getHours("Europe/Berlin") >= 9 &&
    request.time.getMinutes("Europe/Berlin") >= 30
Timestamp.getMonth(
  timeZone: string
)
  int

הפונקציה מקבלת את החודש בשנה מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אפס. הערכים נעים בין 0 ל-11.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
דוגמה

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

request.time.getMonth("America/Los_Angeles") == 3
Timestamp.getSeconds(
  timeZone: string
)
  int

הפונקציה מקבלת את מספר השניות מה-Timestamp. הערך מתקבל מאינדקס שמתחיל בספרה אפס. הערכים נעים בין 0 ל-59.

פרמטר
timeZone: אזור הזמן שעבורו תחושב התוצאה. ברירת המחדל היא UTC.
, , ,

האופרטור משווה את הפלט של שתי פונקציות בטבלה הזו.

מאפייני IP/יציאה של יעד

מאפיין ה-IP/יציאה של יעד מאפשר למשתמשים לנהל את הגישה לפי כתובת ה-IP הפנימית של היעד או היציאה של הבקשה. אפשר להשתמש במאפיינים של יעד IP/יציאה בקישורים של תפקידים במדיניות הרשאה.

לדוגמה, יכול להיות שמכונת VM של Compute Engine תקצה את כתובת ה-IP החיצונית ואת היציאה 132.168.42.21:3001 לכתובת ה-IP הפנימית וליציאה 10.0.0.1:2300 בשביל שימוש כללי. לעומת זאת, יכול להיות שכתובת ה-IP הפנימית והיציאה 10.0.0.1:22 יהיו זמינות באופן פנימי לשימוש מנהלי בלבד. אפשר להשתמש במאפייני ה-IP או היציאה של היעד כדי להקצות רמות גישה שונות לפי כתובת ה-IP הפנימית והיציאה.

מידע נוסף על העברת TCP מופיע במאמר משאבי עזרה בנושא שרת proxy לאימות זהויות (IAP).

מאפיין destination.ip

משתנה של מאפיין destination.ip
סוג מאפיין string
אופרטורים נתמכים ,
פרטים

המשתנה destination.ip מזהה כתובת IP פנימית בפורמט IPv4.

דוגמאות

הפונקציה מחזירה את הערך true אם כתובת ה-IP של היעד היא 10.0.0.1:

destination.ip == "10.0.0.1"

הפונקציה מחזירה את הערך true, אלא אם כתובת ה-IP של היעד היא 10.0.0.1:

destination.ip != "10.0.0.1"
סוגי המשאבים שנתמכים המאפיין זמין לבקשות שמשתמשות בשרת proxy לאימות זהויות (IAP) כדי לגשת למופע מנהרה

מאפיין destination.port

משתנה של מאפיין destination.port
סוג מאפיין int
אופרטורים נתמכים , , , , ,
פרטים

המשתנה destination.port מזהה מספר יציאת TCP פנימי.

דוגמאות

הפונקציה מחזירה את הערך true אם יציאת היעד היא 21:

destination.port == 21

הפונקציה מחזירה את הערך true אם יציאת היעד קטנה מ-3001:

destination.port < 3001
סוגי המשאבים שנתמכים המאפיין זמין לבקשות שמשתמשות בשרת proxy לאימות זהויות (IAP) כדי לגשת למופע מנהרה

מאפיינים של כלל העברה

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

ב-Cloud Load Balancing, המאפיינים של כללי ההעברה לא משפיעים על היכולת ליצור רכיבים אחרים של מאזן עומסים (LB) Google Cloud , כמו שירותים לקצה העורפי, שרתי proxy ביעד, בדיקות תקינות ומיפוי של כתובות URL.

פונקציות נתמכות

פונקציה תיאור
compute.isForwardingRuleCreationOperation()   bool

הפונקציה בודקת אם הבקשה יוצרת כלל העברה.

דוגמה
אפשר לראות את הדוגמה של compute.matchLoadBalancingSchemes().
compute.matchLoadBalancingSchemes(
  schemes: list<string>
)
  bool

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

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

הפונקציה מחזירה את אחת מהאפשרויות הבאות:

  • אם הבקשה לא יוצרת כלל העברה, הפונקציה מחזירה את הערך true.
  • אם הבקשה כן יוצרת כלל העברה, הפונקציה מחזירה את הערך true רק אם כלל ההעברה משפיע על סכמת איזון עומסים של INTERNAL, על INTERNAL_MANAGED או על INTERNAL_SELF_MANAGED.
!compute.isForwardingRuleCreationOperation() || (
  compute.isForwardingRuleCreationOperation() &&
  compute.matchLoadBalancingSchemes([
    'INTERNAL', 'INTERNAL_MANAGED', 'INTERNAL_SELF_MANAGED'
  ])
)

סוגי המשאבים שנתמכים

המאפיין הזה זמין לבקשות ליצור את סוגי המשאבים הבאים:

שירות סוגי המשאבים
Cloud Load Balancing כללי העברה
Cloud VPN כללי העברה (גלובלי ואזורי)
Compute Engine כללי העברה (להעברת פרוטוקול)
Cloud Service Mesh1 כללי העברה

1 עושה שימוש במאפייני המשאבים עבור Compute Engine.

מאפיין מארח/נתיב של כתובת URL

בעזרת המאפיין מארח/נתיב של כתובת URL, משתמשים יכולים לנהל את הגישה לפי נתיב כתובת ה-URL והמארח של בקשה. לדוגמה, תנאי יכול לציין ש-https://example.com היא האפליקציה הראשית שאליה יכול לגשת דומיין כללי של משתמשים, אבל https://hr.example.com/admin ישמש לגישה לדף מסוים באפליקציה בתוך חלק שרק לאדמינים של משאבי אנוש יש גישה אליו.

אפשר להשתמש במאפיין מארח/נתיב כתובת ה-URL בקישורי תפקידים במדיניות הרשאה.

מאפיין request.path

משתנה של מאפיין request.path
סוג מאפיין string
הפונקציות והאופרטורים שנתמכים , startsWith(), endsWith()
פרטים לא מומלץ להשתמש באופרטור עם המאפיין הזה. במקום לבדוק אי-שוויון, כמו ב-request.path != "/admin", כדאי לבדוק את תחילית המאפיין, כמו ב-!request.path.startsWith("/admin"). באמצעות בדיקת התחילית, אפשר להגן על נתיבי כתובות ה-URL בתוך ההיררכיה של /admin, כמו ב-/admin/payroll/.
דוגמאות

האופרטור מחזיר את הערך true אם נתיב הבקשה שווה לנתיב כתובת ה-URL שצוין:

request.path == "/admin"
request.path == "/admin/payroll"

הפונקציה מחזירה את הערך true אם נתיב הבקשה מתחיל בנתיב כתובת ה-URL שצוין:

request.path.startsWith("/admin")

הפונקציה מחזירה את הערך true אם נתיב הבקשה מסתיים בנתיב כתובת ה-URL שצוין:

request.path.endsWith("/payroll.js")
סוגי המשאבים שנתמכים
  • גרסאות שירות לאפליקציות על שרת proxy לאימות זהויות (App Engine): המאפיין זמין לבקשות שמשתמשות בשרת proxy לאימות זהויות (IAP) כדי לגשת לאפליקציית אינטרנט שפועלת על App Engine או על Compute Engine
  • שירותי Cloud Run

מאפיין request.host

משתנה של מאפיין request.host
סוג מאפיין string
הפונקציות והאופרטורים שנתמכים , endsWith()
פרטים לא מומלץ להשתמש בפונקציה .startsWith() או באופרטור עם המאפיין הזה. יכול להיות שהפונקציות והאופרטורים יציגו תוצאות בלתי צפויות.
דוגמאות

הפונקציה מחזירה את הערך true אם שם המארח שווה לערך שצוין:

request.host == "www.example.com"
request.host == "hr.example.com"

הפונקציה מחזירה את הערך true אם שם המארח מסתיים בערך שצוין:

request.host.endsWith("example.com")
סוגי המשאבים שנתמכים
  • גרסאות שירות לאפליקציות על שרת proxy לאימות זהויות (App Engine): המאפיין זמין לבקשות שמשתמשות בשרת proxy לאימות זהויות (IAP) כדי לגשת לגרסה של שירות לאפליקציות.
  • שירותי Cloud Run

חילוץ ערכים ממאפיינים

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

כדי להשתמש בפונקציה extract(), צריך לספק תבנית חילוץ שמציינת את החלק של המאפיין לחילוץ. לדוגמה, אם רוצים לחלץ מזהה פרויקט משם המשאב של מכונת VM של Compute Engine, אפשר להשתמש בתבנית projects/{project}/.

תבנית חילוץ מכילה את החלקים הבאים:

  • מזהה, מוקף בסוגריים מסולסלים, שמזהה את מחרוזת המשנה שצריך לחלץ.

    כדאי לבחור מזהה קצר ומשמעותי כדי להבהיר איזה ערך רוצים לחלץ. אפשר להשתמש באותיות רישיות ובאותיות קטנות מ-A עד Z, ספרות וקווים תחתונים (_).

    בתבנית projects/{project}/, המזהה הוא project.

  • אופציונלי: תחילית, שצריכה להופיע לפני מחרוזת המשנה לחילוץ.

    בתבנית projects/{project}/, התחילית היא projects/.

  • אופציונלי: סיומת, שצריכה להופיע אחרי מחרוזת המשנה לחילוץ.

    בתבנית projects/{project}/, הסיומת היא /.

הפונקציה extract() מחלצת חלקים שונים מהמאפיין בהתאם למבנה של תבנית החילוץ, שיכולה לכלול תחילית, סיומת או את שניהם:

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

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

בדוגמאות הבאות אפשר לראות את הפלט מכמה תבניות חילוץ שונות. הדוגמאות האלה מתייחסות לשם משאב של אובייקט ב-Cloud Storage, projects/_/buckets/acme-orders-aaa/objects/data_lake/orders/order_date=2019-11-03/aef87g87ae0876:

תבנית חילוץ פלט
/order_date={date}/ 2019-11-03
buckets/{name}/ acme-orders-aaa
/orders/{empty}order_date string ריק
{start}/objects/data_lake projects/_/buckets/acme-orders-aaa
orders/{end} order_date=2019-11-03/aef87g87ae0876
{all} projects/_/buckets/acme-orders-aaa/objects/data_lake/orders/order_date=2019-11-03/aef87g87ae0876
/orders/{none}/order_date= string ריק
/orders/order_date=2019-11-03/{id}/data_lake string ריק

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