使用Amazon Bedrock AgentCore構建多租戶代理
本文探討了使用Amazon Bedrock AgentCore構建多租戶代理應用程式的設計考慮因素,包括租戶隔離模式、身份管理、資料隔離和成本歸屬等架構挑戰。
軟體即服務(SaaS)提供商在構建多租戶代理應用程式時,面臨著超越安全、治理和響應準確性等典型問題的架構挑戰,包括租戶隔離、租戶身份、租戶可觀測性、資料隔離、成本歸屬和嘈雜鄰居緩解。從工作演示到生產部署的差距需要為多租戶環境構建的基礎設施。
Amazon Bedrock AgentCore是一個託管的無伺服器服務,用於在AWS上構建、部署和安全運營代理應用程式。它提供了部署代理和託管MCP伺服器的構造,內建了對身份管理、記憶體、可觀測性和評估的支援,所有這些都旨在使多租戶代理架構易於構建。
本文是該系列部落格的第一部分,探討了使用Amazon Bedrock AgentCore構建多租戶代理應用程式的設計考慮因素以及解決SaaS架構挑戰所需的框架。
構建安全的多租戶代理應用程式需要跨關鍵元件的仔細架構決策。每個元件必須在租戶隔離、運營效率和成本最佳化之間取得平衡,同時保持安全和合規標準。這些設計考慮圍繞三種租戶隔離模式:Silo、Pool和Bridge,分級策略是選擇模式時的關鍵考慮因素。
- 代理執行時部署:專用與共享。多租戶代理架構中的一個關鍵決策是代理執行時相對於租戶的配置方式。每個租戶的專用執行時例項化一個單獨的執行環境,提供最強的嘈雜鄰居保護和簡化的合規審計。共享執行時將所有租戶的代理託管在同一個容器映象和程序池中,降低基礎設施成本和運營開銷,但需要嚴格的程序內租戶上下文傳播。Amazon Bedrock AgentCore執行時透過基於會話隔離的微VM計算解決了這一矛盾,每個會話攜帶自己的持久檔案系統,減少跨會話資料洩露的風險。
- 共享模型與分等級模型與微調模型。共享基礎模型(FM)是大多數多租戶部署的推薦起點,提供單一模型維護的簡化運營。按租戶等級選擇模型允許靈活性和平衡成本、效能和準確性。租戶特定的微調模型對於需要特定術語、法規合規或效能SLA的用例是必要的,但會引入更高的運營複雜性。混合方法有助於平衡成本效率和定製需求。
- 工作流:Silo、Pool和Bridge模式。多租戶代理應用程式需要靈活的工作流管理,其中每個代理根據租戶要求和業務邏輯執行不同的步驟序列。Silo模式使用專用的租戶特定技能,提供最大定製和完全獨立性。Pool模式使用共享的代理技能。Bridge模式將通用工作流步驟嵌入共享的代理技能,這些技能在執行時呼叫特定於租戶的技能,以實現業務關鍵邏輯。
- 多租戶RAG。檢索增強生成(RAG)系統需要資料隔離決策。Silo模式使用每個租戶專用的向量資料庫,提供最大安全性。Pool模式使用共享向量資料庫和基於後設資料的租戶過濾,支援服務許多中小型租戶的SaaS平臺的成本高效運營。Amazon Bedrock知識庫提供完全託管的RAG能力,支援建立隔離或共享的向量資料庫。
- 租戶上下文、代表行為模式與令牌傳播。多租戶身份管理需要在服務鏈中仔細處理租戶上下文。與確定性的軟體API不同,AI代理是非確定性的且可能自主,這使得安全考慮有所不同。建議使用代表行為(委託)模式,實現真正的委託,令牌在每個服務邊界被轉換,具有範圍限制的憑證。AgentCore身份中的代表令牌交換使代理能夠代表經過身份驗證的使用者訪問受保護的資源。
- MCP工具和API的細粒度訪問控制。多租戶代理應用程式需要使用策略限制MCP伺服器訪問,在工具呼叫層進行細粒度訪問控制,並在資料訪問層進行租戶隔離。AgentCore策略在允許工具訪問之前攔截並評估所有代理請求,提供基於使用者身份和工具輸入引數的細粒度控制。
總之,使用Amazon Bedrock AgentCore構建多租戶代理需要綜合考慮執行時部署、模型選擇、工作流設計、RAG策略、身份管理和訪問控制等方面,以構建安全、可擴充套件且高效的SaaS代理應用。