Model Armor を使用すると、AI エージェントにフィルタリング ロジックを直接実装しなくても、AI エージェントがセキュリティとガバナンスの基準に準拠していることを確認できます。Agent Gateway で Model Armor を構成すると、Model Armor はゲートウェイを通過するすべてのプロンプトとレスポンスを検査して、組織のコンテンツ セキュリティ ガードレールを適用します。この機能を使用すると、ゲートウェイに則って管理されているすべてのエージェントにコンテンツ セキュリティ ガードレールを一貫して適用できます。Model Armor は、プロンプト インジェクション、ジェイルブレイクの試み、機密情報の漏洩、有害なコンテンツの生成などのリスクを軽減するのに役立ちます。詳細については、Model Armor フィルタをご覧ください。
Model Armor テンプレート
ゲートウェイで Model Armor を構成するには、AI エージェントが受信して返すプロンプトとレスポンスをスクリーニングする方法を指定するテンプレートを作成します。テンプレートには、複数の安全性とセキュリティのカテゴリ用にカスタマイズされたフィルタと上限値が用意されています。詳細については、Model Armor テンプレートをご覧ください。
Model Armor は、Agent Gateway によって管理される通信経路にスクリーニング機能を直接組み込みます。コンテンツを Model Armor に渡すことで、ゲートウェイはコンテンツ セキュリティ テンプレートを適用します。テンプレートでは、テンプレートに違反するコンテンツを削除またはブロックするように Model Armor を構成できます。
上り(内向き)トラフィックと下り(外向き)トラフィック
Model Armor は、Agent Gateway を介して次のトラフィック フローを保護します。
クライアントからエージェントへ(エージェント(内向き))
Model Armor がクライアントからエージェントへのトラフィック内のリクエストとレスポンスの両方を評価するために使用するテンプレートを定義します。単一のテンプレートを両方向に適用することも、方向ごとに異なるテンプレートを構成することもできます。
Model Armor は、次のスクリーニング時にテンプレートに従います。
- クライアント(エンドユーザーまたは呼び出しアプリケーション)から AI エージェントへの受信リクエスト
- AI エージェントからクライアントへのレスポンス発信
クライアントがエージェントにプロンプトを送信すると、Agent Gateway はトラフィックをインターセプトし、ペイロードを Model Armor に送信してサニタイズします。Model Armor が ALLOW 判定を発行すると、Agent Gateway は AI エージェントにプロンプトを送信します。Model Armor が BLOCK 判定を発行すると、クライアントはエラーを受け取り、AI エージェントに到達する前にフローが終了します。
AI エージェントがリクエストを処理してレスポンスを生成すると、Agent Gateway はクライアントに到達する前に送信ストリームをインターセプトします。Model Armor はレスポンスを評価し、判定を発行します。判定に基づいて、Agent Gateway はレスポンスを許可するか、完全にブロックします。
エージェントから任意の宛先へ(エージェント(外向き))
Model Armor が Agent-to-Anywhere トラフィックのリクエストとレスポンスの評価に使用するテンプレートを定義します。単一のテンプレートを両方向に適用することも、方向ごとに異なるテンプレートを構成することもできます。
Model Armor は、AI エージェントと外部システム間の通信をスクリーニングする際に、次のテンプレートに従います。
- 外部の大規模言語モデル(LLM)
- サードパーティの AI エージェント
- Model Context Protocol(MCP)サーバー
AI エージェントが外部システムと通信すると、Agent Gateway は下り(外向き)トラフィックをインターセプトし、Model Armor を呼び出します。Model Armor は、設定した下り(外向き)テンプレートに従ってペイロードを評価します。
送信データが安全ポリシーに違反している場合、Model Armor は BLOCK 判定を発行します。Agent Gateway は、有害なデータやセンシティブ データが LLM、ツール、外部 AI エージェントに到達しないように、接続を終了します。
始める前に
Model Armor API が有効になっていない場合は、有効にします。
API を有効にするために必要なロール
API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法を確認する。
必要なロール
Model Armor テンプレートの作成に必要な権限を取得するには、プロジェクトに対する Model Armor 管理者 (roles/modelarmor.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Agent Gateway の操作に必要なロールについては、Agent Gateway のドキュメントの必要なロールをご覧ください。
ゲートウェイを通過するサポートされているペイロードとサポートされていないペイロードについては、このドキュメントのサポートされているペイロードとサポートされていないペイロードをご覧ください。
ゲートウェイで Model Armor を構成する
ゲートウェイで Model Armor を構成する手順は次のとおりです。
- Model Armor テンプレートを作成するプロジェクトで Model Armor API を有効にします。
ゲートウェイを追加する予定のリージョンに、1 つ以上の Model Armor テンプレートを作成します。上り(内向き)トラフィックと下り(外向き)トラフィックの両方に同じテンプレートを使用できます。
テンプレート名をメモします。Cloud de Confiance コンソールでテンプレートの名前をコピーするには、テンプレートの詳細を表示し、テンプレート名の横にある [クリップボードにコピー] をクリックします。
Model Armor テンプレートが保存されているリージョンと同じリージョンに Agent Gateway を設定します。[クライアントからエージェントへの(上り)ゲートウェイ] で、上り(内向き)トラフィック用に作成した Model Armor テンプレートを指定します。エージェントから任意の場所への(下り)ゲートウェイには、下り(外向き)トラフィック用に作成した Model Armor テンプレートを指定します。両方のトラフィック フローに同じテンプレートを使用できます。
適切なサービス エージェントに必要な IAM ロールを付与します。
クライアントからエージェントへ(内向き): AI Platform Reasoning Engine サービス エージェントに次のロールを付与します。
AI エージェントを含むプロジェクトの Model Armor Callout ユーザー(
roles/modelarmor.calloutUser)ロール。Model Armor テンプレートを含むプロジェクトの Model Armor ユーザー(
roles/modelarmor.user)ロール。
gcloud projects add-iam-policy-binding AGENT_RUNTIME_PROJECT_ID \ --member=serviceAccount:service-AGENT_RUNTIME_PROJECT_NUMBER@gcp-sa-aiplatform-re.s3ns-system.iam.gserviceaccount.com \ --role=roles/modelarmor.calloutUser gcloud projects add-iam-policy-binding MODEL_ARMOR_PROJECT_ID \ --member=serviceAccount:service-AGENT_RUNTIME_PROJECT_NUMBER@gcp-sa-aiplatform-re.s3ns-system.iam.gserviceaccount.com \ --role=roles/modelarmor.user次のように置き換えます。
AGENT_RUNTIME_PROJECT_ID: エージェントを作成したプロジェクトのプロジェクト ID。AGENT_RUNTIME_PROJECT_NUMBER: エージェントを作成したプロジェクトのプロジェクト番号。MODEL_ARMOR_PROJECT_ID: Model Armor テンプレートを含むプロジェクトのプロジェクト ID。
エージェントから Anywhere へのアクセス(下り): Service Extensions サービス エージェントに次のロールを付与します。
- ゲートウェイを含むプロジェクトの Model Armor Callout ユーザー(
roles/modelarmor.calloutUser)ロールと Service Usage コンシューマー(roles/serviceusage.serviceUsageConsumer)ロール。 - Model Armor テンプレートを含むプロジェクトの Model Armor ユーザー(
roles/modelarmor.user)ロール。
gcloud projects add-iam-policy-binding GATEWAY_PROJECT_ID \ --member=serviceAccount:service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.s3ns-system.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.s3ns-system.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.s3ns-system.iam.gserviceaccount.com \ --role=roles/modelarmor.user次のように置き換えます。
GATEWAY_PROJECT_ID: ゲートウェイを作成したプロジェクトのプロジェクト ID。GATEWAY_PROJECT_NUMBER: ゲートウェイを作成したプロジェクトのプロジェクト番号。MODEL_ARMOR_PROJECT_ID: Model Armor テンプレートを含むプロジェクトのプロジェクト ID。
手順については、Model Armor に認可を委任するをご覧ください。
- ゲートウェイを含むプロジェクトの Model Armor Callout ユーザー(
ロールを付与する方法の一般的な情報については、単一の IAM ロールを付与するをご覧ください。
省略可: デプロイ前テンプレート検証チェック
テンプレートをゲートウェイにデプロイする前に、デプロイ前のチェックを実行して、テンプレート構成でセキュリティ ポリシーが正しく適用されていることを確認できます。
一連のテスト プロンプトを使用して sanitizeUserPrompt メソッドに直接クエリを実行することで、テンプレートを検証できます。このデプロイ前のチェックの実行方法と、検証済みのテスト プロンプトのリストについては、テンプレート構成を検証するをご覧ください。
リクエストとレスポンスに含まれるセンシティブ データを秘匿化する
Model Armor に、ペイロードから国民識別番号や電話番号などのセンシティブ データを秘匿化するように指示できます。この機能を使用する手順は次のとおりです。
Model Armor テンプレートで高度な Sensitive Data Protection の設定を行い、匿名化テンプレートを含めます。
Model Armor テンプレートの適用タイプを
INSPECT_AND_BLOCKに設定します。
INSPECT_AND_BLOCK 適用タイプを使用すると、次のいずれかが発生します。
ペイロードが Sensitive Data Protection 検出機能のみに違反している場合、Model Armor は、高度な Sensitive Data Protection の設定と匿名化テンプレートに従ってペイロードを秘匿化します。
ペイロードが複数の検出器に違反している場合、Model Armor は編集を行わず、ペイロード全体をブロックします。
INSPECT_AND_BLOCK ではなく INSPECT_ONLY 適用タイプを使用すると、Model Armor はペイロードを編集しません。
適用タイプ(INSPECT_ONLY または INSPECT_AND_BLOCK)に関係なく、Model Armor ログは、高度な Sensitive Data Protection の設定と匿名化テンプレートに従って秘匿化されます。
Model Armor 検出機能(フィルタとも呼ばれます)の一覧については、Model Armor フィルタをご覧ください。
サポートされているペイロードとサポートされていないペイロード
このセクションでは、Model Armor がサニタイズするペイロードのタイプを示します。
クライアントからエージェントへの(内向き)トラフィック
ADK プロトコルを使用するクライアントからエージェントへの(上り)トラフィックの場合、Model Armor は、Agent Development Kit(ADK)を使用して構築され、Vertex AI Agent Engine で実行されているエージェントの reasoningEngines.streamQuery リクエストとレスポンスのみをサニタイズします。
他のすべての ReasoningEngine ペイロードと ReasoningEngine エラー レスポンスは Model Armor に送信されません。ADK 以外のペイロード(Langchain ペイロードなど)も Model Armor に送信されません。
エージェントから任意の宛先へ(外向き)トラフィック
Agent-to-Anywhere(下り)トラフィックでは、次のペイロードがサポートされています。
A2A ペイロード
Model Armor は、A2A v1 プロトコルの次のペイロードのみをサニタイズします。
- メッセージ送信オペレーション
- エージェント カード
- Get Extended Agent Card オペレーション
- JSON-RPC プロトコル バインディング
- HTTP+JSON/REST プロトコル バインディング
Model Armor では、次の A2A ペイロードをサニタイズせずに許可します。
- v1 より前の A2A バージョンのペイロード
SendStreamingMessageGetTaskListTasksCancelTaskSubscribeToTaskTaskPushNotificationConfigの CRUD メソッド- A2A gRPC プロトコル バインディング(ワイヤ上の protobuf)を使用するペイロード
- A2A エラー ペイロード
MCP ペイロード
Model Armor は、次の MCP ペイロードのみをサニタイズします。
tools/callリクエストとレスポンスprompts/getリクエストとレスポンス- MCP ツールの実行エラー (悪意のある MCP ツールの作成者によるプロンプト インジェクションのターゲット)
Model Armor では、次のペイロードはサニタイズなしで許可されます。
tools/listresources/*notifications/*- MCP 用の Streamable HTTP/SSE
- MCP プロトコル エラー(ツール実行エラー以外のすべてのエラーなど)
外部 LLM ペイロード
Model Armor は、OpenAI API プロトコル(下り)の次のペイロードのみをサニタイズします。これには、openai.com の GPT モデルと、OpenAI API 互換の LLM サーバー(vLLM など)を介した他のモデルが含まれます。ここに記載されていないペイロードは、サニタイズなしで許可されます。
- チャットの補完: 作成、削除、取得、一覧表示、更新(非ストリーミング バリアントのみ)
- チャット メッセージを取得する
- レスポンス: 作成、取得、削除(非ストリーミング バリアントのみ)
- OpenAI API エラー(vLLM のバリアントを含む)
- 以前の補完
- 以前のアシスタント: 作成、削除、一覧表示、変更、取得
- 以前のメッセージ: 作成、削除、一覧表示、変更、取得
- 以前のスレッド: 作成、削除、変更、取得
- エンベディング: 作成
ドキュメントのスクリーニング
この統合では、ドキュメントやファイル アップロード(PDF など)を含むプロンプトとレスポンスのサニタイズはサポートされていません。ドキュメントをスクリーニングするには、Model Armor REST API を直接呼び出します。詳細については、Model Armor のドキュメントのドキュメント スクリーニングをご覧ください。
割り当てとシステム上限
割り当ては、Model Armor テンプレートが存在するプロジェクトで使用されます。ゲートウェイが別のプロジェクトにある場合、ExternalProcessor 割り当てはゲートウェイ プロジェクトでも消費されます。
Model Armor を他のサービスで使用する場合に適用される割り当ての詳細については、割り当てを管理するをご覧ください。
入力サイズやトークン上限など、Model Armor の割り当てとシステムの上限に関する一般的な情報については、Model Armor のドキュメントの割り当てとシステムの上限をご覧ください。