משאב: 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 עם 0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: |
updateTime |
פלט בלבד. חותמת הזמן של מועד העדכון של המשאב. הפורמט הוא RFC 3339, והפלט שנוצר תמיד יהיה בפורמט Z עם 0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: |
labels |
זה שינוי אופציונלי. קבוצה של תגי לייבל שמשויכים למשאב AuthorizationPolicy. אובייקט שמכיל רשימה של |
action |
חובה. הפעולה שצריך לבצע כשהמערכת מוצאת התאמה לכלל. הערכים האפשריים הם ALLOW או DENY. |
rules[] |
זה שינוי אופציונלי. רשימת הכללים להתאמה. חשוב לזכור שלפחות אחד מהכללים צריך להתאים כדי שהפעולה שצוינה בשדה 'פעולה' תתבצע. כלל נחשב כהתאמה אם יש מקור ויעד תואמים. אם השדה הזה יישאר ריק, הפעולה שצוינה בשדה |
פעולה
ערכים אפשריים שמגדירים איזו פעולה לבצע.
| טיפוסים בני מנייה (enum) | |
|---|---|
ACTION_UNSPECIFIED |
ערך ברירת המחדל. |
ALLOW |
נותנים גישה. |
DENY |
מניעת גישה. מומלץ להימנע מכללי דחייה, אלא אם משתמשים בהם כדי לספק חלופה של 'דחייה של הכול' כברירת מחדל. |
כלל
מפרט הכללים.
| ייצוג ב-JSON |
|---|
{ "sources": [ { object ( |
| שדות | |
|---|---|
sources[] |
זה שינוי אופציונלי. רשימת המאפיינים של מקור התנועה. כל המקורות צריכים להיות זהים. מקור נחשב להתאמה אם גם העקרונות וגם ה-ipBlocks תואמים. אם לא מוגדרת פעולה, הפעולה שצוינה בשדה 'פעולה' תבוצע בלי בדיקות כללים למקור. |
destinations[] |
זה שינוי אופציונלי. רשימת מאפיינים של יעד התנועה. כל היעדים צריכים להיות זהים. יעד נחשב להתאמה אם בקשה תואמת לכל המארחים, היציאות, השיטות והכותרות שצוינו. אם לא מוגדרת פעולה, הפעולה שצוינה בשדה 'פעולה' תבוצע בלי בדיקות כללים לגבי היעד. |
מקור
מפרט של מאפייני מקורות התנועה.
| ייצוג ב-JSON |
|---|
{ "principals": [ string ], "ipBlocks": [ string ] } |
| שדות | |
|---|---|
principals[] |
זה שינוי אופציונלי. רשימה של זהויות עמיתים להתאמה לצורך הרשאה. צריך שתהיה התאמה לפחות למשתמש ראשי אחד. כל עמית יכול להיות התאמה מדויקת, התאמה של קידומת (לדוגמה, namespace/*), התאמה של סיומת (לדוגמה, */service-account) או התאמה של נוכחות (*). הרשאה שמבוססת על שם העיקרון ללא אימות אישור (שמוגדר על ידי משאב ServerTlsPolicy) נחשבת לא מאובטחת. |
ipBlocks[] |
זה שינוי אופציונלי. רשימה של טווחי CIDR להתאמה על סמך כתובת ה-IP של המקור. צריך שתהיה התאמה לבלוק IP אחד לפחות. כתובת IP בודדת (למשל, "1.2.3.4") and CIDR (e.g., "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 להתאמה. שיטות gRPC צריכות להיות מוצגות כשם שמוגדר במלואו בפורמט /packageName.serviceName/methodName. לפחות נתיב אחד צריך להיות תואם. כל נתיב יכול להיות התאמה מדויקת, התאמה לתחילית (לדוגמה, /packageName.serviceName/*), התאמה לסיומת (לדוגמה, */video) או התאמה לנוכחות (כלומר, כל התאמה) '*'. |
methods[] |
זה שינוי אופציונלי. רשימה של 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 יחיד. |