Google と Google Cloud MCP サーバーと統合する

このドキュメントでは、Model Context Protocol(MCP)ツールとサーバーを公開するサービスにリクエストを送信する際に、データを保護し、コンテンツを保護するために Model Armor を構成する方法について説明します。 Google Cloud

Model Armor は、MCP ツールの呼び出しとレスポンスをサニタイズすることで、エージェント型 AI アプリケーションを保護します。このプロセスにより、プロンプト インジェクションや機密情報の開示などのリスクを軽減できます。

制限事項

Model Armor を Google と Google Cloud MCP サーバーに統合する場合は、次の制限事項を考慮してください。

  • Model Armor と Google と Google Cloud MCP サーバー の統合では、基本的な Sensitive Data Protection のみがサポートされます。
  • Google と Google Cloud MCP サーバーで Model Armor の基本的な Sensitive Data Protection を使用し、Gemini Enterprise Agent Platform で 高度な Sensitive Data Protection を使用する場合は、各サービスに 個別のプロジェクトを使用して、異なるフロア設定で適切に動作させる必要があります。
  • Model Armor は、特定の リージョンでのみ使用できます。Model Armor が使用できないリージョンで MCP 対応サービスを使用する場合、その MCP 対応サービスは、別のリージョンの Model Armor エンドポイントにリージョン間呼び出しを行い、リクエストを処理します。Model Armor はリージョン化されたサービスであり、管轄レベルでデータ所在地の要件に準拠しています。ただし、MCP 対応サービスから Model Armor へのリージョン間呼び出しは、データが MCP 対応サービスの運用リージョンの外部に転送される可能性があることを意味します。これにより、レイテンシに影響し、MCP 対応サービスのデータ所在地の問題が発生する可能性があります。使用する特定のサービスのデータ所在地への影響については、各 MCP 対応サービスのドキュメントをご覧ください。
  • Model Armor は、すべての Google と Google Cloud MCP サーバーと統合されているわけではありません。サポートされている Google と Google Cloud MCP サーバーの一覧については、Model Armor をサポートするプロダクトをご覧ください。サポートされていない Google と Google Cloud MCP サーバーを呼び出す場合、Model Armor のフロア設定は適用されません。

始める前に

  1. 使用する MCP サーバーを有効にします。詳細については、 MCP サーバーを有効または無効にするをご覧ください。
  2. プロジェクトで Model Armor API を有効にします。詳細については、API を有効にするをご覧ください。
  3. データ所在地の要件がある場合は、次の手順で Cloud Logging を有効にする前に、ログシンクを構成して、ログを準拠ストレージ ロケーションにルーティングする必要があります。ログシンクを構成すると、Model Armor ログが適切な管轄区域のバケットに保存されます。詳細については、ログをリージョン化するをご覧ください。

サポートされている MCP ペイロードとサポートされていない MCP ペイロード

Model Armor は、次の MCP ペイロードのみをサニタイズします。

  • tools/call リクエストとレスポンス
  • prompts/get リクエストとレスポンス
  • MCP ツールの実行エラー (悪意のある MCP ツールの作成者によるプロンプト インジェクションのターゲット)

Model Armor では、サニタイズなしで次のペイロードが許可されます。

  • tools/list
  • resources/*
  • 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 のロギングが有効になっていることを前提としています。

  1. Model Armor 保護を有効にしたプロジェクトで、パラメータの 1 つに有害な値を持つ MCP ツールを呼び出します。 たとえば、悪意のある URI フィルタを有効にした場合は、フィッシング テスト URL(http://testsafebrowsing.appspot.com/s/phishing.html など)をパラメータに含めます。
  2. MCP ツールの呼び出しがブロックされていることを確認します。MCP サーバーとクライアントによっては、エラーまたは空のレスポンスが返されることがあります。これは、リクエストがセキュリティ ポリシーによってブロックされたことを示します。
  3. コンソールで、[**ログ エクスプローラ**] ページに移動します。 Google Cloud

    [ログ エクスプローラ] に移動

  4. [クエリ] ペインに、次のクエリを入力します。

    resource.type="model-armor_managed_service"
    logName="projects/PROJECT_ID/logs/modelarmor.googleapis.com%2Fdetection"
    

    PROJECT_ID は、実際のプロジェクト ID に置き換えます。

  5. [クエリを実行] をクリックします。

  6. [クエリ結果] セクションで結果を確認します。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 だけでなく、統合されたすべてのサービスでトラフィック スキャンと安全性の動作に影響する可能性があります。

次のステップ