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

如何定位持续用于DynamoDB操作的IAM访问密钥使用来源

精准定位IAM访问密钥使用来源的解决方案

1. 利用CloudTrail日志追踪调用细节

  • 打开CloudTrail控制台,确保目标区域或全局跟踪已启用,筛选该IAM用户访问密钥相关的DynamoDB操作事件(如PutItem、GetItem、Scan等)
  • 查看事件详情中的sourceIPAddress:如果是AWS内部服务,IP会带有amazonaws.com后缀(比如ECS任务、Lambda执行环境的IP);如果是外部来源,可获取具体公网IP进一步排查
  • 检查userAgent字段,识别调用方的工具或服务标识(比如aws-cli/2.15.0、boto3/1.34.0等),同时通过requestParameters中的表ARN锁定操作的具体DynamoDB资源

2. 排查EC2实例与容器环境

  • 对所有运行中的EC2实例,通过SSM会话或SSH登录,执行命令查找环境变量中的旧密钥:env | grep AWS_ACCESS_KEY_ID
  • 检查实例上的AWS配置文件:cat ~/.aws/credentials、cat /etc/aws/credentials
  • 若使用ECS/EKS,检查任务定义的环境变量、Secrets配置,以及容器内部的AWS配置文件

3. 扫描无服务器服务配置

  • 检查Lambda函数的环境变量,以及函数代码中是否硬编码或引用了旧密钥的配置项
  • 查看Step Functions状态机、S3触发器、SNS/SQS订阅的关联服务,确认是否有服务通过该密钥访问DynamoDB
  • 排查AppSync、Glue等托管服务的数据源配置,是否使用了该IAM用户的密钥

4. 用IAM Access Analyzer检测访问路径

  • 启用IAM Access Analyzer,扫描账户内资源,查看是否有外部实体或内部服务正在使用该IAM用户的密钥访问DynamoDB
  • 分析生成的报告,定位具体的资源访问请求来源

5. 临时限制权限并监控拒绝事件

  • 给该IAM用户附加一条拒绝所有DynamoDB操作的策略(Deny优先级高于Allow),强制拦截密钥的使用:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "dynamodb:*",
            "Resource": "*"
        }
    ]
}
  • 监控CloudTrail中的AccessDenied事件,事件详情会包含完整的调用上下文,帮助精准定位来源

6. 排查第三方集成与工具

  • 检查是否有第三方数据同步工具、BI平台、监控服务等配置了该IAM密钥
  • 查看AWS Marketplace订阅的服务,确认是否有服务关联了该IAM用户的密钥

关键注意事项

更换IAM访问密钥时,旧密钥默认不会自动禁用,需手动在IAM控制台将其设置为Inactive状态,否则旧密钥仍可正常发起请求。

内容的提问来源于stack exchange,提问作者ProblemSolver

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:18