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

AWS Lambda密钥轮换测试触发Secret版本无轮换阶段ValueError

错误原因

这个报错是AWS官方密钥轮换模板内置的校验逻辑触发的,核心原因是你手动在Lambda控制台测试时传入的ClientRequestToken参数对应的密钥版本,没有被标记AWSPENDING轮换阶段:
正常的密钥轮换流程由Secrets Manager自动触发时,服务端会先创建新版本的密钥,为该版本绑定你传入的ClientRequestToken,同时打上AWSPENDING阶段标签,再调用Lambda函数。而你手动填入的自定义ClientRequestToken没有对应任何带AWSPENDING标签的版本,直接触发了代码中的校验报错。

排查与解决方法
  • 优先使用Secrets Manager官方测试入口测试:进入Secrets Manager控制台,找到对应密钥,在「轮换配置」栏点击测试轮换,由服务端自动生成合法参数调用Lambda,无需手动构造入参,可直接规避该错误。
  • 若必须在Lambda控制台手动测试,需先为你填入的ClientRequestToken绑定对应版本的AWSPENDING标签,可通过AWS CLI执行以下命令完成预配置:
aws secretsmanager put-secret-value \
  --secret-id <替换为你的密钥ARN> \
  --client-request-token <替换为你测试用的ClientRequestToken值> \
  --secret-string '{"username":"替换为实际用户名","password":"替换为测试密码"}' \
  --version-stages AWSPENDING
  • 检查Lambda执行角色的IAM权限,确认已包含以下必要权限,避免因权限不足无法读取密钥版本的阶段标签导致误判:
{
  "Effect": "Allow",
  "Action": [
    "secretsmanager:DescribeSecret",
    "secretsmanager:GetSecretValue",
    "secretsmanager:PutSecretValue",
    "secretsmanager:UpdateSecretVersionStage"
  ],
  "Resource": "<替换为你的密钥ARN>"
}
  • 确认你传入的SecretId为完整的密钥ARN,避免填写缩写或错误ID导致Lambda查询到错误的密钥资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:15:04