REST Resource: projects.locations.authorizationPolicies

משאב: AuthorizationPolicy

‫AuthorizationPolicy הוא משאב שמציין איך השרת צריך לאשר חיבורים נכנסים. המשאב הזה כשלעצמו לא משנה את ההגדרות, אלא אם הוא מצורף לשרת proxy ל-HTTPS או למשאב לבחירת נקודות קצה (endpoint config selector).

ייצוג ב-JSON
{
  "name": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "action": enum (Action),
  "rules": [
    {
      object (Rule)
    }
  ]
}
שדות
name

string

חובה. השם של המשאב AuthorizationPolicy. הוא תואם לתבנית projects/{project}/locations/{location}/authorizationPolicies/<authorizationPolicy>.

description

string

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

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".

labels

map (key: string, value: string)

זה שינוי אופציונלי. קבוצה של תגי תוויות שמשויכים למשאב AuthorizationPolicy.

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

action

enum (Action)

חובה. הפעולה שצריך לבצע כשנמצאת התאמה לכלל. הערכים האפשריים הם "ALLOW" או "DENY".

rules[]

object (Rule)

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

פעולה

ערכים אפשריים שמגדירים איזו פעולה לבצע.

טיפוסים בני מנייה (enum)
ACTION_UNSPECIFIED ערך ברירת המחדל.
ALLOW נותנים גישה.
DENY למנוע גישה. מומלץ להימנע מכללי דחייה, אלא אם משתמשים בהם כדי לספק ברירת מחדל של "דחיית הכול".

כלל

מפרט הכללים.

ייצוג ב-JSON
{
  "sources": [
    {
      object (Source)
    }
  ],
  "destinations": [
    {
      object (Destination)
    }
  ]
}
שדות
sources[]

object (Source)

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

destinations[]

object (Destination)

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

מקור

מפרט של מאפייני מקור התנועה.

ייצוג ב-JSON
{
  "principals": [
    string
  ],
  "ipBlocks": [
    string
  ]
}
שדות
principals[]

string

זה שינוי אופציונלי. רשימה של זהויות בין רשתות שכנות שצריך להתאים להרשאה. לפחות חשבון משתמש אחד צריך להתאים. כל עמית יכול להיות התאמה מדויקת, התאמה של קידומת (לדוגמה, "namespace/*‎"), התאמה של סיומת (לדוגמה, "*/service-account") או התאמה של נוכחות "*". הרשאה שמבוססת על שם המשתמש הראשי בלי אימות אישור (שמוגדר על ידי המשאב ServerTlsPolicy) נחשבת לא מאובטחת.

ipBlocks[]

string

זה שינוי אופציונלי. רשימה של טווחי CIDR להתאמה על סמך כתובת ה-IP של המקור. לפחות בלוק IP אחד צריך להתאים. יש תמיכה בכתובת IP אחת (למשל, "1.2.3.4") וב-CIDR (למשל, "1.2.3.0/24"). צריך להימנע מהרשאה שמבוססת על כתובת ה-IP של המקור בלבד. כתובות ה-IP של שרתי proxy או מאזני עומסים צריכות להיחשב כלא מהימנות.

יעד

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

ייצוג ב-JSON
{
  "hosts": [
    string
  ],
  "ports": [
    integer
  ],
  "paths": [
    string
  ],
  "methods": [
    string
  ],
  "httpHeaderMatch": {
    object (HttpHeaderMatch)
  }
}
שדות
hosts[]

string

חובה. רשימה של שמות מארחים להתאמה. התאמה לכותרת ":authority" בבקשות HTTP. צריך להתאים לפחות מארח אחד. כל מארח יכול להיות התאמה מדויקת, התאמה לתחילית (לדוגמה, "mydomain.*‎"), התאמה לסיומת (לדוגמה, "*.myorg.com") או התאמה לנוכחות (כלשהי) "*".

ports[]

integer (uint32 format)

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

paths[]

string

זה שינוי אופציונלי. רשימה של נתיבי HTTP להתאמה. שיטות gRPC חייבות להיות מוצגות כשם שמוגדר במלואו בפורמט "/packageName.serviceName/methodName". לפחות נתיב אחד צריך להתאים. כל נתיב יכול להיות התאמה מדויקת, התאמה לתחילית (לדוגמה, "‎/packageName.serviceName/*‎"), התאמה לסיומת (לדוגמה, "‎*/video") או התאמה לנוכחות (כלשהי) "*".

methods[]

string

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

httpHeaderMatch

object (HttpHeaderMatch)

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

HttpHeaderMatch

מפרט של מאפייני התאמה של כותרת HTTP.

ייצוג ב-JSON
{
  "headerName": string,

  // Union field type can be only one of the following:
  "regexMatch": string
  // End of list of possible types for union field type.
}
שדות
headerName

string

חובה. שם כותרת ה-HTTP שצריך להתאים. כדי להתאים לרשות של בקשת ה-HTTP, צריך להשתמש ב-headerMatch עם שם הכותרת ":authority". כדי להתאים את השיטה של הבקשה, משתמשים ב-headerName‏ ":method".

שדה של איחוד type.

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

regexMatch

string

חובה. הערך של הכותרת חייב להתאים לביטוי הרגולרי שצוין ב-regexMatch. לדקדוק של ביטויים רגולריים, אפשר לעיין בכתובת: en.cppreference.com/w/cpp/regex/ecmascript. כדי להתאים ליציאה שצוינה בבקשת ה-HTTP, צריך להשתמש ב-headerMatch עם headerName שמוגדר ל-Host ובביטוי רגולרי שעומד במפרט היציאה של כותרת המארח RFC2616.

Methods

create

יצירת AuthorizationPolicy חדש בפרויקט ובמיקום נתונים.

delete

מחיקה של AuthorizationPolicy יחיד.

get

קבלת פרטים של AuthorizationPolicy יחיד.

list

הצגת רשימה של AuthorizationPolicies בפרויקט ובמיקום נתונים.

patch

עדכון הפרמטרים של AuthorizationPolicy יחיד.