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

如何筛选AWS IAM中Team标签为red的完整用户记录?

解决AWS IAM用户按Team标签筛选完整记录的问题

情况1:原脚本输出文本格式(按用户分块,块间空行分隔)

如果你的原脚本输出是每个用户信息占一块、块之间用空行分隔的文本(比如包含用户ARN、创建时间、标签行、所属组等),可以用awk按块筛选,避免只输出匹配的单行:

# 替换成你的原脚本路径
./your-original-iam-script.sh | awk '
BEGIN { current_block = ""; match_flag = 0 }
# 累积当前用户块的每一行
{
    current_block = current_block $0 "\n"
    # 根据你原脚本的标签格式调整正则,示例匹配"Tag: Key=Team, Value=red"格式
    if ($0 ~ /Tag: Key=Team, Value=red/) {
        match_flag = 1
    }
}
# 遇到空行(块结束)时,检查匹配状态并输出
/^$/ {
    if (match_flag) {
        print current_block
    }
    current_block = ""
    match_flag = 0
    next
}
# 处理最后一个无空行结尾的用户块
END {
    if (match_flag) {
        print current_block
    }
}
'

关键说明:

  • 用current_block变量完整累积单个用户的所有信息行,而非仅处理单行
  • 当块内出现目标标签行时,标记match_flag为1
  • 块结束(空行)时,根据标记决定是否输出整个用户块
  • 务必根据原脚本的实际标签格式修改正则(比如标签行是Team: red,就把正则改成/Team: red/)

情况2:原脚本输出JSON格式(推荐用jq更可靠)

如果原脚本是调用AWS CLI输出JSON(比如用aws iam get-account-authorization-details --filter User),直接用jq筛选更精准,不受文本格式变化影响:

aws iam get-account-authorization-details --filter User | jq '.UserDetailList[] | select(.Tags[]? | .Key == "Team" and .Value == "red")'

逻辑说明:

  • .UserDetailList[]遍历所有用户详情条目
  • select(.Tags[]? | .Key == "Team" and .Value == "red")只保留包含Team=red标签的用户,输出完整的用户记录(包括标签、所属组等信息)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:41:31