Model Armor in die Gemini Enterprise Agent Platform einbinden

In diesem Dokument wird beschrieben, wie Sie Model Armor konfigurieren, um Gemini-Modelle auf der Gemini Enterprise Agent Platform durch die Überprüfung von Prompts und Antworten zu schützen. Bei der Integration in die Gemini Enterprise Agent Platform fängt Model Armor Prompts ab, bevor sie Gemini-Modelle erreichen, und fängt Antworten ab, bevor Ihre Anwendung sie empfängt. Gemini Enterprise Agent Platform ruft basierend auf Ihrer Konfiguration den Model Armor-Dienst auf, der Traffic prüft oder blockiert, der gegen Ihre definierten Richtlinien verstößt. So werden Sicherheitsmaßnahmen wie die Erkennung von Prompt Injection und Jailbreaks, Filter für eine verantwortungsbewusste Anwendung von KI und Sensitive Data Protection erzwungen. Sie können diese Integration entweder mit Mindestbetragseinstellungen für den Schutz auf Projektebene oder mit Vorlagen für den Schutz pro Anfrage konfigurieren.

Model Armor bietet Schutz für Prompts und Antworten in der Gemini API in Vertex AI für die Methode generateContent. Sie müssen Cloud Logging aktivieren, um die Bereinigungsergebnisse von Prompts und Antworten zu sehen.

Neben dem Schutz direkter REST-Aufrufe des Gemini Enterprise Agent Platform-Dienstes können Sie Model Armor auch verwenden, um andere Schnittstellen zu schützen, die Zugriff auf die Gemini API in Vertex AI bieten, z. B. die Google Generative AI SDKs oder Firebase AI Logic SDKs.

Beschränkungen

Beachten Sie bei der Integration von Model Armor in die Gemini Enterprise Agent Platform die folgenden Einschränkungen:

  • Wenn Model Armor eine Sensitive Data Protection-Vorlage zum Scannen von Prompts oder Antworten verwendet, wird geprüft, ob die Inhalte den in der Vorlage definierten Filterkriterien entsprechen. Wenn eine Übereinstimmung gefunden wird, kennzeichnet Model Armor, dass der Inhalt den Sensitive Data Protection-Filter ausgelöst hat. Sensitive Data Protection de-identifiziert die Daten zwar basierend auf der Vorlagenkonfiguration, Model Armor gibt die de-identifizierten Daten (z. B. maskierte, unkenntlich gemachte oder gehashte Inhalte) jedoch nicht zur weiteren Verarbeitung an die Gemini Enterprise Agent Platform zurück. Wenn der Erzwingungstyp INSPECT_AND_BLOCK ist, gibt Model Armor stattdessen ein Blockierungsergebnis aus, um sicherzustellen, dass sensible Daten nicht weiterverarbeitet werden.
  • Das Bereinigen von Prompts und Antworten, die Dokumente oder Dateiuploads (z. B. PDFs) enthalten, wird in dieser Integration nicht unterstützt. Rufen Sie zum Überprüfen von Dokumenten die Model Armor REST API direkt auf.
  • Wenn die Gemini Enterprise Agent Platform eine Anfrage an eine Region weiterleitet, in der die angegebene Model Armor-Vorlage nicht vorhanden ist, schlägt die Anfrage mit einem Template not found-Fehler fehl.
  • Bei der Gemini Enterprise Agent Platform wird der Bereinigungsschritt von Model Armor übersprungen und die Anfrage wird unter den folgenden Bedingungen weiterverarbeitet:

    • Model Armor ist nicht in Regionen verfügbar, in denen die Gemini Enterprise Agent Platform verfügbar ist.
    • Model Armor ist vorübergehend nicht erreichbar.
    • In Model Armor tritt ein Fehler auf.

    In all diesen Fällen können gelegentlich ungeprüfte Prompts oder Antworten angezeigt werden, da die Anfrage ohne Bereinigung von Prompts und Antworten fortgesetzt wird.

    Die Integration ist zwar für eine hohe Verfügbarkeit bei Verbindungsfehlern konzipiert, im INSPECT_AND_BLOCK-Modus werden jedoch weiterhin Konfigurationsfehler wie Berechtigungs- oder Kontingentprobleme gemeldet.

Hinweis

  • Weisen Sie dem Dienstkonto der Gemini Enterprise Agent Platform die Model Armor-Nutzerrolle zu.

    gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com' --role='roles/modelarmor.user'

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Projekt-ID in Google Cloud .
    • PROJECT_NUMBER: Ihre Google Cloud Projektnummer
  • Aktivieren Sie die Model Armor API.

  • API-Endpunktüberschreibung mit der gcloud CLI festlegen

Konfigurieren, wie Model Armor die Gemini Enterprise Agent Platform schützt

Sie haben zwei Möglichkeiten, Model Armor zum Schutz der Gemini Enterprise Agent Platform zu konfigurieren:

  • Vorlagen für den Schutz pro Anfrage verwenden: Dieser Ansatz bietet eine detaillierte Steuerung, da Sie jede generateContent-API-Anfrage an Gemini-Modelle in der Gemini Enterprise Agent Platform mit einer bestimmten Vorlage versehen können.
  • Mindesteinstellungen für Schutz auf Projektebene verwenden: Bei diesem Ansatz wird ein grundlegender Schutz durchgesetzt, indem Mindesteinstellungen auf alle generateContent-API-Aufrufe an Gemini-Modelle auf der Gemini Enterprise Agent Platform in Ihrem Projekt angewendet werden.

Legen Sie den Erzwingungstyp fest, um zu bestimmen, ob Verstöße nur geprüft oder auch blockiert werden.

Konfiguration pro Anfrage mit Vorlagen

Mit Vorlagen können Sie konfigurieren, wie Model Armor Prompts und Antworten prüft, und Sicherheitsfilterkonfigurationen definieren. Sie müssen zuerst Vorlagen erstellen und diese dann mit der Methode generateContent von Gemini verwenden. Weitere Informationen zu Vorlagen finden Sie unter Model Armor-Vorlagen erstellen und verwalten.

Nachdem Sie die Model Armor-Vorlage konfiguriert haben, übergeben Sie die Vorlagen-ID als Parameter, wenn Sie die Gemini API mit der Methode generateContent aufrufen. Die Gemini Enterprise Agent Platform leitet die Anfrage zur Verarbeitung an Model Armor weiter.

Wenn Sie bestimmte Vorlagen auf einen einzelnen generateContent-Aufruf anwenden möchten, fügen Sie das modelArmorConfig-Objekt in Ihre Anfrage ein.

  • promptTemplateName: Der Ressourcenname der Model Armor-Vorlage, mit der der Prompt bereinigt werden soll.
  • responseTemplateName: Der Ressourcenname der Model Armor-Vorlage zum Bereinigen der Antwort.

Das folgende Codebeispiel zeigt die Anfrage an die Methode 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"
        }
}'

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Google Cloud Projekt-ID.
  • LOCATION: der Google Cloud Standort des Gemini-Endpunkts. Die unterstützten Standorte sind europe-west1, europe-west2, europe-west3, asia-southeast1 und asia-south1.
  • TEMPLATE_ID: Model Armor-Vorlagen-ID.

Das folgende Codebeispiel zeigt die Antwort der Methode 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"
}

Erzwingungstyp für Vorlagen definieren

Legen Sie den Durchsetzungstyp fest, um zu konfigurieren, wie Model Armor Erkennungen verarbeitet.

Das folgende Beispiel zeigt die Konfiguration der Model Armor-Vorlage mit dem Erzwingungstyp 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"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, zu dem die Vorlage gehört.
  • TEMPLATE_ID: Die ID der zu erstellenden Vorlage.
  • LOCATION: Der Speicherort der Vorlage.

Konfiguration auf Projektebene mit Mindesteinstellungen

Mit den Mindesteinstellungen wird eine Mindestschutzlinie definiert, die für alle generateContent-Aufrufe der Gemini Enterprise Agent Platform in einem Projekt gilt, auch wenn der Parameter modelArmorConfig in der API-Anfrage ausgelassen wird. Eine Anleitung zum Einrichten von Etagen finden Sie unter Etagen konfigurieren.

Für Mindesteinstellungen werden standardmäßig die Stable-Filterversion verwendet. Wenn Sie diese Einstellung überschreiben möchten, geben Sie im generateContent-Aufruf an das Gemini-Modell eine Vorlage an. Weitere Informationen finden Sie unter Standardfilterversion für Mindesteinstellungen überschreiben.

Wenn Sie die Integration von Model Armor und der Gemini Enterprise Agent Platform aktivieren möchten, legen Sie die Mindesteinstellungen nur auf Projektebene über die API oder die Google Cloud Console fest.

Führen Sie den folgenden Befehl aus, um die Mindesteinstellungen mit der Gemini Enterprise Agent Platform-Integration zu konfigurieren:

gcloud

gcloud model-armor floorsettings update \
  --full-uri=projects/PROJECT_ID/locations/global/floorSetting \
  --add-integrated-services=VERTEX_AI

Mit diesem Befehl wird standardmäßig der INSPECT_ONLY-Erzwingungsmodus aktiviert. Führen Sie den folgenden Befehl aus, um den Modus in INSPECT_AND_BLOCK zu ändern:

gcloud model-armor floorsettings update \
  --full-uri=projects/PROJECT_ID/locations/global/floorSetting \
  --vertex-ai-enforcement-type=INSPECT_AND_BLOCK

Führen Sie den folgenden Befehl aus, um die Gemini Enterprise Agent Platform aus den integrierten Diensten zu entfernen:

gcloud model-armor floorsettings update \
  --full-uri=projects/PROJECT_ID/locations/global/floorSetting \
  --remove-integrated-services=VERTEX_AI

Führen Sie den folgenden Befehl aus, um alle konfigurierten integrierten Dienste aus den Mindesteinstellungen zu entfernen:

gcloud model-armor floorsettings update \
  --full-uri=projects/PROJECT_ID/locations/global/floorSetting \
  --clear-integrated-services

Ersetzen Sie PROJECT_ID durch die ID des Projekts für die Mindesteinstellungen.

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"

Ersetzen Sie PROJECT_ID durch die ID des Projekts, das die Mindesteinstellungen enthält.

Nachdem Sie die Mindesteinstellungen konfiguriert haben, um die Bereinigung der Gemini Enterprise Agent Platform zu aktivieren, bereinigt Model Armor alle generateContent-API-Aufrufe an die Gemini-Endpunkte des Projekts mit den angegebenen Filtereinstellungen.

Das folgende Codebeispiel zeigt, wie die Methode generateContent verwendet wird.

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
}
}'

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID in Google Cloud .
  • LOCATION: Der Google Cloud -Standort des Gemini-Endpunkts. Informationen zu unterstützten Standorten finden Sie unter Standorte für die Model Armor API.

Das folgende Codebeispiel zeigt die Antwort der Methode 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"
}

Durchsetzungstyp für Mindesteinstellungen festlegen

Wenn Sie konfigurieren möchten, wie Model Armor Erkennungen verarbeitet, legen Sie den Durchsetzungstyp auf INSPECT oder INSPECT_AND_BLOCK fest. Das folgende Beispiel zeigt die Konfiguration der Mindestpreiseinstellungen mit dem Erzwingungstyp 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"

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID des Projekts für die Mindesteinstellungen.
  • LOCATION: der Standort der Mindesteinstellungen.

Inline-Durchsetzung mit einem API-Aufruf testen

Testen Sie die Integration, um die generateContent-Methode der Gemini Enterprise Agent Platform API aufzurufen. Verwenden Sie einen Prompt, der gegen die konfigurierten Mindesteinstellungen verstößt.

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
}
}'

Wenn die Integration wie erwartet funktioniert, gibt die API eine Antwort mit dem Feld blockReason zurück, das auf MODEL_ARMOR gesetzt ist, wenn Model Armor den Prompt als Verstoß identifiziert.

Hier ist eine Beispielantwort:

    {
    "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"
    }

Interaktions- und Vorrangregeln

Wenn Sie Model Armor mit der Gemini Enterprise Agent Platform verwenden, können Sie Sicherheitskonfigurationen auf mehreren Ebenen definieren. In solchen Fällen folgen Model Armor und die Gemini Enterprise Agent Platform einer bestimmten Prioritätsreihenfolge:

  1. Model Armor-Vorlagen: Alle Konfigurationen, die explizit in der API-Anfragekonfiguration angegeben sind, haben die höchste Priorität. Diese Einstellungen überschreiben alle anderen in Konflikt stehenden Konfigurationen für diese bestimmte Anfrage.

  2. Model Armor-Mindesteinstellungen: Wenn in der API-Anfrage keine überschreibende Konfiguration angegeben ist, gelten die Model Armor-Mindesteinstellungen.

  3. Sicherheitsfilter der Gemini Enterprise Agent Platform: Die standardmäßigen Sicherheitsfilter, die in die Gemini Enterprise Agent Platform integriert sind, haben die niedrigste Priorität. Sie gelten nur, wenn Sie keine spezifischen Model Armor-Vorlagen oder Mindesteinstellungen definieren.

Dieser hierarchische Ansatz bietet eine Kombination aus allgemeinen, unternehmensweiten Mindeststandards (mit Mindesteinstellungen) und der Steuerung pro Anfrage (mit Vorlagen). Dabei werden die integrierten Sicherheitsfunktionen der Gemini Enterprise Agent Platform als Grundlage verwendet.

Das Verhalten von Model Armor und den Sicherheitsfunktionen der Gemini Enterprise Agent Platform hängt davon ab, wie Sie die Konfiguration bereitstellen.

Ist eine Vorlage konfiguriert? Sind Sicherheitsfilter für die Gemini Enterprise Agent Platform konfiguriert? Sind Mindesteinstellungen konfiguriert? Verhalten
Ja Ja Beliebig Sie erhalten eine Fehlermeldung. Sie können nicht gleichzeitig eine Vorlagenkonfiguration und Sicherheitsfilter für die Gemini Enterprise Agent Platform in derselben Anfrage angeben.
Ja Nein Beliebig Model Armor wird mit den in modelArmorConfig angegebenen Vorlagen ausgeführt. Die Sicherheitsfilter der Gemini Enterprise Agent Platform werden ignoriert. Anforderungsvorlagen überschreiben Mindesteinstellungen.
Nein Ja Ja Beide werden ausgeführt. Model Armor führt Scans mit der Richtlinie für die Mindesteinstellung durch und die Gemini Enterprise Agent Platform wertet die Sicherheitsfilter aus. Es wird das restriktivste Ergebnis angewendet.
Nein Nein Ja Model Armor wird mit der aktiven Richtlinie für die Mindesteinstellung ausgeführt.
Nein Ja Nein Es werden nur die Sicherheitsfilter der Gemini Enterprise Agent Platform ausgewertet. Model Armor wird nicht aufgerufen.
Nein Nein Nein Weder Model Armor pro Anfrage noch die Sicherheitsfilter der Gemini Enterprise Agent Platform werden angewendet. Nur das Verhalten des Baseline-Modells ist aktiv.