このドキュメントでは、Model Context Protocol(MCP)ツールとサーバーを公開する Google Cloudサービスにリクエストを送信するときに、データを保護し、コンテンツを保護するために Model Armor を構成する方法について説明します。
Model Armor は、MCP ツール呼び出しとレスポンスをサニタイズすることで、エージェント AI アプリケーションのセキュリティを強化します。このプロセスにより、プロンプト インジェクションや機密データの漏洩などのリスクを軽減できます。
始める前に
- 使用する MCP サーバーを有効にします。詳細については、MCP サーバーを有効または無効にするをご覧ください。
- プロジェクトで Model Armor API を有効にします。詳細については、API を有効にするをご覧ください。
- データ所在地の要件がある場合は、次の手順で Cloud Logging を有効にする前に、ログを準拠したストレージの場所に転送するようにログシンクを構成する必要があります。ログシンクを構成すると、Model Armor ログが適切なリージョン バケットに保存されます。詳細については、ログをリージョン化するをご覧ください。
Google と Google Cloud リモート MCP サーバーの保護を構成する
MCP ツールの呼び出しとレスポンスを保護するには、Model Armor のフロア設定を作成し、プロジェクトの MCP コンテンツ セキュリティを有効にします。フロア設定は、プロジェクト全体に適用される最小限のセキュリティ フィルタを定義します。この構成では、プロジェクト内のすべての 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": "HIGH", "filterType": "DANGEROUS"}]'
PROJECT_IDは、実際の Google Cloud プロジェクト ID に置き換えます。次の設定に注意してください。
INSPECT_AND_BLOCK: Google MCP サーバーのコンテンツを検査し、フィルタに一致するプロンプトとレスポンスをブロックする適用タイプ。ENABLED: フィルタまたは適用を有効にする設定。HIGH: 責任ある AI - 危険フィルタ設定の信頼度。この設定は変更できますが、値を小さくすると偽陽性が多くなる可能性があります。詳細については、フロア設定を構成するをご覧ください。
プロジェクトで、リモート MCP サーバーの Model Armor 保護を有効にします。
gcloud beta services mcp content-security add modelarmor.googleapis.com --project=PROJECT_ID
PROJECT_IDは、実際の Google Cloudプロジェクト ID に置き換えます。このコマンドを実行すると、呼び出しとレスポンスの送信元に関係なく、Model Armor はプロジェクトのすべての MCP ツール呼び出しとレスポンスをサニタイズします。Google MCP トラフィックが Model Armor に送信されていることを確認するには、次のコマンドを実行します。
gcloud beta services mcp content-security get --project=PROJECT_IDPROJECT_IDは、 Google Cloud プロジェクト ID に置き換えます。
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 を無効にする
Google Cloud プロジェクトで Model Armor を無効にするには、次のコマンドを実行します。
gcloud beta services mcp content-security remove modelarmor.googleapis.com \
--project=PROJECT_ID
PROJECT_ID は、 Google Cloud プロジェクト ID に置き換えます。
指定されたプロジェクトでは、Model Armor による Google MCP トラフィックのスキャンは行われません。
Model Armor による MCP トラフィックのスキャンを無効にする
プロジェクトで Model Armor を使用し、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 はプロジェクト内の MCP トラフィックをスキャンしません。
次のステップ
- Model Armor について確認する。
- Google Cloud MCP サーバーの詳細を確認する。