במאמר הזה מוסבר איך להגדיר את Model Armor כדי להגן על מודלים של Gemini ב-Gemini Enterprise Agent Platform באמצעות סינון של הנחיות ותשובות. כשמשלבים את Model Armor עם Gemini Enterprise Agent Platform, הוא מיירט הנחיות לפני שהן מגיעות למודלים של Gemini, ומיירט תשובות לפני שהן מגיעות לאפליקציה שלכם. בהתאם להגדרה שלכם, Gemini Enterprise Agent Platform קוראת לשירות הגנה מוגברת על המודל, שבודק או חוסם תעבורת נתונים שמפירה את המדיניות שהגדרתם – כך נאכפים אמצעי אבטחה כמו זיהוי של החדרה הנחיות ופריצת דרך, מסנני אתיקה של בינה מלאכותית ו-Sensitive Data Protection. אפשר להגדיר את השילוב הזה באמצעות הגדרות אבטחה מינימליות להגנה ברמת הפרויקט, או באמצעות תבניות להגנה לכל בקשה.
Model Armor מספק הגנה על הנחיות ותגובות ב-Gemini API ב-Vertex AI עבור השיטה generateContent. כדי לראות את תוצאות הסרת הפרטים המזהים מההנחיות ומהתשובות, צריך להפעיל את Cloud Logging.
בנוסף להגנה על קריאות REST ישירות לשירות Gemini Enterprise Agent Platform, אפשר להשתמש ב-Model Armor גם כדי להגן על ממשקים אחרים שמאפשרים גישה ל-Gemini API ב-Vertex AI, כמו Google Generative AI SDKs או Firebase AI Logic SDKs.
מגבלות
כשמשלבים את הגנה מוגברת על המודל עם Gemini Enterprise Agent Platform, חשוב להביא בחשבון את המגבלות הבאות:
- כש-Model Armor משתמש בתבנית של Sensitive Data Protection כדי לסרוק הנחיות או תשובות, הוא בודק אם התוכן תואם לקריטריוני הסינון שמוגדרים בתבנית. אם נמצאה התאמה, Model Armor מסמן שהתוכן הפעיל את המסנן Sensitive Data Protection. למרות ש-Sensitive Data Protection מסיר את הפרטים המזהים מהנתונים על סמך הגדרות התבנית, Model Armor לא מעביר את הנתונים אחרי הסרת הפרטים המזהים – כמו תוכן מוסתר, מושמט או מגובב – בחזרה ל-Gemini Enterprise Agent Platform לעיבוד נוסף. במקום זאת, אם סוג האכיפה הוא
INSPECT_AND_BLOCK, הגנה מוגברת על המודל מנפיק פסק דין של חסימה כדי לוודא שנתונים רגישים לא יעברו לעיבוד נוסף. - אי אפשר לבצע סניטציה של הנחיות ותשובות שמכילות מסמכים.
- אם Gemini Enterprise Agent Platform מעביר בקשה לאזור שבו תבנית הגנה מוגברת על המודל שצוינה לא קיימת, הבקשה תיכשל עם השגיאה
Template not found. Gemini Enterprise Agent Platform מדלג על שלב החיטוי של Model Armor וממשיך לעבד את הבקשה בתנאים הבאים:
- הגנה מוגברת על המודל לא זמין באזור שבו Gemini Enterprise Agent Platform קיימת.
- לא ניתן לגשת ל-הגנה מוגברת על המודל באופן זמני.
- מתרחשת שגיאה ב-Model Armor.
בכל המקרים האלה, יכול להיות שיוצגו מדי פעם הנחיות או תשובות שלא נבדקו, כי הבקשה ממשיכה בלי שההנחיה והתשובה עוברות ניקוי.
השילוב נועד לספק זמינות גבוהה במקרה של כשלים בחיבור, אבל במצב
INSPECT_AND_BLOCKעדיין ידווחו שגיאות בהגדרות, כמו בעיות בהרשאות או במכסות.
לפני שמתחילים
מקצים את התפקיד Model Armor User לחשבון השירות של פלטפורמת הסוכנים של Gemini Enterprise.
gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com' --role='roles/modelarmor.user'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud .
-
מפעילים את הגנה מוגברת על המודל API.
הגדרת שינוי מברירת המחדל של נקודת קצה ל-API באמצעות ה-CLI של gcloud
הגדרת האופן שבו Model Armor עוזרת להגן על Gemini Enterprise Agent Platform
יש שתי דרכים להגדיר את האופן שבו Model Armor מגן על Gemini Enterprise Agent Platform:
- שימוש בתבניות להגנה על כל בקשה: הגישה הזו מספקת שליטה מדויקת, כי אפשר להחיל תבנית ספציפית על כל קריאה ל-API למודלים של Gemini ב-Gemini Enterprise Agent Platform.
generateContent - שימוש בהגדרות אבטחה מינימליות להגנה ברמת הפרויקט: בגישה הזו מופעלת הגנה בסיסית על ידי החלת הגדרות אבטחה מינימליות על כל קריאות ה-API של
generateContentלמודלים של Gemini ב-Gemini Enterprise Agent Platform בפרויקט.
מגדירים את סוג האכיפה כדי לקבוע אם המערכת רק תבדוק את ההפרות או גם תחסום אותן.
הגדרה לכל בקשה באמצעות תבניות
תבניות מאפשרות להגדיר איך הגנה מוגברת על המודל מסננת הנחיות ותשובות, וגם להגדיר את המסננים של האבטחה. קודם צריך ליצור תבניות, ואז להשתמש בהן בשיטת generateContent של Gemini. מידע נוסף על תבניות זמין במאמר בנושא יצירה וניהול של תבניות הגנה מוגברת על המודל.
אחרי שמגדירים את תבנית הגנה מוגברת על המודל, מעבירים את מזהה התבנית כפרמטר כשמבצעים קריאה ל-Gemini API באמצעות השיטה generateContent. Gemini Enterprise Agent Platform מעביר את הבקשה ל-Model Armor לעיבוד.
כדי להחיל תבניות ספציפיות על שיחה ספציפית generateContent, צריך לכלול את האובייקט modelArmorConfig בבקשה.
-
promptTemplateName: שם המשאב של תבנית הגנה מוגברת על המודל לניקוי ההנחיה. -
responseTemplateName: שם המשאב של תבנית הגנה מוגברת על המודל לניקוי התגובה.
בדוגמת הקוד הבאה מוצגת הבקשה למתודה generateContent.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.0-flash-001:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "[YOUR PROMPT HERE]" } ] } ] , "generationConfig": { "responseModalities": ["TEXT"] ,"temperature": 0.2 ,"maxOutputTokens": 1024 ,"topP": 0.8 }, "model_armor_config": { "prompt_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID", "response_template_name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID" } }'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION: Google Cloud המיקום של נקודת הקצה של Gemini. המיקומים הנתמכים הםeurope-west1,europe-west2,europe-west3,asia-southeast1ו-asia-south1. -
TEMPLATE_ID: מזהה תבנית Model Armor.
בדוגמת הקוד הבאה אפשר לראות את התגובה מ-method generateContent.
{ "promptFeedback": { "blockReason": "MODEL_ARMOR", "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters." }, "usageMetadata": { "trafficType": "ON_DEMAND" }, "modelVersion": "gemini-2.0-flash-001", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
הגדרת סוג האכיפה של תבניות
כדי להגדיר איך הגנה מוגברת על המודל מטפל בזיהויים, צריך להגדיר את סוג האכיפה.
בדוגמה הבאה מוצגת הגדרת תבנית הגנה מוגברת על המודל עם סוג האכיפה Inspect only.
export TEMPLATE_CONFIG='{ "filter_config": { "rai_settings": { "rai_filters": [{ "filter_type": "HATE_SPEECH", "confidence_level": "MEDIUM_AND_ABOVE" }, { "filter_type": "HARASSMENT", "confidence_level": "MEDIUM_AND_ABOVE" }, { "filter_type": "DANGEROUS", "confidence_level": "MEDIUM_AND_ABOVE" },{ "filter_type": "SEXUALLY_EXPLICIT", "confidence_level": "MEDIUM_AND_ABOVE" }] }, "pi_and_jailbreak_filter_settings": { "filter_enforcement": "ENABLED", "confidence_level": "LOW_AND_ABOVE" }, "malicious_uri_filter_settings": { "filter_enforcement": "ENABLED" } }, "template_metadata": { "enforcement_type": "INSPECT_ONLY", "multi_language_detection": { "enable_multi_language_detection": true } } }' curl -X POST \ -d "$TEMPLATE_CONFIG" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שאליו שייך התבנית. -
TEMPLATE_ID: המזהה של התבנית שרוצים ליצור. -
LOCATION: המיקום של התבנית.
הגדרות ברמת הפרויקט באמצעות הגדרות אבטחה מינימליות
הגדרות הרצפה מגדירות רמת הגנה מינימלית שחלה על כל הקריאות לפלטפורמת הסוכנים של Gemini Enterprise generateContent בפרויקט, גם אם הפרמטר modelArmorConfig לא נכלל בבקשת ה-API. הגדרת הגדרות אבטחה מינימליות
כדי להפעיל את הגנה מוגברת על המודל ואת השילוב של Gemini Enterprise Agent Platform, צריך להגדיר את הגדרות אבטחה מינימליות רק ברמת הפרויקט באמצעות ה-API או Google Cloud המסוף.
כדי להגדיר את הגדרות אבטחה מינימליות באמצעות שילוב של Gemini Enterprise Agent Platform, מריצים את הפקודה הבאה:
gcloud
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --add-integrated-services=VERTEX_AI
הפקודה הזו מפעילה כברירת מחדל את מצב האכיפה INSPECT_ONLY. כדי לשנות את המצב ל-INSPECT_AND_BLOCK, מריצים את הפקודה הבאה:
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --vertex-ai-enforcement-type=INSPECT_AND_BLOCK
כדי להסיר את Gemini Enterprise Agent Platform מהשירותים המשולבים, מריצים את הפקודה הבאה:
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --remove-integrated-services=VERTEX_AI
כדי להסיר את כל השירותים המשולבים שהוגדרו מהגדרות אבטחה מינימליות, מריצים את הפקודה הבאה:
gcloud model-armor floorsettings update \ --full-uri=projects/PROJECT_ID/locations/global/floorSetting \ --clear-integrated-services
מחליפים את PROJECT_ID במזהה הפרויקט של הגדרות אבטחה מינימליות.
REST
curl -X PATCH \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{"filterConfig" : {"piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED"}}, "integratedServices": ["AI_PLATFORM"], "aiPlatformFloorSetting":{"inspectOnly":true, "enableCloudLogging":true}, "enableFloorSettingEnforcement":true}' \ "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
מחליפים את PROJECT_ID במזהה הפרויקט שמכיל את הגדרות אבטחה מינימליות.
אחרי שמגדירים את הגדרות הרמה כדי להפעיל את הניקוי של Gemini Enterprise Agent Platform, Model Armor מנקה את כל קריאות ה-API של generateContent לנקודות הקצה של Gemini בפרויקט באמצעות הגדרות הסינון שצוינו.
בדוגמת הקוד הבאה אפשר לראות איך משתמשים במתודה generateContent.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.5-flash:generateContent" -d '{ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.5-flash:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "" } ] } ] , "generationConfig": { "responseModalities": ["TEXT"] ,"temperature": 0.2 ,"maxOutputTokens": 1024 ,"topP": 0.8 } }'
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION: המיקום של נקודת הקצה של Gemini. Google Cloud מידע על המיקומים הנתמכים זמין במאמר מיקומים של Model Armor API.
בדוגמת הקוד הבאה אפשר לראות את התגובה מ-method generateContent.
{ "promptFeedback": { "blockReason": "MODEL_ARMOR", "blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings (Harassment, Dangerous), Prompt Injection and Jailbreak filters." }, "usageMetadata": { "trafficType": "ON_DEMAND" }, "modelVersion": "gemini-2.5-flash", "createTime": "2025-03-26T13:14:36.961184Z", "responseId": "vP3jZ6DVOqLKnvgPqZL-8Ao" }
הגדרת סוג האכיפה של הגדרות אבטחה מינימליות
כדי להגדיר איך הגנה מוגברת על המודל מטפל בזיהויים, מגדירים את סוג האכיפה ל-INSPECT או ל-INSPECT_AND_BLOCK. בדוגמה הבאה מוצגת הגדרת אבטחה מינימלית עם סוג האכיפה INSPECT_AND_BLOCK.
gcloud
gcloud model-armor floorsettings update \ --full-uri=projects/modelarmor-api-test/locations/global/floorSetting \ --vertex-ai-enforcement-type=INSPECT_AND_BLOCK
REST
export FLOOR_SETTING='{ "filterConfig": { "raiSettings": { "raiFilters": [ { "filterType": "HATE_SPEECH", "confidenceLevel": "LOW_AND_ABOVE" }, { "filterType": "DANGEROUS", "confidenceLevel": "LOW_AND_ABOVE" }, { "filterType": "SEXUALLY_EXPLICIT", "confidenceLevel": "LOW_AND_ABOVE" }, { "filterType": "HARASSMENT", "confidenceLevel": "LOW_AND_ABOVE" } ] }, "sdpSettings": { "basicConfig": { "filterEnforcement": "ENABLED" } }, "piAndJailbreakFilterSettings": { "filterEnforcement": "ENABLED", "confidenceLevel": "LOW_AND_ABOVE" }, "maliciousUriFilterSettings": { "filterEnforcement": "ENABLED" } }, "integratedServices": ["AI_PLATFORM"], "aiPlatformFloorSetting": { "inspectAndBlock": true, "enableCloudLogging": true }, "enableFloorSettingEnforcement": true }' curl -X PATCH \ -d "$FLOOR_SETTING" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://modelarmor.googleapis.com/v1/projects/PROJECT_ID/locations/global/floorSetting"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הגדרות אבטחה מינימליות. -
LOCATION: המיקום של הגדרות האבטחה המינימליות.
בדיקת אכיפה מוטמעת באמצעות קריאה ל-API
בודקים את השילוב כדי לקרוא לשיטת generateContent של Gemini Enterprise Agent Platform API. משתמשים בהנחיה שמיועדת להפר את הגדרות אבטחה מינימליות שהוגדרו.
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION}/publishers/google/models/gemini-2.5-flash:generateContent" -d '{ "contents": [ { "role": "user", "parts": [ { "text": "" } ] } ] , "generationConfig": { "responseModalities": ["TEXT"] ,"temperature": 0.2 ,"maxOutputTokens": 1024 ,"topP": 0.8 } }'
אם השילוב פועל כמצופה, ה-API מחזיר תגובה עם השדה blockReason שמוגדר לערך MODEL_ARMOR כשהגנה מוגברת על המודל מזהה את ההנחיה כהפרה.
דוגמה לתגובה:
{
"promptFeedback": {
"blockReason": "MODEL_ARMOR",
"blockReasonMessage": "Blocked by Floor Setting. The prompt violated Responsible AI Safety settings..."
},
"usageMetadata": { "trafficType": "ON_DEMAND" },
"modelVersion": "gemini-2.5-flash"
}
כללי אינטראקציה ועדיפות
כשמשתמשים ב-Model Armor עם Gemini Enterprise Agent Platform, אפשר להגדיר תצורות בטיחות בכמה רמות. במקרים כאלה, ההגנה המוגברת על המודל ו-Gemini Enterprise Agent Platform פועלים לפי סדר עדיפות ספציפי:
תבניות הגנה מוגברת על המודל: לכל הגדרה שסופקה באופן מפורש בהגדרת בקשת ה-API יש את העדיפות הגבוהה ביותר. ההגדרות האלה מבטלות כל הגדרה אחרת שסותרת אותן בבקשה הספציפית הזו.
הגדרות הסף של Model Armor: אם לא מציינים הגדרה חלופית בבקשת ה-API, חלות הגדרות הסף של Model Armor.
מסנני הבטיחות של Gemini Enterprise Agent Platform: מסנני הבטיחות שמוגדרים כברירת מחדל ב-Gemini Enterprise Agent Platform הם בעלי העדיפות הכי נמוכה. הן חלות רק אם לא מגדירים תבניות ספציפיות של הגנה מוגברת על המודל או הגדרות אבטחה מינימליות.
הגישה ההיררכית הזו מספקת שילוב של תקנים מינימליים רחבים ברמת הארגון (באמצעות הגדרות אבטחה מינימליות) ושליטה בכל בקשה (באמצעות תבניות), תוך שימוש בתכונות הבטיחות המובנות של Gemini Enterprise Agent Platform כבסיס.
ההתנהגות של Model Armor ותכונות הבטיחות של Gemini Enterprise Agent Platform תלויה באופן שבו מספקים את ההגדרה.
| התבנית מוגדרת? | האם מסנני הבטיחות של Gemini Enterprise Agent Platform מוגדרים? | האם הגדרתם הגדרות אבטחה מינימליות? | התנהגות |
|---|---|---|---|
| כן | כן | הכול | מופיעה שגיאה. אי אפשר לציין באותה בקשה גם הגדרת תבנית וגם מסנני בטיחות של Gemini Enterprise Agent Platform. |
| כן | לא | הכול | הפעלת Model Armor באמצעות התבניות שצוינו ב-modelArmorConfig. מסנני הבטיחות של Gemini Enterprise Agent Platform מושבתים. תבניות בקשות מבטלות את ההגדרות של ערכי הסף. |
| לא | כן | כן | שניהם יפעלו. ההגנה המוגברת על המודל סורקת באמצעות מדיניות הגדרת הרמה, ו-Gemini Enterprise Agent Platform מעריכה את מסנני הבטיחות שלה. המערכת תחיל את התוצאה המגבילה ביותר. |
| לא | לא | כן | הכלי Model Armor פועל באמצעות מדיניות ההגדרה הפעילה של רמת הגישה. |
| לא | כן | לא | רק מסנני הבטיחות של Gemini Enterprise Agent Platform נבדקים. הגנה מוגברת על המודל לא מופעל. |
| לא | לא | לא | לא מופעלים מסנני בטיחות של הגנה מוגברת על המודל לכל בקשה או של Gemini Enterprise Agent Platform. רק התנהגויות של מודל בסיסי פעילות. |