將 Model Armor 與 Google 和 Google Cloud MCP 伺服器整合

本文說明如何設定 Model Armor,在傳送要求至公開 Model Context Protocol (MCP) 工具和伺服器的服務時,保護資料和確保內容安全。 Google Cloud

Model Armor 可清除 MCP 工具呼叫和回應,確保代理式 AI 應用程式安全無虞。這個程序可降低提示詞注入和私密/機密資料揭露等風險。

支援的 MCP 伺服器

如需支援的 Google 和 MCP 伺服器清單,請參閱「支援 Model Armor 的產品」。 Google Cloud

如果您呼叫不支援的 Google 和 Google Cloud MCP 伺服器,系統不會套用 Model Armor 底限設定。

資料落地考量事項

視 MCP 支援的服務使用跨管轄區路徑符合資料落地規定的路徑而定,您的資料落地規定可能會受到影響。詳情請參閱「與 Google 和 MCP 伺服器整合」。Google Cloud

事前準備

  1. 啟用要透過 MCP 存取的 API。詳情請參閱「啟用支援的產品」。
  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 和遠端 MCP 伺服器的防護功能 Google Cloud

如要保護 MCP 工具呼叫和回應,可以使用 Model Armor 底限設定。底限設定會定義適用於整個專案的最低安全性篩選條件。這項設定會對專案中的所有 MCP 工具呼叫和回覆套用一致的篩選器。

設定 Model Armor 底限設定,並啟用 MCP 清理功能。詳情請參閱「設定 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 和 MCP 伺服器的防護機制 Google Cloud 」一文所述,為 Model Armor 啟用記錄功能。

  1. 在啟用 Model Armor 保護機制的專案中,呼叫 MCP 工具,並在其中一個參數中提供有害值。舉例來說,如果您已啟用惡意 URI 篩選器,請在參數中加入網路釣魚測試網址,例如 http://testsafebrowsing.appspot.com/s/phishing.html
  2. 確認 MCP 工具呼叫遭到封鎖。視 MCP 伺服器和用戶端而定,您可能會收到錯誤或空白回應,表示要求遭到安全政策封鎖。
  3. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往 Logs Explorer

  4. 在「Query」(查詢) 窗格中,輸入下列查詢:

    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) 的流量掃描和安全行為。

後續步驟