本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Terraform 在 Amazon Bedrock 上部署代理程式系統,搭配CrewAI 架構
Vanitha Dontireddy,Amazon Web Services
Summary
此模式示範如何使用與 Amazon Bedrock
先決條件和限制
先決條件
AWS 帳戶 具備適當許可的作用中 ,可存取 Amazon Bedrock 基礎模型
已安裝
Terraform 1.5 版或更新版本 已安裝
Python 3.9 版或更新版本 已安裝
CrewAI 架構
限制
客服人員互動受限於模型內容視窗。
大規模部署的分層狀態管理考量適用於此模式。
有些 AWS 服務 完全無法使用 AWS 區域。如需區域可用性,請參閱AWS 依區域的服務
。如需特定端點,請參閱服務端點和配額,然後選擇服務的連結。
架構
在此模式中,會發生下列互動:
Amazon Bedrock 透過其基礎模型 (FMs) 套件提供客服人員智慧的基礎。它可為 AI 代理器啟用自然語言處理 (NLP)、推理和決策功能,同時保持高可用性和可擴展性。
CrewAI 架構可做為核心協同運作層,用於建立和管理 AI 代理器。它會在與 Amazon Bedrock 整合時處理代理程式通訊協定、任務委派和工作流程管理。
Terraform 透過程式碼管理整個基礎設施堆疊,包括運算資源、聯網、安全群組和 AWS Identity and Access Management (IAM) 角色。它可確保跨環境的一致、版本控制的部署。Terraform 部署會建立下列項目:
AWS Lambda 函數以執行CrewAI 應用程式
適用於程式碼和報告的 Amazon Simple Storage Service (Amazon S3) 儲存貯體
具有適當許可的 IAM 角色
Amazon CloudWatch 記錄
Amazon EventBridge 排定的執行
下圖說明了使用 Amazon Bedrock 和 Terraform 部署 CrewAI 多代理程式系統的架構。

該圖顯示以下工作流程:
使用者複製儲存庫。
使用者執行 命令
terraform apply來部署 AWS 資源。Amazon Bedrock 模型組態包括指定基礎模型 (FM),以用於設定 CrewAI 代理程式。
建立 EventBridge 規則,根據定義的排程觸發 Lambda 函數。
觸發時 (透過排程或手動),Lambda 函數會初始化並擔任具有存取 AWS 服務 和 Amazon Bedrock 許可的 IAM 角色。
CrewAI 架構會從 YAML 檔案載入代理程式組態,並建立專門的 AI 代理程式 (AWS 基礎設施安全稽核人員)。Lambda 函數會依序執行這些代理程式,以掃描 AWS 資源、分析安全漏洞,並產生全面的稽核報告。
CloudWatch Logs 會擷取來自 Lambda 函數的詳細執行資訊,其中包含 365 天的保留期和 AWS Key Management Service (AWS KMS) 合規要求的加密。日誌提供客服人員活動、錯誤追蹤和效能指標的可見性,可有效監控和疑難排解安全稽核程序。
安全性稽核報告會自動產生並存放在指定的 Amazon S3 儲存貯體中。自動化設定有助於維持一致的安全監控,並將營運開銷降至最低。
在初始部署之後,工作流程會為您的 AWS 基礎設施提供持續的安全稽核和報告,而無需手動介入。
AI 代理器概觀
此模式會建立多個 AI 代理器,每個代理器都有獨特的角色、目標和工具:
安全分析師代理程式會收集和分析 AWS 資源資訊。
滲透測試人員代理程式可識別 AWS 資源中的漏洞。
合規專家代理程式會根據合規標準檢查組態。
報告寫入器代理程式會將問題清單編譯為全面的報告。
這些客服人員會協同處理一系列任務,利用其集體技能來執行安全稽核並產生全面的報告。( config/agents.yaml 檔案概述了此組建中每個代理程式的功能和組態。)
安全分析處理包含下列動作:
安全分析師代理程式會檢查所收集的 AWS 資源相關資料,例如下列項目:
Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和安全群組
Amazon S3 儲存貯體和組態
IAM 角色、政策和許可
虛擬私有雲端 (VPC) 組態和網路設定
Amazon RDS 資料庫和安全性設定
Lambda 函數和組態
AWS 服務 稽核範圍內的其他項目
滲透測試人員代理程式可識別潛在漏洞。
客服人員透過CrewAI」架構協作來共用問題清單。
報告產生包含下列動作:
報告寫入器代理程式會編譯所有其他代理程式的問題清單。
安全問題會依服務、嚴重性和合規影響進行組織。
系統會為每個已識別的問題產生修復建議。
以 Markdown 格式建立全面的安全稽核報告,並上傳至指定的 Amazon S3 儲存貯體。保留歷史報告以進行合規追蹤和安全狀態改善。
記錄和監控活動包括:
CloudWatch 日誌會擷取執行詳細資訊和任何錯誤。
系統會記錄 Lambda 執行指標以進行監控。
注意
的程式碼aws-security-auditor-crew來自 GitHub 3P-Agentic_frameworks
可用性和擴展
您可以將可用的客服人員擴展到四個以上的核心客服人員。若要使用其他專業客服人員進行擴展,請考慮下列新的客服人員類型:
威脅情報專家代理程式可以執行下列動作:
監控外部威脅饋送,並與內部調查結果建立關聯
提供有關與基礎設施相關的新興威脅的內容
根據在野外的主動利用來排定漏洞的優先順序
合規架構代理程式可以專注於特定法規領域,例如:
支付卡產業資料安全標準 (PCI DSS) 合規代理程式
1996 年健康保險流通與責任法案 (HIPAA) 合規代理程式
系統和組織控制 2 (SOC 2) 合規代理程式
一般資料保護法規 (GDPR) 合規代理程式
透過仔細擴展可用的代理程式,此解決方案可以提供更深入、更專業的安全洞見,同時在大型 AWS 環境中維持可擴展性。如需實作方法、工具開發和擴展考量的詳細資訊,請參閱其他資訊。
工具
AWS 服務
Amazon Bedrock 是一項全受管 AI 服務,可透過統一 API 使用高效能的基礎模型 (FMs)。
Amazon CloudWatch Logs 可協助您集中所有系統、應用程式的日誌, AWS 服務 以便您可以監控日誌並將其安全地存檔。
Amazon EventBridge 是一種無伺服器事件匯流排服務,可協助您將應用程式與來自各種來源的即時資料連線。例如, AWS Lambda 函數、使用 API 目的地的 HTTP 調用端點,或其他事件匯流排 AWS 帳戶。在此模式中,它會用於排程和協調客服人員工作流程。
AWS Identity and Access Management (IAM) 透過控制已驗證並獲授權使用的人員,協助您安全地管理對 AWS 資源的存取。
AWS Lambda 是一項運算服務,可協助您執行程式碼,無需佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需按使用的運算時間付費。
適用於 Python (Boto3) 的 AWS SDK
是一種軟體開發套件,可協助您整合 Python 應用程式、程式庫或指令碼 AWS 服務。 Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。在此模式中,它會為代理程式成品和狀態管理提供物件儲存。
其他工具
程式碼儲存庫
此模式的程式碼可在 GitHub deploy-crewai-agents-terraform
最佳實務
史詩
| 任務 | 描述 | 所需的技能 |
|---|---|---|
複製儲存庫。 | 若要在本機電腦上複製此模式的儲存庫,請執行下列命令:
| DevOps 工程師 |
編輯環境變數。 | 若要編輯環境變數,請執行下列動作:
| DevOps 工程師 |
建立基礎設施。 | 若要建立基礎設施,請執行下列命令:
請仔細檢閱執行計畫。如果計劃的變更是可接受的,請執行下列命令:
| DevOps 工程師 |
| 任務 | 描述 | 所需的技能 |
|---|---|---|
存取代理程式。 | AWS 基礎設施安全稽核和報告團隊中的代理程式會部署為 Lambda 函數。若要存取代理程式,請使用下列步驟:
| DevOps 工程師 |
(選用) 設定代理程式的手動執行。 | 代理程式設定為以每日排程 (午夜 UTC) 自動執行。不過,您可以使用下列步驟手動觸發它們:
如需詳細資訊,請參閱 Lambda 文件中的在主控台中測試 Lambda 函數。 | DevOps 工程師 |
存取代理程式日誌以進行偵錯。 | CrewAI 代理程式正在 Lambda 環境中執行,具有執行安全稽核和在 Amazon S3 中存放報告的必要許可。輸出是 Markdown 報告,可提供 AWS 基礎設施的完整安全分析。 若要協助詳細偵錯代理程式行為,請執行下列動作:
| DevOps 工程師 |
檢視代理程式執行的結果。 | 若要檢視代理程式執行的結果,請執行下列動作:
報告會以時間戳記型檔案名稱存放,如下所示: | DevOps 工程師 |
監控代理程式執行。 | 若要透過 CloudWatch 日誌監控代理程式的執行,請執行下列動作:
| DevOps 工程師 |
自訂代理程式行為。 | 若要修改客服人員或其任務,請執行下列動作:
| DevOps 工程師 |
| 任務 | 描述 | 所需的技能 |
|---|---|---|
刪除建立的資源。 | 若要刪除此模式建立的所有基礎設施,請執行下列命令:
警告下列命令將永久刪除此模式建立的所有資源。命令會在移除任何資源之前提示確認。 請仔細檢閱銷毀計畫。如果計劃刪除是可接受的,請執行下列命令:
| DevOps 工程師 |
故障診斷
| 問題 | 解決方案 |
|---|---|
客服人員行為 | 如需此問題的相關資訊,請參閱 Amazon Bedrock 文件中的測試和疑難排解代理程式行為。 |
Lambda 網路問題 | 如需有關這些問題的資訊,請參閱 Lambda 文件中的對 Lambda 中的聯網問題進行故障診斷。 |
IAM 許可 | 如需這些問題的相關資訊,請參閱 IAM 文件中的疑難排解 IAM。 |
相關資源
AWS 部落格
AWS 文件
其他資源
其他資訊
本節包含實作方法、工具開發以及與自動化和擴展中先前討論相關的擴展考量的相關資訊。
實作方法
請考慮下列新增客服人員的方法:
代理程式組態:
將新的客服人員定義新增至
config/agents.yaml檔案。為每個代理程式定義專門的備份、目標和工具。
根據客服人員專科設定記憶體和分析功能。
任務協同運作:
更新
config/tasks.yaml檔案以包含新的客服人員特定任務。在任務之間建立相依性,以協助確保適當的資訊流程。
視需要實作平行任務執行。
技術實作
以下是提議的 Threat Intelligence Specialist 代理程式agents.yaml的 檔案新增項目:
Example new agent configuration in agents.yaml threat_intelligence_agent: name: "Threat Intelligence Specialist" role: "Cybersecurity Threat Intelligence Analyst" goal: "Correlate AWS security findings with external threat intelligence" backstory: "Expert in threat intelligence with experience in identifying emerging threats and attack patterns relevant to cloud infrastructure." verbose: true allow_delegation: true tools: - "ThreatIntelligenceTool" - "AWSResourceAnalyzer"
工具開發
使用CrewAI,您可以採取下列動作來增強安全稽核團隊的有效性:
為新客服人員建立自訂工具。
與外部 APIs整合以進行威脅情報。
為不同的 開發專用分析器 AWS 服務。
擴展考量
擴展您的 AWS 基礎設施安全稽核和報告系統以處理更大的環境或更全面的稽核時,請解決下列擴展因素:
運算資源
增加 Lambda 記憶體配置以處理其他代理程式。
考慮將代理程式工作負載分割到多個 Lambda 函數。
成本管理
在代理程式計數增加時監控 Amazon Bedrock API 用量。
根據稽核範圍實作選擇性代理程式啟用。
協同合作效率
最佳化客服人員之間的資訊共用。
實作複雜環境的階層式代理程式結構。
知識庫增強功能
為客服人員提供其網域的專業知識庫。
使用新的安全最佳實務定期更新客服人員知識。