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

如何关联多份AWS CLI输出数据生成IAM身份中心合规审计报告

用JQ关联AWS IAM身份中心数据生成合规审计CSV报告

核心实现命令

针对你1500+用户、700+组的规模,最优方式是先构建ID到名称的映射表(O(1)查找效率),再批量替换组成员记录中的ID,最后导出标准CSV。直接在CloudShell执行以下命令:

jq -n --slurpfile users UsersIds.json --slurpfile groups GroupsID.json --slurpfile members GroupMembers.json '
# 构建用户ID→用户名的映射哈希表
($users[0] | reduce .[] as $user ({}; .[$user.UserId] = $user.UserName)) as $userMap
# 构建组ID→组名的映射哈希表
| ($groups[0] | reduce .[] as $group ({}; .[$group.GroupId] = $group.GroupName)) as $groupMap
# 遍历所有组成员记录,替换ID为对应名称
| $members[0] | .[] | {
    GroupName: $groupMap[.GroupId],
    UserName: $userMap[.MemberId]
}
# 生成CSV:先输出表头,再输出每一行数据
| (["GroupName", "UserName"] | @csv), (. | [.GroupName, .UserName] | @csv)
' | awk 'NR==1 || !a[$0]++' > IAM_Groups_Members_Audit.csv

命令细节说明

  1. 映射表构建:
    • 用reduce遍历用户/组列表生成哈希表,避免每次查找都遍历整个数组,大幅提升大数据集的处理效率
  2. ID批量替换:
    • 遍历GroupMembers.json的每条记录,通过映射表直接匹配对应的组名和用户名
  3. CSV标准化处理:
    • @csv自动处理含特殊字符的名称(如逗号、引号),确保输出符合Excel兼容的CSV标准
    • 附加的awk语句用于去重,避免同一用户重复出现在同一组的冗余记录
  4. 输出结果:
    • 生成的IAM_Groups_Members_Audit.csv可直接导入Excel,支持筛选、排序等合规审计所需的操作

注意事项

  • 确认三个JSON文件的字段名匹配:
    • UsersIds.json需包含UserId和UserName字段
    • GroupsID.json需包含GroupId和GroupName字段
    • GroupMembers.json需包含GroupId和MemberId字段
    • 若字段名不符,需调整jq命令中对应的字段引用
  • CloudShell默认预装jq,若版本过低可通过sudo yum install jq更新
  • 针对120个账号的大规模数据,该命令内存占用低、执行速度快,不会出现性能瓶颈

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:40:42