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

如何通过编程/CLI工具找出30天未使用的KMS密钥?

识别超过30天未使用的KMS密钥

CLI方式(以AWS KMS为例)

可以用AWS CLI结合bash脚本批量排查,脚本会遍历所有KMS密钥,查询最近30天的调用统计,筛选出无调用记录的密钥:

#!/bin/bash
# 计算30天前的UTC时间,格式符合KMS API要求
THIRTY_DAYS_AGO=$(date -d "-30 days" +%Y-%m-%dT%H:%M:%SZ)

# 遍历所有KMS密钥ID
for key_id in $(aws kms list-keys --query 'Keys[*].KeyId' --output text); do
    # 获取密钥别名(方便识别,可选)
    alias=$(aws kms list-aliases --key-id $key_id --query 'Aliases[0].AliasName' --output text)
    # 查询最近30天的总调用次数
    usage=$(aws kms get-key-usage-statistics --key-id $key_id --start-time $THIRTY_DAYS_AGO --query 'KeyUsageStatistics[*].TotalCalls' --output text)
    
    # 无调用统计或调用次数为0时,标记为未使用
    if [ -z "$usage" ] || [ "$usage" -eq 0 ]; then
        echo "未使用密钥:ID=$key_id 别名=$alias"
    fi
done

使用前确保已配置AWS CLI权限(需要kms:ListKeys、kms:ListAliases、kms:GetKeyUsageStatistics权限),执行脚本即可输出结果。

编程方式(Python + Boto3)

用Python结合AWS SDK(Boto3)实现批量排查,逻辑和CLI一致,适合需要进一步处理结果的场景:

import boto3
from datetime import datetime, timedelta

# 初始化KMS客户端
kms_client = boto3.client('kms')

# 计算30天前的UTC时间
thirty_days_ago = datetime.utcnow() - timedelta(days=30)
start_time = thirty_days_ago.strftime('%Y-%m-%dT%H:%M:%SZ')

# 获取所有KMS密钥列表
keys = kms_client.list_keys()['Keys']

for key in keys:
    key_id = key['KeyId']
    # 获取密钥别名
    aliases = kms_client.list_aliases(KeyId=key_id)['Aliases']
    alias = aliases[0]['AliasName'] if aliases else '无别名'
    
    # 查询最近30天的调用统计
    try:
        usage_stats = kms_client.get_key_usage_statistics(
            KeyId=key_id,
            StartTime=start_time
        )['KeyUsageStatistics']
        total_calls = usage_stats[0]['TotalCalls'] if usage_stats else 0
    except:
        # 新创建或无统计数据的密钥默认视为未使用
        total_calls = 0
    
    if total_calls == 0:
        print(f"未使用密钥:ID={key_id} 别名={alias}")

其他云厂商适配思路

如果使用Azure Key Vault或GCP Cloud KMS,逻辑类似:

  • Azure:用az keyvault key list获取密钥,结合az monitor metrics list查询密钥调用指标
  • GCP:用gcloud kms keys list获取密钥,结合gcloud monitoring metrics query查询调用统计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:22:18