在AWS上使用現代數據網格策略構建自主AI應用
本文展示瞭如何在AWS上構建一個受治理的無服務器數據網格,為生產級自主AI提供安全、可擴展的數據基礎。架構通過S3 Tables(Iceberg)、S3 Vectors和AgentCore Gateway實現三層治理,解決自主AI多步驟數據訪問中的授權問題。
當客服代理自主查詢訂單數據庫、檢索退貨政策並綜合答案時,它需要跨組織多個數據源的受控訪問。在現代化數據網格上構建自主AI應用,需要在數據交互鏈的每一層實施細粒度訪問控制。自主發現數據庫模式、構建SQL查詢並綜合多個數據源的AI代理,暴露了為檢索增強生成(RAG)構建的單檢查點模型無法解決的治理缺口。組織需要從工具發現到查詢執行再到響應合成的全程控制。
在之前的文章《在AWS無服務器數據湖上構建安全RAG應用》中,我們展示瞭如何通過使用業務領域和安全分類等元數據過濾向量搜索結果,對RAG實施細粒度訪問控制(FGAC)。該方法行之有效,因為RAG的數據交互簡單:從預構建的向量索引中檢索塊,按元數據過濾,並呈現結果。
本文展示瞭如何在AWS上構建一個受治理的無服務器數據網格,為生產級自主AI提供安全、可擴展的數據基礎。該架構在原有基礎上進行了三項關鍵改進:
- 用Amazon S3 Vectors替代Amazon OpenSearch Serverless,實現成本優化的知識庫,在中等查詢頻率工作負載下,與專用向量數據庫解決方案相比,可將向量存儲和查詢成本降低高達90%。
- 用受AWS Lake Formation治理的Amazon S3 Tables(內置Apache Iceberg支持)替代通用Amazon S3,與自管理Iceberg表相比,每秒事務處理量提升高達10倍,並提供細粒度的行、列和單元格級安全。
- 通過AgentCore Gateway將數據網格暴露為模型上下文協議(MCP)工具,並利用AWS Lambda支持的攔截器在每次代理到工具的調用中實現確定性訪問控制。
前提條件 要實現此架構,您需要:
- 具有管理員訪問權限的AWS賬户。
- AWS Identity and Access Management (IAM) 權限,用於創建角色、策略、Lambda函數、S3 Tables表桶、Amazon Athena工作組和Lake Formation配置。
- 熟悉AWS Lake Formation概念(數據湖管理員、LF-Tag、數據過濾器)。
- 已啓用Amazon Bedrock的賬户並配置模型訪問權限。
- 賬户中配置了Amazon Bedrock AgentCore訪問權限。
- 安裝並配置AWS CLI v2。
架構概覽 下圖展示了從客户請求到受控數據訪問再返回的端到端流程。每一層都實施自己的授權控制,因此沒有單點故障能暴露未經授權的數據。架構圖包含四層:代理層(AgentCore Runtime和LangGraph代理)、網關層(請求和響應攔截器)、工具層(四個Lambda支持的MCP工具:get_user_tables、get_schema、run_query、kb_search)以及受治理數據網格(S3 Tables、Athena、Lake Formation、S3 Vectors)。箭頭顯示數據從客户經代理流向受控數據源。
- 代理層 – 客户與AgentCore Runtime交互,這是一個安全的無服務器託管環境,在隔離的微VM環境中部署代理,並實現會話隔離。代理在LangGraph框架內運行,通過MCPClient類與MCP工具集成。
- 網關層 – 網關包括執行JSON Web Token(JWT)驗證和作用域強制執行的請求攔截器,以及處理工具過濾、數據編輯和審計日誌的響應攔截器。AgentCore Policy與Bedrock Guardrails實時評估每次工具調用的輸入和輸出,防範提示注入、有害內容和敏感信息泄露。
- 工具層 – 四個Lambda支持的MCP工具提供受控數據訪問:get_user_tables、get_schema、run_query和kb_search。
- 受治理數據網格 – S3 Tables(Iceberg)註冊在AWS Glue數據目錄中,Amazon Athena具有工作組成本控制,Lake Formation強制執行行/列/單元格級安全,S3 Vectors為Amazon Bedrock知識庫提供支持。
為什麼自主AI需要新的治理模型 RAG架構在單個檢查點實施治理:通過元數據過濾的向量檢索。該方法適用於RAG工作負載。自主模式引入了額外步驟,形成多步驟鏈,每個步驟都需要自己的授權決策。在RAG中,系統在檢索時查詢一個預構建的向量索引並應用元數據過濾器。在自主AI中,系統發現哪些表存在、理解模式、構建SQL、從向量存儲檢索並綜合結果。
單次檢索邊界的元數據過濾器無法治理這五步鏈。向量數據庫定期同步權限,意味着撤銷不會立即反映出來。當代理自主處理數據時,這是一個不可接受的缺口。複雜的身份權限(如角色層次結構、基於屬性的訪問和行級過濾器)無法表示為向量塊上的簡單元數據鍵值對。
這些限制促使向受治理數據網格架構轉變,其中授權在每個數據訪問層原生實施。
構建受治理的無服務器數據網格 數據網格將數據所有權下放給領域團隊,同時集中治理和發現。在AWS上,領域團隊端到端擁有其數據產品,AWS Glue數據目錄提供集中元數據發現,Lake Formation使用授予/撤銷語義跨數據庫、表、列、行和單元格實施權限。
每個生產者域位於其自己的AWS賬户中。生產者在中央治理賬户(一個專門的AWS賬户,託管整個組織的權威AWS Glue數據目錄和Lake Formation權限策略)中註冊數據產品。數據通過Lake Formation跨賬户共享。不復制數據,僅通過消費者目錄中的資源鏈接鏈接元數據。在查詢時,Lake Formation驗證權限並向查詢引擎發放臨時憑證。基於標籤的訪問控制(LF-TBAC)動態擴展這一點。管理員為資源分配LF-Tag(如classification=PII或department=customer_service),並根據這些標籤授予權限。
以下小節描述我們如何實現此網格的兩個數據層。首先,我們介紹用於結構化數據(訂單記錄、客户檔案)的事務性Iceberg表,受Lake Formation行和列安全治理。然後,我們介紹用於非結構化知識(政策、常見問題解答)的向量存儲,以支持語義搜索。
使用Apache Iceberg的S3 Tables處理事務數據 對於我們的客服代理,訂單管理領域團隊使用Amazon S3 Tables發佈訂單和客户數據。S3 Tables是首個內置Apache Iceberg支持的雲對象存儲,與通用S3桶上的自管理Iceberg表相比,每秒事務處理量提升高達10倍。它自動處理壓縮、快照管理和未引用文件刪除。
S3 Tables與Amazon SageMaker Lakehouse集成,後者填充AWS Glue數據目錄並通過Lake Formation聯合訪問。三個數據產品(customer_orders、customer_profiles和interaction_history)可通過Amazon Athena查詢,受Lake Formation權限治理,並由S3 Tables自動壓縮。
Lake Formation數據過濾器實施行級安全,因此代理只能訪問屬於已驗證客户的記錄。customer_orders上的數據過濾器使用行過濾器表達式customer_id = :customer_id,無論代理如何構建SQL,都將每個查詢限制為當前客户的記錄。run_query Lambda函數在向Athena提交查詢前,將已驗證客户的身份作為會話參數注入。列級安全完全隱藏敏感字段(如payment_method和billing_address)的查詢結果。
使用Amazon S3 Vectors構建知識庫 僅有結構化數據是不夠的。客户需要從非結構化知識(產品手冊、退貨政策、常見問題解答和故障排除指南)中獲取答案,這需要語義搜索能力。
Amazon S3 Vectors提供原生向量存儲和查詢支持,作為完全無服務器服務。它支持每個索引多達20億個向量,並提供強寫入一致性,意味着新添加的向量立即可查詢。
S3 Vectors的成本優勢 使用Amazon Bedrock知識庫功能的客户可以選擇S3 Vectors作為向量存儲,與中等查詢頻率工作負載中的專用向量數據庫解決方案相比,成本可降低高達90%。對於需要個位數毫秒延遲的高QPS工作負載,Amazon OpenSearch Serverless仍然是更合適的選擇。AWS提供從S3 Vectors到Amazon OpenSearch Serverless集合的單步導出,適用於工作負載超出S3 Vectors性能配置的場景。
S3 Vectors支持可過濾元數據(字符串、數字、布爾、列表類型,支持$eq、$ne、$gt、$in、$and、$or等運算符)和不可過濾元數據(用於存儲隨結果返回的更大上下文數據)。在我們的用例中,文檔存儲時帶有可過濾元數據鍵,如product_category和document_type,支持針對性語義搜索。以下示例顯示一個元數據過濾器,僅檢索電子產品退貨政策:
{"$and": [{"product_category": {"$eq": "electronics"}}, {"document_type": {"$eq": "return_policy"}}]}
使用AgentCore Gateway暴露數據網格 在受治理數據網格和知識庫就位後,下一個挑戰是以安全、可發現和標準化的方式將這些能力暴露給AI代理。本節介紹實現這一點的工具、攔截器和身份傳播模式。
AgentCore Gateway提供了一個集中層,用於管理AI代理如何連接到工具。它將認證、可觀測性和策略實施整合到單個端點。網關將Lambda函數、API和現有MCP服務器轉換為兼容MCP的工具,包括協議轉換、入站OAuth授權和出站憑證管理。代理通過流式HTTP傳輸和OAuth Bearer令牌連接。
四個核心數據工具 四個Lambda支持的MCP工具通過網關提供受控數據訪問。get_user_tables查詢由Lake Formation權限過濾的AWS Glue數據目錄,返回授權表。get_schema檢索指定表的列名、類型和描述。run_query根據只讀允許列表驗證SQL,注入客户身份以實現行級過濾,並通過Athena執行,設置字節掃描成本限制。kb_search針對Amazon Bedrock知識庫執行元數據過濾的語義搜索。
隨着Amazon Bedrock託管知識庫的推出,知識庫現在可作為AgentCore Gateway中的原生預建目標類型。這意味着您可以通過網關暴露知識庫,無需自定義Lambda函數——網關自動生成IAM角色,提供內置可觀測性和評估指標,並通過AgentCore Policy實施策略。在此架構中,我們使用自定義Lambda支持的kb_search工具來演示網關攔截器如何在工具級別實施細粒度授權和元數據過濾。