このドキュメントでは、Model Context Protocol(MCP)ツールとサーバーを公開する Google Cloudサービスにリクエストを送信する際に、Model Armor を構成してデータとコンテンツを保護する方法について説明します。
Model Armor は、MCP ツールの呼び出しとレスポンスをサニタイズすることで、エージェント型 AI アプリケーションのセキュリティを強化します。このプロセスにより、プロンプト インジェクションや機密データの漏洩などのリスクが軽減されます。
サポートされている MCP サーバー
サポートされている Google サーバーと Google Cloud MCP サーバーの一覧については、Model Armor をサポートするプロダクトをご覧ください。
サポートされていない Google サーバーと Google Cloud MCP サーバーを呼び出すと、Model Armor のフロア設定は適用されません。
フィルタ バージョン
Google および Google Cloud MCP サーバーとの統合では、Model Armor は v1 フィルタ バージョンを使用します。この設定はオーバーライドできません。
データ所在地に関する検討事項
MCP 対応サービスが法域をまたぐルーティングを使用しているか、データ所在地に準拠したルーティングを使用しているかによって、データ所在地の要件に影響する可能性があります。詳細については、Google とGoogle Cloud 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 向けの Streamable 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 フィルタを有効にした場合は、
http://testsafebrowsing.appspot.com/s/phishing.htmlなどのパラメータにフィッシング テスト URL を含めます。 - 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 サーバーの詳細を確認する。