与 Google 和 Google Cloud MCP 服务器集成

本文档介绍了如何配置 Model Armor,以便在向公开 Model Context Protocol (MCP) 工具和服务器的 Google Cloud服务发送请求时,帮助保护您的数据和确保内容安全。

Model Armor 可通过清理 MCP 工具调用和响应来帮助保护您的智能体 AI 应用。此流程可降低提示注入和敏感数据披露等风险。

限制

将 Model Armor 与 Google 和 Google Cloud MCP 服务器集成时,请考虑以下限制。

  • Model Armor 与 Google 和 Google Cloud MCP 服务器的集成仅支持基本敏感数据保护。
  • 如果您想将 Model Armor 基本敏感数据保护功能与 Google 和 Google Cloud MCP 服务器搭配使用,并将 Gemini Enterprise Agent Platform 与高级敏感数据保护功能搭配使用,则必须为每项服务使用单独的项目,以便根据不同的最低限度设置相应地运行。
  • 管辖区是指处理和存储数据的地理区域和法律边界。这对于数据驻留至关重要,可确保数据保留在所选位置内,以满足监管合规性要求。Model Armor 是一项区域化服务,但并非在所有 Google Cloud 区域都可用,而 Google 和 Google Cloud MCP 服务器支持的服务可在这些区域运行。如果您在不支持 Model Armor 的司法管辖区内为受 MCP 支持的服务启用 Model Armor,您的数据可能会被发送到其他司法管辖区内的 Model Armor 端点进行安全检查。这些跨司法管辖区的调用可能会影响 MCP 支持的服务的数据驻留要求。如需了解跨管辖区调用对您所用特定服务的数据驻留有何影响,请参阅每项 MCP 支持的服务的文档。
  • Model Armor 未与所有 Google 和 Google CloudMCP 服务器集成。如需查看支持的 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 载荷

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:Responsible AI - Dangerous 过滤设置的置信度。您可以修改此设置,但较低的值可能会导致出现更多假正例。如需了解详情,请参阅 Model Armor 置信度级别

验证 Model Armor 保护

为 MCP 服务器配置 Model Armor 保护后,您可以发送包含应被屏蔽的内容的请求,并检查 Model Armor 是否屏蔽了该请求,从而验证 Model Armor 是否正常运行。以下步骤假定您已按照为 Google 和 Google Cloud MCP 服务器配置保护中的说明为 Model Armor 启用了日志记录。

  1. 在启用了 Model Armor 保护的项目中,调用一个 MCP 工具,并在其某个参数中包含有害值。 例如,如果您启用了“恶意 URI”过滤条件,请在参数(例如 http://testsafebrowsing.appspot.com/s/phishing.html)中添加钓鱼式攻击测试网址。
  2. 验证 MCP 工具调用是否被阻止。根据 MCP 服务器和客户端的不同,您可能会收到错误或空响应,表明请求已被安全政策屏蔽。
  3. 在 Google Cloud 控制台中,前往 Logs Explorer 页面。

    转到日志浏览器

  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)的数据流量扫描和安全行为。

后续步骤