本文档介绍了如何配置 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 下限设置将不适用。
准备工作
- 启用要使用的 MCP 服务器。如需了解详情,请参阅启用或停用 MCP 服务器。
- 在项目中启用 Model Armor API。如需了解详情,请参阅启用 API。
- 如果您有数据驻留要求,则必须先配置日志接收器以将日志路由到合规的存储位置,然后再在后续步骤中启用 Cloud Logging。配置日志接收器有助于确保 Model Armor 日志存储在相应管辖区的存储分区中。如需了解详情,请参阅区域化存储日志。
支持和不支持的 MCP 载荷
Model Armor 仅清理以下 MCP 载荷:
tools/call请求和响应prompts/get请求和响应- MCP 工具执行错误(恶意 MCP 工具作者进行提示注入的目标)
Model Armor 允许以下载荷在不进行清理的情况下通过:
tools/listresources/*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 启用了日志记录。
- 在启用了 Model Armor 保护的项目中,调用某个 MCP 工具,并在其某个参数中包含有害值。例如,如果您启用了“恶意 URI”过滤器,请在参数(例如
http://testsafebrowsing.appspot.com/s/phishing.html)中添加钓鱼式攻击测试网址。 - 验证 MCP 工具调用是否被阻止。根据 MCP 服务器和客户端的不同,您可能会收到错误或空响应,表明请求已被安全政策屏蔽。
在 Google Cloud 控制台中,前往 Logs Explorer 页面。
在查询窗格中,输入以下查询:
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 服务器。