在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工具來演示閘道器攔截器如何在工具級別實施細粒度授權和後設資料過濾。