与 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 服务器的集成仅支持基本的 Sensitive Data Protection。
  • 如果您想使用 Model Armor 基本版 Sensitive Data Protection 功能(搭配 Google 和 Google Cloud MCP 服务器)以及 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 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)的流量扫描和安全行为。

后续步骤