משאב: AuthorizationPolicy
AuthorizationPolicy הוא משאב שמציין איך השרת צריך לאשר חיבורים נכנסים. המשאב הזה כשלעצמו לא משנה את ההגדרות, אלא אם הוא מצורף לשרת proxy ל-HTTPS או למשאב לבחירת נקודות קצה (endpoint config selector).
| ייצוג ב-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[] |
זה שינוי אופציונלי. רשימת מאפיינים של יעד התנועה. כל היעדים צריכים להיות זהים. יעד נחשב לתואם אם בקשה תואמת לכל המארחים, היציאות, ה-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 להתאמה. שיטות 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 ובביטוי רגולרי שעומד במפרט היציאה של כותרת המארח RFC2616. |
Methods |
|
|---|---|
|
יצירת AuthorizationPolicy חדש בפרויקט ובמיקום נתונים. |
|
מחיקה של AuthorizationPolicy יחיד. |
|
קבלת פרטים של AuthorizationPolicy יחיד. |
|
הצגת רשימה של AuthorizationPolicies בפרויקט ובמיקום נתונים. |
|
עדכון הפרמטרים של AuthorizationPolicy יחיד. |