在AWS创建资源时,如何记录并追踪创建者用户名?
在AWS中追踪资源创建者用户名的方法
当然可以,AWS提供了多种原生方式来记录和追踪资源创建者信息,以下是最实用的几种方案:
1. 利用AWS CloudTrail(核心审计工具)
CloudTrail是AWS默认的全链路审计服务,会记录所有针对AWS资源的API调用(包括控制台、CLI、SDK发起的请求),每个资源创建事件都会包含调用者的身份详情:
- 快速查询:在CloudTrail控制台的「事件历史」中,通过筛选
事件名称(比如CreateInstance、CreateBucket)、资源类型或资源ARN定位目标资源的创建事件,事件详情里的userIdentity字段会显示创建者的IAM用户名、角色名或根账号信息。 - 长期存储与批量分析:配置CloudTrail跟踪器将日志持久化到S3桶,之后可以用Athena编写SQL批量查询特定资源的创建者,示例语句:
SELECT useridentity.username, eventtime, resources.ARN FROM cloudtrail_logs WHERE eventname = 'CreateBucket' AND resources.ARN = 'arn:aws:s3:::your-target-bucket';
2. 强制添加资源标签(主动记录,直观查看)
通过IAM策略或自动化工具,在资源创建时自动打上CreatedBy标签,直接在资源列表中就能快速识别创建者:
- IAM权限强制打标签:给需要创建资源的IAM用户/角色添加拒绝策略,要求创建资源时必须携带
CreatedBy标签,值为当前调用者的用户名。示例策略片段:
{ "Effect": "Deny", "Action": [ "ec2:RunInstances", "s3:CreateBucket", "lambda:CreateFunction" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestTag/CreatedBy": "${aws:username}" } } }
- 自动化补全标签:如果无法强制打标签,可以用Lambda函数监听CloudTrail的资源创建事件,自动给新资源补加
CreatedBy标签,标签值从事件的userIdentity字段提取。
3. 结合AWS Config追踪配置生命周期
AWS Config会记录资源的全生命周期配置变更,包括创建时间。你可以在Config控制台查看目标资源的配置时间线,找到创建事件后关联CloudTrail的对应日志,从而获取创建者信息。
关键注意点
- 如果资源是通过IAM角色(比如EC2实例角色、Lambda执行角色)创建的,CloudTrail中会显示角色名称而非直接的IAM用户名,需要通过角色的信任关系和会话信息进一步追踪到实际发起请求的用户。
- 根账号创建的资源,
userIdentity中会显示root,需结合账号操作记录确认具体操作人。
内容的提问来源于stack exchange,提问作者Madhurima Mishra
相关产品推荐
相关产品推荐

