このドキュメントでは、Model Context Protocol(MCP)ツールとサーバーを公開するサービスにリクエストを送信する際に、データを保護し、コンテンツを保護するように Model Armor を構成する方法について説明します。 Google Cloud
Model Armor は、MCP ツールの呼び出しとレスポンスをサニタイズすることで、エージェント型 AI アプリケーションを保護します。このプロセスにより、プロンプト インジェクションや機密情報の開示などのリスクを軽減できます。
サポートされている MCP サーバー
サポートされている Google サーバーと Google Cloud MCP サーバーの一覧については、 Model Armor をサポートするプロダクトをご覧ください。
サポートされていない Google サーバーと MCP サーバーを呼び出す場合、Model Armor のフロア設定は適用されません。 Google Cloud
データ所在地に関する検討事項
法域は、データが処理および保存される地理的リージョンと法的境界を定義します。これは、データ所在地にとって非常に重要です。規制遵守のために、データが選択したロケーション内に留まるようにします。Model Armor はリージョン化されたサービスですが、Google サーバーと MCP サーバーでサポートされているサービスが動作するすべてのリージョンで利用できるわけではありません。 Google Cloud Google Cloud Model Armor が存在しない法域で MCP 対応サービスに対して Model Armor を 有効にすると、データが別の法域の Model Armor エンドポイントに送信され、セキュリティ スキャンが行われる可能性があります。これらの法域をまたぐ呼び出しは、MCP 対応サービスのデータ所在地の要件に影響する可能性があります。法域をまたぐ呼び出しが使用する特定のサービスのデータ所在地に与える影響については、 各 MCP 対応サービスの ドキュメントをご覧ください。始める前に
- MCP を介してアクセスする API を有効にします。詳細については、 サポートされているプロダクトを有効にするをご覧ください。
- プロジェクトで Model Armor API を有効にします。詳細については、API を有効にするをご覧ください。
- データ所在地の要件がある場合は、次の手順で Cloud Logging を有効にする前に、ログシンクを構成して、ログを準拠ストレージ ロケーションにルーティングする必要があります。ログシンクを構成すると、Model Armor ログが適切な法域のバケットに保存されます。詳細については、ログをリージョン化するをご覧ください。
サポートされている MCP ペイロードとサポートされていない MCP ペイロード
Model Armor は、次の MCP ペイロードのみをサニタイズします。
tools/callリクエストとレスポンスprompts/getリクエストとレスポンス- MCP ツールの実行エラー (悪意のある MCP ツール作成者によるプロンプト インジェクションのターゲット)
Model Armor では、サニタイズなしで次のペイロードを使用できます。
tools/listresources/*notifications/*- MCP 用のストリーミング可能な HTTP/SSE
- MCP プロトコル エラー(ツール実行エラー以外のすべてのエラーなど)
Google サーバーと Google Cloud リモート MCP サーバーの保護を構成する
MCP ツールの呼び出しとレスポンスを保護するには、Model Armor のフロア設定を使用します。フロア設定は、プロジェクト全体に適用される最小限のセキュリティ フィルタを定義します。この構成では、プロジェクト内のすべての MCP ツールの呼び出しとレスポンスに一貫したフィルタセットが適用されます。
MCP サニタイズを有効にして、Model Armor のフロア設定を行います。詳細については、Model Armor のフロア 設定を構成するをご覧ください。
次のコマンド例をご覧ください。
gcloud model-armor floorsettings update \ --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \ --enable-floor-setting-enforcement=TRUE \ --add-integrated-services=GOOGLE_MCP_SERVER \ --google-mcp-server-enforcement-type=INSPECT_AND_BLOCK \ --enable-google-mcp-server-cloud-logging \ --malicious-uri-filter-settings-enforcement=ENABLED \ --add-rai-settings-filters='[{"confidenceLevel": "MEDIUM_AND_ABOVE", "filterType": "DANGEROUS"}]'
PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。
次の設定に注意してください。
INSPECT_AND_BLOCK: Google MCP サーバーのコンテンツを検査し、フィルタに一致するプロンプトとレスポンスをブロックする適用タイプ。ENABLED: フィルタまたは 適用を有効にする設定。MEDIUM_AND_ABOVE: 責任ある AI - 危険フィルタ設定の信頼度。この設定は変更できますが、 値を小さくすると偽陽性が増える可能性があります。詳細については、Model Armor の信頼レベルをご覧ください。
Model Armor の保護を確認する
MCP サーバーの Model Armor 保護を構成したら、ブロックする必要があるコンテンツを含むリクエストを送信し、Model Armor がブロックしていることを確認して、動作していることを確認できます。次の 手順では、Google サーバーと Google Cloud MCP サーバーの保護を構成するで説明されているように、 Model Armor のロギングを有効にしていることを前提としています。
- Model Armor 保護を有効にしたプロジェクトで、パラメータの 1 つに有害な値を持つ MCP ツールを呼び出します。
たとえば、悪意のある URI フィルタを有効にした場合は、フィッシング テスト URL(
http://testsafebrowsing.appspot.com/s/phishing.htmlなど)をパラメータに含めます。 - MCP ツールの呼び出しがブロックされていることを確認します。MCP サーバーとクライアントによっては、エラーまたは空のレスポンスが返されることがあります。これは、リクエストがセキュリティ ポリシーによってブロックされたことを示します。
コンソールで、[**ログ エクスプローラ**] ページに移動します。 Google Cloud
[クエリ] ペインに、次のクエリを入力します。
resource.type="model-armor_managed_service" logName="projects/PROJECT_ID/logs/modelarmor.googleapis.com%2Fdetection"PROJECT_IDは、実際のプロジェクト ID に置き換えます。[クエリを実行] をクリックします。
[クエリ結果] セクションで結果を確認します。Model Armor がリクエストをブロックした場合、検出された脅威の詳細(
MALICIOUS_URI_DETECTEDなど)を示すログエントリが表示されます。
Model Armor による MCP トラフィックのスキャンを無効にする
Model Armor がプロジェクトのフロア設定に基づいて Google MCP サーバーとの間のトラフィックを自動的にスキャンしないようにするには、次のコマンドを実行します。
gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--remove-integrated-services=GOOGLE_MCP_SERVER
PROJECT_ID は、実際の Google Cloud プロジェクト
ID に置き換えます。Model Armor は、このプロジェクトのフロア設定で定義されたルールを Google MCP サーバーのトラフィックに自動的に適用しません。
Model Armor のフロア設定と一般的な構成は、MCP だけでなく、他のサービスにも影響する可能性があります。Model Armor は Gemini Enterprise Agent Platform などのサービスと統合されているため、フロア設定を変更すると、MCP だけでなく、統合されたすべてのサービスでトラフィック スキャンと安全性の動作に影響する可能性があります。
次のステップ
- Model Armor について確認する。
- Google Cloud MCP サーバーの詳細を確認する。