Gemini Enterprise Agent Platform と統合する

Model Armor は、フロア設定またはテンプレートを使用して、Gemini Enterprise Agent Platform に直接統合できます。Model Armor は Gemini Enterprise Agent Platform と統合して、Gemini モデルに送信されるリクエストと Gemini モデルから受信するレスポンスの両方をスクリーニングします。フロア設定に違反するトラフィックを検査またはブロックします。

Model Armor は、Vertex AI の Gemini API 内で generateContent メソッドのプロンプトとレスポンスを保護します。 プロンプトとレスポンスのサニタイズ結果を可視化するには、Cloud Logging を有効にする必要があります。

Gemini Enterprise Agent Platform サービスへの直接 REST 呼び出しを保護するだけでなく、 Model Armor を使用して、 Google Gen AI SDK や Firebase AI Logic SDKなど、 Vertex AI の Gemini API へのアクセスを提供する他のインターフェースを保護することもできます。

始める前に

Model Armor ユーザーに Gemini Enterprise Agent Platform サービス アカウントに対するユーザー権限を付与します。

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 プロジェクト ID。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号。

フロア設定を構成する

フロア設定を使用して、Model Armor テンプレートの最小検出しきい値を構成します。これらの設定により、新規および変更済みのテンプレートがすべてフロア設定の要件を満たしていることを確認します。

Model Armor と 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 は、フロア設定のプロジェクトの 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 は、フロア設定を含むプロジェクトの ID に置き換えます。

フロア設定を構成して Gemini Enterprise Agent Platform サニタイズを有効にすると、Model Armor は、指定されたフィルタ設定を使用して、プロジェクトの Gemini エンドポイントに対するすべての generateContent API 呼び出しをサニタイズします。

次のコードサンプルは、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 '{
"contents": [
  {
      "role": "user",
      "parts": [
          {
              "text": ""
          }
      ]
  }
]
, "generationConfig": {
  "responseModalities": ["TEXT"]
  ,"temperature": 0.2
  ,"maxOutputTokens": 1024
  ,"topP": 0.8
}
}'

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION: Gemini エンドポイントの Google Cloud ロケーション。サポートされているロケーションについては、Model Armor API のロケーションをご覧ください。

次のコードサンプルは、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"
}

フロア設定の適用タイプを定義する

Model Armor が検出を処理する方法を構成するには、適用タイプを設定します。次の例は、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 は、フロア設定を含むプロジェクトの ID に置き換えます。

Model Armor テンプレートを構成する

Model Armor テンプレートを使用して、Model Armor を Gemini Enterprise Agent Platform と統合することもできます。テンプレートを使用すると、Model Armor がプロンプトとレスポンスをスクリーニングする方法を構成し、セキュリティ フィルタの構成を定義できます。

まず、テンプレートを作成し、これらのテンプレートを Gemini の generateContent メソッドで使用する必要があります。テンプレートの詳細については、Model Armor テンプレートの作成と管理をご覧ください。

Model Armor テンプレートを構成したら、generateContent メソッドを使用して Gemini API を呼び出すときに、テンプレート ID をパラメータとして渡します。Gemini Enterprise Agent Platform は、リクエストを Model Armor に転送して処理します。

次のコードサンプルは、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 '{
"contents": [
    {
        "role": "user",
        "parts": [
            {
                "text": "PROMPT"
            }
        ]
    }
]
, "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 プロジェクト ID。
  • LOCATION: Gemini エンドポイントの Google Cloud ロケーション。サポートされているロケーションは us-central1us-east4us-west1europe-west4 です。
  • PROMPT: テキスト プロンプト。
  • TEMPLATE_ID: Model Armor テンプレート ID。

次のコードサンプルは、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"
}

構成の優先度

Gemini Enterprise Agent Platform で Model Armor を使用する場合、複数のレベルで安全構成を定義できます。このような場合、Model Armor と Gemini Enterprise Agent Platform は特定の優先順位に従います。

  1. Model Armor テンプレート: API リクエストで定義された構成内で明示的に指定された構成が最も優先されます。これらの設定は、その特定のリクエストの他の競合する構成よりも優先されます。

  2. Model Armor のフロア設定: API リクエストでオーバーライド構成が指定されていない場合は、Model Armor のフロア設定が適用されます。

  3. Gemini Enterprise Agent Platform の安全フィルタ: Gemini Enterprise Agent Platform に組み込まれているデフォルトの安全フィルタの優先度は最も低くなります。特定の Model Armor テンプレートまたはフロア設定が定義されていない場合にのみ適用されます。

この階層型アプローチでは、Gemini Enterprise Agent Platform の固有の安全機能をベースラインとして活用しながら、広範な組織全体の最小基準(フロア設定を使用)とリクエストごとの制御(テンプレートを使用)を組み合わせることができます。

考慮事項

Model Armor を Gemini Enterprise Agent Platform と統合する場合は、次の点を考慮してください。

  • 匿名化テンプレートの Sensitive Data Protection の編集はサポートされていません。
  • ドキュメントを含むプロンプトとレスポンスのサニタイズはサポートされていません。
  • Gemini Enterprise Agent Platform は、次の条件で Model Armor のサニタイズ ステップをスキップし、リクエストの処理を続行します。

    • Gemini Enterprise Agent Platform が存在するリージョンで Model Armor を使用できない。
    • Model Armor に一時的にアクセスできない。
    • Model Armor 内でエラーが発生した。

    これらのインスタンスでは、プロンプトとレスポンスのサニタイズなしでリクエストが続行されるため、スクリーニングされていないプロンプトやレスポンスが公開されることがあります。

    統合は、接続が失敗した場合でもサービスが実行されるように設計されていますが、INSPECT_AND_BLOCK モードでは、権限や割り当ての問題などの構成エラーが表示されます。