如何判断DynamoDB表是否被Lambda调用及禁用该表的方法
判断DynamoDB表是否被Lambda函数调用
- 查看CloudTrail日志:筛选目标DynamoDB表的API调用记录(如
PutItem、GetItem、Scan等),检查事件源是否为lambda.amazonaws.com。无论Lambda是zip包还是镜像类型,只要发起了对表的调用,都会生成对应的日志记录。 - 排查Lambda执行角色权限:遍历所有Lambda函数的执行IAM角色,检查角色的权限策略中是否包含针对目标DynamoDB表的允许操作(如
dynamodb:*或具体读写权限)。这种方法能缩小可疑Lambda范围,再结合CloudTrail日志确认实际调用行为。 - 关联CloudWatch指标分析:对比目标DynamoDB表的读写吞吐量指标(如
ReadCapacityUnits、WriteCapacityUnits)与Lambda函数的执行次数指标,若两者存在同步波动,可辅助判断存在调用关联,但需结合其他方式验证。
禁用DynamoDB表的替代方法
DynamoDB没有类似Lambda设置并发数为0的直接禁用方式,但可以通过以下方法实现临时禁用效果:
- 添加IAM拒绝策略:给所有访问该表的IAM实体(包括Lambda执行角色)添加一条优先级更高的拒绝策略,禁止对目标表的所有操作(如
dynamodb:*)。待验证完成后,移除该拒绝策略即可恢复访问。 - 修改DynamoDB资源策略:在目标表的资源策略中添加拒绝所有主体访问的规则,直接阻断所有对该表的请求。此方法无需修改每个IAM角色的策略,适合批量禁用场景。
- 临时删除表(需备份):若允许短暂中断,可先开启表的点-in-time恢复并创建快照,随后删除表。验证完成后,通过快照或点-in-time恢复重建表。这种方式操作成本较高,仅建议在非核心表场景使用。
内容的提问来源于stack exchange,提问作者shantanuo
相关产品推荐
相关产品推荐

