משאב: AuthorizationPolicy
AuthorizationPolicy הוא משאב שמציין איך שרת צריך לאשר חיבורים נכנסים. המשאב הזה כשלעצמו לא משנה את ההגדרה, אלא אם הוא מצורף למשאב של בורר הגדרות של נקודת קצה או של שרת proxy של יעד HTTPS.
| ייצוג JSON |
|---|
{ "name": string, "description": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "action": enum ( |
| שדות | |
|---|---|
name |
חובה. השם של משאב AuthorizationPolicy. הוא תואם לתבנית |
description |
זה שינוי אופציונלי. תיאור של המשאב בטקסט חופשי. |
createTime |
פלט בלבד. חותמת הזמן שבה נוצר המשאב. הפורמט הוא RFC 3339, והפלט שנוצר תמיד יהיה בפורמט Z-normalized עם 0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: |
updateTime |
פלט בלבד. חותמת הזמן שבה המשאב עודכן. הפורמט הוא RFC 3339, והפלט שנוצר תמיד יהיה בפורמט Z-normalized עם 0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: |
labels |
זה שינוי אופציונלי. קבוצה של תגי לייבל שמשויכים למשאב AuthorizationPolicy. אובייקט שמכיל רשימה של |
action |
חובה. הפעולה שצריך לבצע כשהמערכת מוצאת התאמה לכלל. הערכים האפשריים הם ALLOW או DENY. |
rules[] |
זה שינוי אופציונלי. רשימת הכללים להתאמה. חשוב לזכור שלפחות אחד מהכללים צריך להתאים כדי שהפעולה שצוינה בשדה 'פעולה' תתבצע. כלל נחשב כהתאמה אם יש מקור ויעד תואמים. אם השדה הזה יישאר ריק, הפעולה שצוינה בשדה |
פעולה
ערכים אפשריים שמגדירים איזו פעולה לבצע.
| טיפוסים בני מנייה (enum) | |
|---|---|
ACTION_UNSPECIFIED |
ערך ברירת המחדל. |
ALLOW |
נותנים גישה. |
DENY |
דחיית הגישה. מומלץ להימנע מכללי דחייה, אלא אם משתמשים בהם כדי לספק חזרה למצב ברירת מחדל של 'דחייה של הכול'. |
כלל
מפרט הכללים.
| ייצוג JSON |
|---|
{ "sources": [ { object ( |
| שדות | |
|---|---|
sources[] |
זה שינוי אופציונלי. רשימת המאפיינים של מקור התנועה. כל המקורות צריכים להיות זהים. מקור נחשב להתאמה אם יש התאמה גם בין הגורמים המורשים וגם בין ה-ipBlocks. אם לא מגדירים את השדה הזה, הפעולה שצוינה בשדה 'פעולה' תבוצע בלי בדיקות כללים למקור. |
destinations[] |
זה שינוי אופציונלי. רשימת מאפיינים של יעד התנועה. כל יעדי ההגעה צריכים להיות זהים. יעד נחשב להתאמה אם בקשה תואמת לכל המארחים, היציאות, ה-methods והכותרות שצוינו. אם לא מוגדרת פעולה, הפעולה שצוינה בשדה 'פעולה' תתבצע בלי בדיקות כללים לגבי היעד. |
מקור
מפרט של מאפייני מקורות התנועה.
| ייצוג JSON |
|---|
{ "principals": [ string ], "ipBlocks": [ string ] } |
| שדות | |
|---|---|
principals[] |
זה שינוי אופציונלי. רשימה של זהויות בין רשתות שכנות שצריך להתאים להן הרשאות. צריך שתהיה התאמה לפחות לגורם אחד. כל עמית יכול להיות התאמה מדויקת, התאמה של קידומת (לדוגמה, namespace/*), התאמה של סיומת (לדוגמה, */service-account) או התאמה של נוכחות (*). הרשאה שמבוססת על שם העיקרון ללא אימות אישור (שמוגדר על ידי משאב ServerTlsPolicy) נחשבת לא מאובטחת. |
ipBlocks[] |
זה שינוי אופציונלי. רשימה של טווחי 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 ( |
| שדות | |
|---|---|
hosts[] |
חובה. רשימה של שמות מארחים שצריך להתאים. ההתאמה מתבצעת מול הכותרת ':authority' בבקשות HTTP. לפחות מארח אחד צריך להתאים. כל מארח יכול להיות בהתאמה מדויקת, בהתאמה לקידומת (לדוגמה, mydomain.*), בהתאמה לסיומת (לדוגמה, *.myorg.com) או בהתאמה לנוכחות (כלומר, כל מארח) '*'. |
ports[] |
חובה. רשימה של יציאות יעד להתאמה. צריכה להיות התאמה לפחות ליציאה אחת. |
paths[] |
זה שינוי אופציונלי. רשימה של נתיבי HTTP להתאמה. צריך להציג את ה-methods של gRPC כשם שמוגדר במלואו בפורמט /packageName.serviceName/methodName. לפחות נתיב אחד צריך להיות תואם. כל נתיב יכול להיות התאמה מדויקת, התאמה לתחילית (לדוגמה, /packageName.serviceName/*), התאמה לסיומת (לדוגמה, */video) או התאמה לנוכחות (כלומר, כל נתיב) '*'. |
methods[] |
זה שינוי אופציונלי. רשימה של שיטות HTTP להתאמה. לפחות שיטה אחת צריכה להתאים. אין להגדיר את הערך הזה לשירותי gRPC. |
httpHeaderMatch |
זה שינוי אופציונלי. התאמה לצמד מפתח/ערך בכותרת ה-HTTP. האפשרות הזו מספקת התאמה גמישה על סמך כותרות HTTP, לתרחישי שימוש מתקדמים. לפחות כותרת אחת צריכה להיות זהה. מומלץ להימנע משימוש בהתאמות של כותרות כדי לקבל החלטות לגבי הרשאות, אלא אם יש ערובה חזקה לכך שהבקשות מגיעות דרך לקוח או שרת proxy מהימנים. |
HttpHeaderMatch
מפרט של מאפייני התאמה של כותרת HTTP.
| ייצוג JSON |
|---|
{ "headerName": string, // Union field |
| שדות | |
|---|---|
headerName |
חובה. השם של כותרת ה-HTTP שצריך להתאים. כדי לבצע התאמה מול הרשות של בקשת ה-HTTP, משתמשים ב-headerMatch עם שם הכותרת ":authority". כדי להתאים את השיטה של בקשה, משתמשים ב-headerName :method. |
שדה איחוד הערך |
|
regexMatch |
חובה. הערך של הכותרת צריך להתאים לביטוי הרגולרי שצוין ב-regexMatch. למידע על דקדוק של ביטויים רגולריים, אפשר לעיין בכתובת: en.cppreference.com/w/cpp/regex/ecmascript כדי להתאים ליציאה שצוינה בבקשת ה-HTTP, צריך להשתמש ב-headerMatch עם headerName שמוגדר ל-Host וביטוי רגולרי שעומד בדרישות של מציין היציאה של כותרת ה-Host ב-RFC2616. |
Methods |
|
|---|---|
|
יוצרת AuthorizationPolicy חדש בפרויקט ובמיקום נתונים. |
|
מחיקת AuthorizationPolicy יחיד. |
|
קבלת פרטים של AuthorizationPolicy יחיד. |
|
השיטה מחזירה רשימה של AuthorizationPolicies בפרויקט ובמיקום נתונים. |
|
מעדכנת את הפרמטרים של AuthorizationPolicy יחיד. |