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

带加密根卷的EC2实例无法启动:根EBS卷持续处于挂载中

解决EC2实例挂载加密EBS卷卡在"attaching"状态的思路
  • 检查KMS密钥的密钥策略
    实例角色的权限只是单方面配置,KMS密钥自身的密钥策略必须允许该实例角色访问。需确认密钥策略中添加了允许实例角色ARN执行相关操作的语句,核心需要允许kms:Decrypt和kms:CreateGrant(实例挂载时会自动创建临时授权),示例配置:

    {
        "Sid": "AllowEC2InstanceRoleAccess",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::213456789:role/你的实例角色ARN"
        },
        "Action": [
            "kms:Decrypt",
            "kms:CreateGrant"
        ],
        "Resource": "*"
    }
    
  • 验证实例角色的信任关系
    确保实例角色的信任策略允许EC2服务扮演该角色,正确的信任策略应包含:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "ec2.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    

    若信任关系错误,实例无法获取角色权限,进而无法访问KMS密钥。

  • 确认区域一致性
    加密EBS卷仅能使用同区域的KMS密钥,需检查EC2实例所在的拉斯维加斯区域(us-west-4)与KMS密钥指定的区域(us-west-2)是否一致。跨区域密钥无法用于挂载本地EBS卷,这会直接导致挂载失败。

  • 核对EBS卷的加密密钥
    确认根EBS卷确实关联的是指定的KMS密钥arn:aws:kms:us-west-2:213456789:key/abc123,而非其他自定义密钥或AWS默认服务密钥。若卷使用的密钥不在实例角色的权限范围内,挂载会失败。

  • 查看日志定位问题

    • 检查CloudTrail日志,搜索Decrypt或CreateGrant操作的拒绝记录,可直接定位权限问题。
    • 查看EC2实例的系统日志(控制台实例详情→监控和故障排除→获取系统日志),其中会包含挂载失败的具体错误提示,比如KMS访问被拒的信息。
  • 用默认密钥测试
    创建一个使用AWS默认EBS加密密钥(aws/ebs)的卷,尝试挂载到实例。若挂载成功,说明问题出在自定义KMS密钥的权限配置;若仍失败,则需排查实例本身的其他问题(如子网配置、元数据服务访问限制等)。

  • 检查实例角色传递能力
    确认启动实例时正确指定了IAM角色,且实例所在子网未阻止对AWS元数据服务(169.254.169.254)的访问(安全组或NACL规则需允许)。实例无法访问元数据服务时,无法获取角色临时凭证,进而无法访问KMS密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:42:26