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

求助:CloudWatch触发Lambda启动带加密卷的EC2实例时出现启动客户端错误

解决CloudWatch触发Lambda启动加密卷EC2实例报"client error on launch"的KMS权限问题

核心原因

当EC2实例挂载的EBS卷使用AWS KMS密钥加密时,启动实例的**执行实体(此处为Lambda的IAM角色)**必须拥有该KMS密钥的解密权限,否则EC2无法解密卷,直接触发启动失败。

具体修复步骤

1. 配置Lambda执行角色的IAM权限

  • 进入IAM控制台,定位到Lambda函数关联的执行角色
  • 为该角色添加包含KMS权限的策略(替换your-kms-key-arn为实际密钥ARN):
{
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt",
        "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:region:account-id:key/your-kms-key-arn"
}
  • 同时确保角色拥有启动EC2的基础权限,比如ec2:StartInstances

2. 配置KMS密钥的密钥策略

  • 进入KMS控制台,找到加密EBS卷的目标密钥
  • 编辑密钥策略,添加Lambda执行角色作为授权实体,授予必要权限:
{
    "Sid": "AllowLambdaRoleToDecrypt",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::account-id:role/your-lambda-execution-role-name"
    },
    "Action": [
        "kms:Decrypt",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}

注意:KMS采用双重权限校验,IAM角色权限和密钥策略必须同时配置正确。

3. 验证Lambda执行日志

  • 在Lambda控制台测试函数,查看执行日志,确认是否存在AccessDeniedException类的KMS权限报错,以此验证权限配置是否生效

4. 排查其他潜在问题

若权限配置无误仍报错,检查:

  • KMS密钥是否处于可用状态,未被禁用或删除
  • EBS卷是否完好,无损坏或配置错误
  • 确认启动实例的权限主体是Lambda执行角色,而非EC2自身关联的IAM角色(启动加密卷时,权限要求针对启动操作的发起方)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:30:56