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

使用AWS CLI添加Cognito用户时遇缺失密钥错误,寻求解决方案

解决Cognito SignUp报错:Client is configured for secret but secret was not received

问题原因

你创建的Cognito用户池应用客户端启用了客户端密钥,但调用sign-up命令时没有提供对应的密钥校验参数,因此触发权限错误。


两种解决方法

方法1:修改命令,添加--secret-hash参数

首先需要生成符合要求的secret-hash值——这是通过HMAC-SHA256算法,将用户名和客户端ID拼接后用客户端密钥加密得到的结果。

可以用以下Python代码生成:

import hmac
import hashlib
import base64

# 替换成你的实际值
client_id = "<你的CLIENTID>"
client_secret = "<你的客户端密钥>"
username = "randy@mydomain.com"

message = username + client_id
digest = hmac.new(client_secret.encode('utf-8'), msg=message.encode('utf-8'), digestmod=hashlib.sha256).digest()
secret_hash = base64.b64encode(digest).decode()
print(secret_hash)

把生成的secret_hash填入命令,修改后的完整命令如下:

aws cognito-idp sign-up \
 --region us-east-1 \
 --client-id <CLIENTID> \
 --username randy@mydomain.com \
 --password password \
 --secret-hash <生成的SECRET_HASH>

方法2:禁用Cognito客户端的密钥校验

如果不需要客户端密钥,可以直接修改配置:

  • 登录AWS控制台,进入你的Cognito用户池
  • 切换到「应用集成」标签,找到当前使用的应用客户端
  • 点击「编辑」,取消勾选「生成客户端密钥」选项
  • 保存修改后,重新执行你原来的sign-up命令即可

补充说明

你遇到的教程过时问题,大概率是因为当前Cognito创建应用客户端时默认启用了密钥校验,而旧教程使用的是无密钥的客户端配置,导致命令参数不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:40:40