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

如何构造命令筛选列出AWS账户中带指定标签的KMS密钥?

列出带有指定标签的AWS KMS密钥

我需要构造命令,批量列出AWS账户中匹配特定标签(比如env=prod)的KMS密钥,目前尝试了两个命令但未实现需求:

已尝试的操作示例

1. 查询单条KMS密钥的标签

这个命令只能查看指定ID的密钥标签,无法批量筛选:

% aws kms list-resource-tags --key-id 01e685-a1-482-ba3-9c4ac3adf 
{
    "Tags": [
        {
            "TagKey": "env",
            "TagValue": "prod"
        },
        {
            "TagKey": "owner",
            "TagValue": "kms"
        },
    ]
}

2. 使用资源标签API尝试筛选

用这个命令查询时,结果格式包含ARN和标签,但未直接提取出密钥ID,且需要完善参数:

% aws resourcegroupstaggingapi get-resources --region us-east-1 --resource-type-filters kms --tag-filters Key=Initiator,Values=Terraform
{
    "ResourceTagMappingList": [
        {
            "ResourceARN": "arn:aws:kms:us-east-",
            "Tags": [
                {
                    "Key": "env",
                    "Value": "prod"
                },
                {
                    "Key": "hello",
                    "Value": "hello"
                },
                {
                    "Key": "Initiator",
                    "Value": "Terraform"
                },
                {

可行的解决方案

利用resourcegroupstaggingapi get-resources可以批量筛选带指定标签的KMS资源,结合参数调整可以直接输出密钥ID:

1. 筛选匹配单个标签的密钥(如env=prod)

aws resourcegroupstaggingapi get-resources \
    --region us-east-1 \
    --resource-type-filters "kms" \
    --tag-filters Key=env,Values=prod \
    --query 'ResourceTagMappingList[*].ResourceARN' \
    --output text | awk -F'[:/]' '{print $NF}'
  • 用--tag-filters指定标签键值对,Key是标签名,Values是标签值
  • --query提取资源ARN,再通过awk截取ARN末尾的密钥ID(兼容带key/和不带的ARN格式)

2. 筛选同时匹配多个标签的密钥(如env=prod且owner=kms)

aws resourcegroupstaggingapi get-resources \
    --region us-east-1 \
    --resource-type-filters "kms" \
    --tag-filters Key=env,Values=prod Key=owner,Values=kms \
    --query 'ResourceTagMappingList[*].ResourceARN' \
    --output text | awk -F'[:/]' '{print $NF}'
  • 多个标签筛选需重复Key=xxx,Values=xxx参数,只有同时满足所有标签的资源才会被返回

3. 输出包含标签的完整信息

如果需要查看密钥的标签详情,去掉--query和管道部分即可:

aws resourcegroupstaggingapi get-resources \
    --region us-east-1 \
    --resource-type-filters "kms" \
    --tag-filters Key=env,Values=prod

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:05:23