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

EC2 Auto Scaling Group扩容失败:KMS密钥状态异常问题排查

问题分析与解决方案

1. 先排查KMS密钥本身状态

报错中的Client.InvalidKMSKey.InvalidState首先指向密钥状态异常:

  • 登录AWS KMS控制台,定位到该客户托管密钥,确认其状态为启用(排除“已禁用”“待删除”状态)。
  • 若密钥处于待删除倒计时,立即取消删除计划;若已禁用,重新启用密钥。

2. 补充KMS密钥策略缺失的权限

你的KMS策略仅授予了root账户和管理员角色权限,但ASG启动加密EBS卷的实例时,需要允许EC2实例关联的IAM角色访问密钥。需在现有策略中添加以下声明:

{
    "Sid": "Allow EC2 Instance Role for EBS Encryption",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::303567773654:role/[你的EC2实例角色ARN]"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:EncryptionContext:aws:ebs:id": "vol-*"
        }
    }
}

替换[你的EC2实例角色ARN]为ASG实例配置文件绑定的IAM角色ARN。

权限说明

  • kms:GenerateDataKey*:用于生成加密EBS卷所需的数据密钥
  • kms:Decrypt:用于解密EBS卷的加密密钥
  • 条件kms:EncryptionContext:aws:ebs:id限制密钥仅用于EBS操作,缩小权限范围

3. 验证EC2实例角色的IAM权限

同时需确保EC2实例的IAM角色本身附加了以下权限策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "arn:aws:kms:[区域]:303567773654:key/[你的KMS密钥ID]"
        }
    ]
}

4. 额外检查项

  • 若ASG使用加密自定义AMI,需确认KMS密钥策略允许AMI关联的权限主体访问密钥
  • 验证ASG的实例配置文件是否正确绑定了上述IAM角色,无配置错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:14:56