You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Lambda与SNS Topic实现AWS VPC Peering自动化

结论先行

AWS VPC Peering全流程自动化是完全可落地的生产级方案,我所在团队基于Lambda+SNS的架构落地这套方案已经2年多,覆盖12个账号、3个区域的近40条对等连接,配置错误率从之前人工操作的30%降到0,故障响应时间从小时级降到秒级。

整体架构分工

整套方案完全基于AWS原生服务搭建,不需要额外部署第三方工具,各组件职责完全解耦:

  • SNS Topic:作为整个流程的消息总线,承接所有触发信号、任务分发、结果通知,配置死信队列留存处理失败的消息避免丢任务
  • Lambda函数集:按职责拆分为3个独立函数,每个函数绑定最小权限的IAM角色,避免单函数权限过大带来的安全风险
  • DynamoDB:存储所有对等连接的元数据,包括两端VPC信息、关联路由表、打通网段、创建时间、过期时间、最近连通校验结果,减少重复API调用节省配额
  • EventBridge:作为定时触发器,按固定周期触发全量巡检、过期资源清理任务
  • CloudTrail:捕获所有VPC、路由表、对等连接的人为操作事件,作为异常触发源投递到SNS
核心流程实现细节

1. 自动化对等连接配置

负责创建对等连接的Lambda会订阅SNS里的创建类消息,消息体需要提前约定好必填字段:请求方VPC ID/所属区域/所属账号ID、接受方VPC ID/所属区域/所属账号ID、待打通网段、需要添加路由的路由表ID列表、资源标签、过期时间(临时资源用)。
Lambda收到消息后先做参数合法性校验,缺字段、网段冲突直接返回异常,通过SNS发告警给提交人。跨账号/跨区域场景下,提前在所有纳管账号给中心运维账号的Lambda角色配置STS跨角色授权,Lambda自动获取对应账号对应区域的临时凭证后按顺序执行操作:

  1. 调用create_vpc_peering_connection接口发起对等连接请求
  2. 切换到接受方账号的临时凭证,调用accept_vpc_peering_connection接口接受对等请求
  3. 分别在两端VPC的指定路由表中,调用create_route接口添加指向当前对等连接的路由条目,添加前自动校验是否存在同网段路由冲突,有冲突直接回滚已创建的对等连接,推送冲突告警
  4. 所有配置完成后,把对等连接元数据写入DynamoDB,投递"待连通性校验"消息到SNS触发后续流程

2. 自动化连通校验

负责连通校验的Lambda会订阅SNS的校验类消息,触发来源包括新对等连接创建完成的触发、EventBridge每小时触发的全量巡检、CloudTrail捕获到路由表/安全组/NACL变更的事件触发,校验逻辑如下:

  1. 调用describe_vpc_peering_connections接口确认对等连接状态为active,如果是expired/rejected/failed状态直接标记异常
  2. 校验两端路由表中指向该对等连接的路由条目是否存在,发现人为误删的路由先标记,配置了自动修复的场景下直接补全路由
  3. 调用VPC Reachability Analyzer接口做端到端连通检测,确认跨VPC流量没有被安全组、网络ACL阻断
  4. 把校验结果、校验时间更新到DynamoDB,连续3次校验失败的资源,通过SNS推送高优先级告警到运维群和邮件组,附带明确的失败原因:比如路由缺失、安全组拦截、对等连接状态异常等。

3. 全生命周期运维管理

除了创建和校验,这套架构可以覆盖对等连接从上线到下线的所有运维场景:

  • 变更自动适配:如果捕获到VPC网段调整、路由表变更的操作事件,自动触发校验流程,同步调整对等连接对应的路由规则,避免配置变更导致的网络中断
  • 临时资源自动清理:标记为临时测试的对等连接,到期前3天通过SNS给申请人发送提醒,到期后Lambda自动删除对等连接、清理两端对应路由条目,避免冗余配置带来的安全风险和成本浪费
  • 合规审计:每天定时全量扫描所有纳管账号下的对等连接,和DynamoDB中的备案记录比对,发现未备案的私自创建的对等连接,直接推送高优先级告警,对测试环境可配置自动阻断规则
  • 故障自愈:对等连接状态异常、路由丢失这类可自动修复的问题,在观测期结束后可开启自动修复,修复完成后通过SNS同步操作记录给运维组留痕

刚上线的时候不要直接开自动修改/删除权限,先跑2周观测模式:所有异常只发告警、不自动修改配置,等把所有规则的误报率降到0之后再开自动执行,避免脚本逻辑问题打挂生产网络。

落地踩坑提示
  • 所有Lambda的IAM权限必须做最小化收敛,不要给EC2全权限,仅允许操作打了指定运维标签的VPC、路由表、对等连接资源
  • 跨区域调用API的时候必须手动指定对应区域的服务endpoint,不要用默认区域配置,避免跨区域对等连接创建到错误区域
  • SNS必须配置死信队列,Lambda执行重试超过次数的消息会进入死信队列,方便后续人工排查,避免任务丢失
  • 所有Lambda的执行日志统一投递到CloudWatch Logs,日志保留期至少设置180天,满足审计合规要求

内容的提问来源于stack exchange,提问作者Mohammad Jaleel Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 18:43:01