בדף הזה מוסבר איך להשתמש ב-Service Extensions כדי להאציל הרשאה ל-Agent Gateway לשרת proxy לאימות זהויות (IAP), להגנה מוגברת על המודל ולמנועי הרשאה מותאמים אישית אחרים.
כללי מדיניות של הרשאות מאפשרים לאכוף בקרת גישה מרכזית וכללי מדיניות של ניהול על תנועה שעוברת דרך נקודת הקצה שפורסמה על ידי Agent Gateway. המדיניות הזו מאפשרת לכם לנהל את התעבורה על ידי שליטה בגישה על סמך זהויות mTLS, מאפיינים של בקשות ותגובות, ואפילו להתאים אישית על סמך מאפיינים ספציפיים לפרוטוקול שבו נעשה שימוש (לדוגמה, שרתי MCP).
במדיניות ההרשאות נעשה שימוש בפרופילי מדיניות כדי לקבוע את סוג ההרשאה שצריך לבצע. אתם יכולים להשתמש במדיניות הרשאה מבוססת-בקשה (REQUEST_AUTHZ) שמסתמכת על מידע בכותרות של בקשות HTTP כדי לאפשר או לחסום תנועה. אפשר גם להשתמש במדיניות הרשאות מבוססת-תוכן (CONTENT_AUTHZ) כשצריך לבצע בדיקה מעמיקה יותר של מטען היישום כדי לאשר או לדחות תנועה.
מידע נוסף על מדיניות הרשאות, פרופילי מדיניות ותרחישי שימוש זמין במאמר סקירה כללית של מדיניות הרשאות.
תוספי הרשאה
לפעמים, לא ניתן לבטא בקלות החלטות מורכבות בנושא הרשאות באמצעות מדיניות הרשאות. בעזרת Agent Gateway אפשר להגדיר מדיניות הרשאות באמצעות תוספי הרשאות כדי להעביר החלטות לגבי הרשאות למנועי הרשאות בהתאמה אישית.
תוסף הרשאות מאפשר ליירט ולבדוק בקשות שעוברות דרך פריסת Agent Gateway. הוא מבצע קריאת gRPC בזמן אמת לשירות חיצוני שאתם מנהלים, כדי שתוכלו לבדוק, לשנות או אפילו לחסום תנועה לפני שהיא ממשיכה ליעד שלה.
התוסף בודק את הנתונים על סמך מדיניות ההרשאה שהוגדרה. אתם יכולים להגדיר תוספים להרשאות בנפרד עבור כללי מדיניות של הרשאות מבוססות-בקשה והרשאות מבוססות-תוכן, או להשתמש בשניהם כדי לקבל אבטחה מקיפה.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שהדרישות הבאות מתקיימות:
ה-Agent Gateway נפרס. מידע נוסף זמין במאמר בנושא הגדרת Agent Gateway.
כדי לצרף כללי מדיניות הרשאה לשער, צריכה להיות לכם הרשאת IAM
agentGateway.useבמשאב Agent Gateway שנפרס.
הגדרת מדיניות הרשאות באמצעות תוספים
בקטע הזה מוסבר איך להגדיר מדיניות הרשאות שמקצה סמכויות להרשאות ולהחלטות בנושא בטיחות תוכן לשרת proxy לאימות זהויות (IAP), להגנה מוגברת על המודל ולשירותים מותאמים אישית אחרים.
העברת הרשאה ל-IAP
אתם יכולים להגדיר תוסף לאישור בקשות כדי להעביר את ההחלטות לגבי הרשאות גישה ל-IAP.
בשלבים הבאים מוסבר איך להגדיר תוסף הרשאות עם מדיניות הרשאות למופע של Agent Gateway.
יוצרים את מדיניות ה-IAM הנדרשת ליציאה (egress) עבור הסוכנים והכלים. מידע נוסף זמין במאמר בנושא יצירת מדיניות של סוכני IAM.
במאמר הגדרת Agent Gateway במצב Agent-to-Anywhere (יציאה) מוסבר איך להפעיל את IAP כשיוצרים את Agent Gateway (באמצעות הפרמטר Access authorization).
כדי להשתמש ב-IAP, הסוכנים שלכם צריכים להיות רשומים במשאב Agent Registry שקשור לשער.
הגדרת תוסף הרשאות שיפנה אל IAP.
מגדירים את התוסף בקובץ YAML. משתמשים בערכים לדוגמה שצוינו. אם רוצים לפרוס את התוסף במצב ביקורת בלבד של הרצה יבשה, כדי לבדוק את מדיניות ההרשאות בלי לאכוף אותה, אפשר לציין את השדה
iamEnforcementModeבתוך הבלוקmetadata.cat >iap-request-authz-extension.yaml <<EOF name: my-iap-request-authz-ext service: iap.googleapis.com failOpen: true timeout: 1s metadata: iapPolicyVersion: "V1" EOFאם רוצים לפרוס את התוסף במצב audit-only של הרצה יבשה, כדי לבדוק את מדיניות ההרשאות בלי לאכוף אותה, אפשר לציין את השדה
iamEnforcementModeבתוך הבלוקmetadata. כך תוכלו לאמת את המדיניות ולצמצם את הסיכון לשיבוש התנועה בגלל שגיאות בהגדרות:cat >iap-request-authz-extension.yaml <<EOF name: my-iap-request-authz-ext service: iap.googleapis.com failOpen: true timeout: 1s metadata: iapPolicyVersion: "V1" iamEnforcementMode: "DRY_RUN" EOFכשמוכנים להתחיל לאכוף את כללי המדיניות, צריך להסיר את השדה
iamEnforcementMode: "DRY_RUN"מהבלוקmetadata.מייבאים את תוסף ההרשאה. משתמשים ב
gcloud service-extensions authz-extensions importעם ערכי הדוגמה הבאים.gcloud service-extensions authz-extensions import my-iap-request-authz-ext \ --source=iap-request-authz-extension.yaml \ --location=LOCATION
באותו פרויקט, מגדירים מדיניות הרשאה שמקצה את ההחלטה לתוסף.
מגדירים מדיניות הרשאות שמשייכת את התוסף
my-iap-request-authz-extלשער. משתמשים בערכים לדוגמה שסופקו.cat >iap-request-authz-policy.yaml <<EOF name: my-iap-request-authz-policy target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/LOCATION/authzExtensions/my-iap-request-authz-ext" EOFמחליפים את
PROJECT_IDבמזהה הפרויקט.מייבאים את מדיניות ההרשאות לפרויקט. משתמשים ב
gcloud network-security authz-policies importפקודה עם הערכים לדוגמה הבאים.gcloud beta network-security authz-policies import my-iap-request-authz-policy \ --source=iap-request-authz-policy.yaml \ --location=LOCATION
העברת הרשאות ל-Model Armor
אתם יכולים להגדיר תוסף הרשאה כדי להעביר את ההחלטות לגבי אבטחת תוכן של מדיניות הרשאות ל-Model Armor.
בדוגמה הבאה מוצג איך להגדיר תוסף הרשאות כזה עם מדיניות הרשאות ל-Agent Gateway.
המסוף
כדי להשתמש במסוף Google Cloud כדי להפעיל את הגנה מוגברת על המודל עבור Agent Gateway, פועלים לפי השלבים הבאים:
יוצרים את התבניות של Model Armor שנדרשות.
במאמר הגדרת Agent Gateway מוסבר איך להפעיל את Model Armor כשיוצרים את Agent Gateway (באמצעות תיבת הסימון Enable Model Armor). תבניות של הגנה מוגברת על המודל נתמכות במצבים Client-to-Agent ו-Agent-to-Anywhere.
כשמשתמשים בהגנה מוגברת על המודל, צריך להעניק לחשבון השירות של Agent Gateway את ההרשאות שנדרשות כדי להשתמש בתבניות של הגנה מוגברת על המודל. חשבון השירות הוא בפורמט:
service-PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com, כאשר PROJECT_NUMBER הוא מספר הפרויקט שבו יצרתם את השער.חובה להשלים את השלב הזה גם אם השער והתבניות נמצאים באותו פרויקט. מעניקים את התפקידים הבאים:
- התפקידים
roles/modelarmor.calloutUserו-roles/serviceusage.serviceUsageConsumerבפרויקט שמכיל את השער. - תפקיד
roles/modelarmor.userבפרויקט שמכיל את תבניות הגנה מוגברת על המודל.
כדי להשלים את השלב הזה, צריך להשתמש ב-CLI של gcloud.
gcloud projects add-iam-policy-binding GATEWAY_PROJECT_ID \ --member=serviceAccount:service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.calloutUser gcloud projects add-iam-policy-binding GATEWAY_PROJECT_ID \ --member=serviceAccount:service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/serviceusage.serviceUsageConsumer gcloud projects add-iam-policy-binding MODEL_ARMOR_PROJECT_ID \ --member=serviceAccount:service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.userמחליפים את מה שכתוב בשדות הבאים:
-
GATEWAY_PROJECT_ID: מזהה הפרויקט שבו יצרתם את שער הגישה. -
GATEWAY_PROJECT_NUMBER: מספר הפרויקט שבו יצרתם את שער הנתונים. -
MODEL_ARMOR_PROJECT_ID: מזהה הפרויקט שמכיל את תבנית הגנה מוגברת על המודל.
אם אתם משתמשים בשער עבור Agent Runtime, גם לסוכן של שירות מנוע החשיבה הרציונלית נדרשות ההרשאות האלה, כפי שמתואר במאמרי עזרה ניתוב תעבורת נתונים של Agent Runtime דרך Agent Gateway.
- התפקידים
gcloud
יוצרים את התבניות של Model Armor שנדרשות.
כשמשתמשים בהגנה מוגברת על המודל, צריך להעניק לחשבון השירות של Agent Gateway את ההרשאות שנדרשות כדי להשתמש בתבניות של הגנה מוגברת על המודל. חשבון השירות הוא בפורמט:
service-PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com, כאשר PROJECT_NUMBER הוא מספר הפרויקט שבו יצרתם את השער.חובה להשלים את השלב הזה גם אם השער והתבניות נמצאים באותו פרויקט. מעניקים את התפקידים הבאים:
- התפקידים
roles/modelarmor.calloutUserו-roles/serviceusage.serviceUsageConsumerבפרויקט שמכיל את השער. - תפקיד
roles/modelarmor.userבפרויקט שמכיל את תבנית הגנה מוגברת על המודל.
gcloud projects add-iam-policy-binding GATEWAY_PROJECT_ID \ --member=serviceAccount:service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.calloutUser gcloud projects add-iam-policy-binding GATEWAY_PROJECT_ID \ --member=serviceAccount:service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/serviceusage.serviceUsageConsumer gcloud projects add-iam-policy-binding MODEL_ARMOR_PROJECT_ID \ --member=serviceAccount:service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com \ --role=roles/modelarmor.userמחליפים את מה שכתוב בשדות הבאים:
-
GATEWAY_PROJECT_ID: מזהה הפרויקט שבו יצרתם את שער הגישה. -
GATEWAY_PROJECT_NUMBER: מספר הפרויקט שבו יצרתם את שער הנתונים. -
MODEL_ARMOR_PROJECT_ID: מזהה הפרויקט שמכיל את תבנית הגנה מוגברת על המודל.
- התפקידים
מגדירים את תוסף ההרשאות כך שיצביע על Model Armor.
מגדירים את התוסף בקובץ YAML. משתמשים בערכים לדוגמה שצוינו.
cat >ma-content-authz-extension.yaml <<EOF name: my-ma-content-authz-ext service: modelarmor.LOCATION.rep.googleapis.com metadata: model_armor_settings: '[ { "response_template_id": "projects/MODEL_ARMOR_PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID", "request_template_id": "projects/MODEL_ARMOR_PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID" } ]' failOpen: true timeout: 1s EOFמייבאים את תוסף ההרשאה. משתמשים ב
gcloud service-extensions authz-extensions importעם ערכי הדוגמה הבאים.gcloud service-extensions authz-extensions import my-ma-content-authz-ext \ --source=ma-content-authz-extension.yaml \ --location=LOCATION
הגדרת מדיניות הרשאות באמצעות התוסף.
מגדירים מדיניות הרשאות שמשייכת את התוסף
my-ma-content-authz-extל-Agent Gateway.Agent-to-Anywhere
cat >ma-content-authz-policy.yaml <<EOF name: my-ma-content-authz-policy target: resources: - "projects/PROJECT_ID/locations/LOCATION/gateways/AGENT_GATEWAY_NAME" policyProfile: CONTENT_AUTHZ action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/LOCATION/authzExtensions/my-ma-content-authz-ext" httpRules: - to: operations: [ { "paths": [ { "prefix": "/" } ] } ] when: > request.headers['content-type'] == 'application/json' || request.headers['content-type'].startsWith('text/') EOFשימו לב לנקודות הבאות:
הערך של
policyProfileמוגדר כ-CONTENT_AUTHZ. המשמעות היא שספק המדיניות המותאמת אישית מעבד את התנועה של הבקשות והתגובות, כולל גוף הבקשה.הפרמטר
httpRulesמדגים איך להשתמש במאפייני CEL כדי ליצור תנאים שתואמים לתנועה הספציפית שרוצים להעביר ל-Model Armor לצורך הערכה. בדוגמה הזו, הכללים תואמים לכל התנועה עם סוגי התוכןapplication/jsonאוtext/. מומלץ להשתמש בכללים כאלה כדי להגביל את ההערכה של Model Armor לתנועה רלוונטית. כך תוכלו לנתב תנועה נתמכת של LLM API, MCP ו-A2A אל Model Armor, תוך החרגת תנועה פנימית כמו קריאות gRPC של סוכנים.
לקוח לנציג
cat >ma-content-authz-policy.yaml <<EOF name: my-ma-content-authz-policy target: resources: - "projects/PROJECT_ID/locations/LOCATION/gateways/AGENT_GATEWAY_NAME" policyProfile: CONTENT_AUTHZ action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/LOCATION/authzExtensions/my-ma-content-authz-ext" EOFהערך של
policyProfileמוגדר כ-CONTENT_AUTHZ. המשמעות היא שספק המדיניות המותאמת אישית מעבד את התנועה של הבקשות והתגובות, כולל גוף הבקשה.מייבאים את מדיניות ההרשאות לפרויקט. משתמשים ב
gcloud network-security authz-policies importפקודה עם הערכים לדוגמה הבאים.gcloud network-security authz-policies import my-ma-content-authz-policy \ --source=ma-content-authz-policy.yaml \ --location=LOCATION
העברת הרשאה לתוספי הרשאה בהתאמה אישית
אתם יכולים להגדיר תוספים מותאמים אישית של הרשאות כדי להעביר החלטות לשירותים מותאמים אישית. התוספים המותאמים אישית האלה יכולים לטרגט רק שמות דומיין שמוגדרים במלואם (FQDN).
כשמשתמשים ביעדים מסוג FQDN, התוסף משתמש בפרוטוקול HTTP2 עם הצפנת TLS כדי לתקשר עם נקודות קצה ביציאה 443. עם זאת, התוסף לא מאמת את אישור השרת. לכן, כדי לשפר את האבטחה, צריך לוודא שנקודות הקצה שנפתרו נמצאות ברשת ה-VPC. בנוסף, צריך לוודא שהגדרתם DNS peering בין פרויקט Agent Gateway לבין רשת ה-VPC.
כדי להגדיר תוסף הרשאה עם מדיניות הרשאה עבור FQDN ספציפי, כמו
mycustomauthz.internal.net, צריך לציין אותו כערך שלserviceבקובץ ה-YAML של התוסף, כמו בדוגמה הבאה. בדוגמה הזו מניחים שפרסתם שרת ברשת ה-VPC שלכם שמטמיע את פרוטוקולext_procבמצב עיבוד של גוף ההודעהFULL_DUPLEX_STREAMED.cat >custom-authz-extension.yaml <<EOF name: my-custom-authz-ext service: mycustomauthz.internal.net failOpen: true timeout: 1s EOFיוצרים את תוסף ההרשאה כדי להפנות לשירות המותאם אישית.
gcloud beta service-extensions authz-extensions import custom-authz-extension \ --source=custom-authz-extension.yaml \ --location=LOCATION
אחרי שיוצרים את התוסף, מגדירים
CUSTOMמדיניות הרשאות שמעבירה את ההחלטות לתוסף ההרשאות.cat >authz-policy.yaml <<EOF name: authz-with-extension target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: CONTENT_AUTHZ action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/LOCATION/authzExtensions/custom-authz-extension" EOFיוצרים את מדיניות ההרשאות.
gcloud network-security authz-policies import authz-policy-with-extension \ --source=authz-policy.yaml \ --location=LOCATION
שימו לב: כשמשייכים תוסף הרשאה למדיניות הרשאה באמצעות פרופיל CONTENT_AUTHZ כמו בדוגמה הזו, שער הכניסה מפעיל את התוסף עבור מטען ייעודי (payload) של בקשות ותגובות (כותרות וגופים), וכך מאפשר בדיקה מעמיקה של התוכן, אמצעי הגנה על הנחיות וניקוי נתונים לתנועת הסוכן. כברירת מחדל, כללי המדיניות של CONTENT_AUTHZ משתמשים בפרוטוקול ext_proc של Envoy במצב FULL_DUPLEX_STREAMED כדי לעבד אירועים של גוף הבקשה.
שילוב של הרשאת IAP עם אמצעי בקרה של הגנה מוגברת על המודל
כדי להבטיח אבטחה מקיפה, מומלץ להגדיר מדיניות הרשאה מותאמת אישית עם REQUEST_AUTHZ פרופיל מדיניות, ועוד מדיניות הרשאה מותאמת אישית עם CONTENT_AUTHZ פרופיל מדיניות.
בדוגמה הבאה נעשה שימוש ב-IAP כמערכת מרכזית להרשאת בקשות וב-Model Armor כהגנות AI. כמו בדוגמאות הקודמות, אפשר להחליף כל אחת מהן בתוספי שירות כדי להשתמש בפתרונות מותאמים אישית משלכם.
מגדירים תוסף הרשאה של
REQUEST_AUTHZשמקצה הרשאות ל-IAP ומדיניות הרשאות שמפנה לתוסף.מגדירים את תוסף ההרשאה. השדה
iapPolicyVersionבקטעmetadataהוא חובה וצריך להגדיר בו את הערך"V1".cat >iap-extension.yaml <<EOF name: iap-extension service: iap.googleapis.com failOpen: true timeout: 1s metadata: iapPolicyVersion: "V1" EOFיוצרים את תוסף ההרשאה.
gcloud service-extensions authz-extensions import iap-extension \ --source=iap-extension.yaml \ --location=LOCATION
מחליפים את
LOCATIONבאזור של התוסף.הגדרת מדיניות ההרשאות של
REQUEST_AUTHZשמעבירה הרשאות לתוסף.cat >authz-policy-request-authz.yaml <<EOF name: authz-iap target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/LOCATION/authzExtensions/iap-extension" EOFמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
LOCATION: המיקום של המשאבים. -
AGENT_GATEWAY_NAME: השם של Agent Gateway.
-
יוצרים את מדיניות ההרשאות.
gcloud network-security authz-policies import authz-iap \ --source=authz-policy-request-authz.yaml \ --location=LOCATION
מגדירים תוסף הרשאה של
CONTENT_AUTHZשמעביר את ההרשאה ל-הגנה מוגברת על המודל, ומדיניות הרשאה שמפנה לתוסף.מגדירים את התוסף.
cat >ma-extension-file.yaml <<EOF name: ma-extension service: modelarmor.LOCATION.rep.googleapis.com metadata: model_armor_settings: '[ { "response_template_id": "projects/MODEL_ARMOR_PROJECT_ID/locations/LOCATION/templates/RESPONSE_TEMPLATE_ID", "request_template_id": "projects/MODEL_ARMOR_PROJECT_ID/locations/LOCATION/templates/REQUEST_TEMPLATE_ID" } ]' failOpen: true timeout: 1s EOFמחליפים את מה שכתוב בשדות הבאים:
-
LOCATION: האזור שבו נמצאות התבניות של Model Armor. -
MODEL_ARMOR_PROJECT_ID: מזהה הפרויקט שמכיל את תבניות Model Armor. -
RESPONSE_TEMPLATE_ID: המזהה של תבנית התגובה. -
REQUEST_TEMPLATE_ID: המזהה של תבנית הבקשה.
-
יוצרים את תוסף ההרשאה.
gcloud service-extensions authz-extensions import ma-extension \ --source=ma-extension-file.yaml \ --location=LOCATION
מגדירים את מדיניות ההרשאות של
CONTENT_AUTHZשמקצה הרשאות לתוסף.cat >authz-policy-content-authz.yaml <<EOF name: authz-ma target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: CONTENT_AUTHZ action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/LOCATION/authzExtensions/ma-extension" EOFיוצרים את מדיניות ההרשאות.
gcloud network-security authz-policies import ma-authz-policy \ --source=authz-policy-content-authz.yaml \ --location=LOCATION
כשתוסף הרשאה משויך לפרופיל CONTENT_AUTHZ, הוא מקבל את כל האירועים של ext_proc, כולל כותרות של בקשות ותשובות, גוף וטריילרים. אם תוסף ההרשאה שמבוסס על ext_proc יכול לטפל בהרשאה בזמן הבקשה ובהרשאה שמבוססת על תוכן, מומלץ להגדיר מדיניות הרשאה אחת של CUSTOM עם פרופיל המדיניות CONTENT_AUTHZ. המדיניות הזו צריכה להפנות לתוסף ההרשאות הרב-תכליתי שלכם. הגישה הזו מאפשרת להשתמש בשני סוגי ההרשאות דרך תוסף אחד וחיבור ext_proc, מה שיכול לשפר את פרופילי ההשהיה.
העברת הרשאה לכללי מדיניות סמנטיים של ניהול הרשאות
אפשר להגדיר תוסף הרשאה כדי להעביר את ההחלטות לגבי הגבלת כוונות ומגבלות בשפה טבעית למנוע המדיניות של Semantic governance (semanticGovernancePolicyEngine).
כדי ללמוד איך להקצות את מנוע המדיניות וליצור את CONTENT_AUTHZ מדיניות ההרשאות הנדרשת ואת הקישור של תוסף ההרשאות בשער, אפשר לעיין במאמר חיבור מנוע המדיניות ל-Agent Gateway.
הרשאה שמבוססת על מאפיינים של פרוטוקול MCP
Agent Gateway מנתח את מטען ה-payload של פרוטוקול ה-MCP בבקשה ומאפשר להשתמש במאפיינים שחולצו במדיניות ההרשאות.
אתם יכולים להגביל את הגישה על סמך פרמטרים של שיטת MCP, כמו שמות של כלים ספציפיים. בקטע הזה מוצגות שתי דוגמאות, אחת לכלל מדיניות ALLOW ואחת לכלל מדיניות DENY.
מגדירים את מדיניות ההרשאות.
ALLOWדוגמה למדיניותבדוגמה הזו יש גישה לקבוצה ספציפית של כלים בשרת ה-MCP ולתכונות של פרוטוקול הבסיס, אבל אין גישה להנחיות ולמשאבים.
כשכותבים מדיניות
ALLOW, חשוב לצייןbaseProtocolMethodsOption: MATCH_BASE_PROTOCOL_METHODSכדי שפקודות RPC של MCP שלא קשורות לגישה, כמו initialize, logging, completion, notifications ו-ping, ימשיכו לפעול. אם לא תעשו את זה, לא תוכלו ליצור סשן MCP.cat >authz-policy-restrict-tools.yaml <<EOF name: my-authz-policy-restrict-tools target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - mcp: baseProtocolMethodsOption: MATCH_BASE_PROTOCOL_METHODS methods: - name: "tools/list" - name: "tools/call" params: - exact: "get_weather" - exact: "get_location" action: ALLOW EOFDENYדוגמה למדיניותבדוגמה הזו, כל ההנחיות והגישה לשיטות נחסמות בשרת MCP שנמצא מאחורי Agent Gateway.
cat >authz-policy-disallow-prompts.yaml <<EOF name: my-authz-policy-disallow-prompts target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - mcp: methods: - name: "prompts" action: DENY EOFיוצרים את מדיניות ההרשאות.
gcloud network-security authz-policies import AUTHZ_POLICY_NAME \ --source=AUTH_POLICY_YAML_FILE_PATH \ --location=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
AUTHZ_POLICY_NAME: השם של מדיניות ההרשאות.-
AUTH_POLICY_YAML_FILE_PATH: הנתיב לקובץ ה-YAML של מדיניות ההרשאות. -
LOCATION: המיקום של המשאבים.
מגבלות
המגבלות הבאות חלות כשמשתמשים במדיניות הרשאות:
- בשערים של סוכנים לכל מקום (יציאה), אפשר להגדיר עד ארבע מדיניות הרשאות מותאמת אישית לכל שער, ללא קשר לפרופיל המדיניות.
- בשערי כניסה (ingress) של לקוחות לסוכנים, אפשר להגדיר עד
CONTENT_AUTHZמדיניות. מומלץ מאוד להשתמש ב-Model Armor כדי להגן מפני מתקפות של החדרת הנחיות. עם זאת, אם רוצים להשתמש בתוסף של מדיניות סמנטית לניהול גישה, צריך לוודא ש-Model Armor לא מוגדר בשער. אין תמיכה בסוגים אחרים של תוספי שירות ל-ingress. - אם אתם משתמשים בתוספים מותאמים אישית להרשאות עם פרופיל
CONTENT_AUTHZ, הם צריכים לתמוך בפרוטוקולext_procובמצבFULL_DUPLEX_STREAMEDלאירועים של body. - אם מגדירים כמה כללי מדיניות מותאמים אישית להרשאה שמשתמשים באותו פרופיל, סדר הביצוע שלהם לא מובטח.
בנוסף, בקטעים הבאים מופיע מידע נוסף על המגבלות של תוספי הרשאה:
מידע על מגבלות שחלות על כל התוספים זמין במאמר מגבלות על תוספים.
מידע על מגבלות שחלות על יתרונות מרכזיים מופיע במאמר מגבלות של יתרונות מרכזיים.
המאמרים הבאים
Codelab: Govern agentic workloads with Agent Platform
איך שולטים בעומסי עבודה אקטיביים באמצעות Agent Gateway ב-Gemini Enterprise Agent Platform.