大家好我是小李哥,本名叫李少奕,目前在金融行业的一家公司担任首席云计算工程师,同时是一名资深AI架构师。今年小李哥作为全球7名亚马逊云科技全球技术专家代表(AWS Hero)之一,也是大中华区唯一的演讲者,将受邀在今年(2025年)6月16-18日于美国宾夕法尼亚州费城举办的亚马逊云科技re:Inforce全球安全大会中演讲!
本届全球安全大会中共有255个来自世界各地不同主题的演讲,我能成为1/255真的很开心。本次大会的总负责人是亚马逊云科技的全球首席信息安全官(CISO)Chris Betz,小李哥和他也是老熟人了,这次他也是本次大会主题演讲的主讲人,让我们一起来期待一下他将在主题演讲中带给全球开发者的精彩内容。
这是小李哥第三次参加亚马逊云科技全球安全大会re:Inforce,但是是我第一年演讲~至此,小李哥也达成了亚马逊云科技全球活动演讲大满贯 - 共计讲过1次全球云计算大会re:Invent、1次全球安全大会re:Inforce、1次峰会Summit、2次亚马逊云科技UG Community Day和7次UG Meetups。欢迎费城附近的小伙伴6月来宾夕法尼亚会展中心Pennsylvania Convention Center一起交流学习。
▶️ 亚马逊云科技AWS一年一度的re:Inforce是什么?
re:Inforce是亚马逊云科技全球云安全每年官方最高级别会议,汇集了来自全球各地的安全专家,共同分享当下云计算行业最前沿的安全创新技术。今年大会围绕了六大话题-应用安全、数据隐私保护、安全合规、身份验证与授权、网络和基础设施安全与威胁检测和事件响应等话题(下图)。在AI/AGI大热的时代背景下,AI安全也成为了本次大会将重点介绍的热点话题。
▶️ 小李哥的演讲是什么?
1️⃣演讲代码: COM326 - 如何利用AI Agent对云端应用威胁建模
2️⃣演讲关键词: AI安全、应用安全、威胁建模
3️⃣适用人群: 云安全专家、AI架构师、安全工程师等
4️⃣演讲类型: 闪电演讲Lightening Talk
5️⃣演讲内容:
我将介绍如何利用亚马逊云科技大模型托管平台Amazon Bedrock上的功能:AI Agent和Knowledge Base,以及生成式AI基础模型Amazon Nova去发现、分析和修复云应用中的安全威胁。并分享如何设计和搭建利用AI对云端威胁建模的安全解决方案。目的是希望帮助社区开发者培养"安全左移"的理念,在应用架构、SDLC的最初设计阶段就将安全性考虑其中。我的方案已经完全开源,有需要的社区开发者也可以在本地部署该服务,日常使用。
6️⃣核心服务:Amazon Bedrock、Amazon Nova
▶️ 云端方案架构介绍
技术栈
1)前端:React+TypeScript+Vite
构建单页网页应用,提供可视化的威胁建模用户交互界面,用户可上传需要分析的系统架构图,查看和调整由AI生成的威胁模型结果。
2)后端:Python+FastAPI
处理用户请求,调用大语言模型(LLM)分析用户输入的系统架构,生成最终的威胁模型结果。后端通过Amazon Lambda部署,实现无服务器计算、提升可扩展性。
3)云托管平台:亚马逊云科技
利用亚马逊云科技提供的多项服务(架构组件中会介绍)
4)生成式AI模型:Amazon Bedrock上的Anthropic Claude 3.7 Sonnet
后端集成了大语言模型,分析用户提供的系统架构图,并识别潜在的安全威胁,最终生成详细的威胁模型报告。
架构组件组成
1)前端应用托管(Amazon Amplify)
本方案使用了Amazon Amplify托管由React框架开发的应用前端,实现静态资源的自动构建、部署和版本控制,同时集成了后端服务(如功能API、身份验证、数据存储)的快速配置与访问。用户可以通过浏览器直接访问威胁建模的交互界面。
2)身份验证与授权(Amazon Cognito)
Amazon Cognito负责应用的用户身份管理,包括注册、登录、会话控制与MFA认证。系统支持将用户凭证token传递至API Gateway,确保部署后端应用代码的Lambda函数API接口仅对授权用户开放。
3)API接入层(Amazon API Gateway)
API Gateway在应用中提供了统一的HTTPs API接口,用于接收前端请求(如系统架构上传、威胁建模生成请求等),并将其路由到后端的Amazon Lambda函数中的应用代码处理,同时该服务业支持API key认证验证、请求限流和日志审计等功能。
4)后端请求处理(Amazon Lambda)
Lambda是我们威胁建模服务的核心处理引擎,主要负责以下任务:
-
调用Amazon Bedrock上的FM基础模型Claude 3.7分析系统架构图;
-
自动生成威胁建模报告与安全建议;
-
与NoSQL数据库DynamoDB交互,实现建模生成的结果数据的持久化;
-
整合上下文与用户自定义的提示词信息,实现个性化建模逻辑。
5)数据存储服务(Amazon DynamoDB)
使用DynamoDB存储威胁建模结果、用户操作历史、威胁模型元数据等内容。其无服务器架构与高性能读写能力适合低延迟、高并发的Web应用需求。
6)静态资源存储(Amazon S3)
通过S3存储需要分析的系统架构图图文件、导出的JSON格式的建模结果数据、用户上传的文档等静态内容,支持前端应用的上传和下载内容的存储,并可配合CDN静态资源分发器CloudFront实现网站全局内容加速。
7)AI大语言模型(Amazon Bedrcok)
我们应用中集成了Amazon Bedrock上的AI大语言基础模型(Claude 3,7 Sonnet),用于自动分析用户提交的架构图,并生成完整的威胁模型结果,帮助社区开发者构建“安全左移”的开发理念。
▶️ 如何部署开源威胁建模项目?
前提条件
大家在本地机器上必须安装以下工具:
1. Node.js(版本 18 或以上)及npm、curl、jq、Python(版本 3.12 或以上)及pip、Terraform
2. 亚马逊云科技命令行工具CLI已配置API凭证,具有API调用亚马逊云科技上包含Amazon Bedrock等主要服务的IAM权限
3. 提前开启Amazon Bedrock上的Claude 3.7模型访问权限
安装与部署
添加部署脚本执行权限
chmod +x deployment.sh
添加亚马逊云科技API秘钥凭证
导出临时凭证
export AWS_ACCESS_KEY_ID="your_temp_access_key"
export AWS_SECRET_ACCESS_KEY="your_temp_secret_key"
export AWS_SESSION_TOKEN="your_temp_session_token"
export AWS_DEFAULT_REGION="your_region"
开始部署
执行以下命令进行部署:
./deployment.sh
⚠️ 注意:部署过程中需要填写一个大家有效的邮箱地址。部署过程中会为大家在Amazon Cognito用户管理服务中创建一个新用户,并会将临时应用登录密码发送到该邮箱。
访问部署后的应用
部署成功后,在终端Shell的./deployment.sh脚本运行结果的
输出中,大家将看到应用的登录URL地址,例如下面的格式,大家直接在浏览器打开该链接即可访问应用。
https://dev.xxxxxxxxxxxxxxxx.amplifyapp.com
开源是我们社区开发者们一直以来坚持的初心和承诺,小李哥也会一直坚持下去做开源,在贡献更多开源项目和帮助开发者社区的同时,在未来的国际舞台上代表中国向世界展示我们中国社区开发者最优秀的风采。最后也欢迎大家关注小李哥,第一时间了解国际最前沿的生成式AI、云计算的技术及解决方案,在AI的时代千万不能掉队。