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

使用awscli注册时遭遇NotAuthorizedException错误求助

Fixing "Unable to verify secret hash for client" Error in AWS Cognito Sign-Up

我之前也碰到过一模一样的问题!这个NotAuthorizedException错误的核心原因是你的Cognito应用客户端启用了客户端密钥(Client Secret),但你在调用sign-up命令时没有提供对应的--secret-hash参数来验证请求合法性。

方案1:关闭客户端密钥(快速解决)

如果你的业务场景不需要客户端密钥,直接关闭是最省事的办法:

  • 登录AWS控制台,进入目标Cognito用户池
  • 在左侧菜单栏选择「应用客户端」,找到你命令中使用的client-id对应的客户端
  • 点击「编辑」按钮,找到「生成客户端密钥」选项,取消勾选该复选框
  • 保存修改后,重新运行你原来的sign-up命令,就能正常执行了

方案2:生成并添加Secret Hash(保留客户端密钥)

如果必须保留客户端密钥,你需要基于用户名、客户端ID和客户端密钥生成SHA-256 HMAC哈希值,然后加入命令中。在Mac的iTerm2(oh-my-zsh环境)中可以这样操作:

  1. 先获取你的Cognito应用客户端密钥(在控制台应用客户端详情页可以找到)
  2. 执行以下命令生成Secret Hash(替换占位符为实际值):
# 替换以下内容:
# - admin@example.com:你的命令中的用户名
# - 6gj*********************bu:你的client-id
# - 你的客户端密钥:从控制台复制的客户端密钥
SECRET_HASH=$(echo -n "admin@example.com6gj*********************bu" | openssl dgst -sha256 -hmac "你的客户端密钥" | awk '{print $2}')
  1. 把生成的SECRET_HASH加入到原命令中:
aws cognito-idp sign-up \
--region us-east-2 \
--client-id 6gj*********************bu \
--username admin@example.com \
--password Passw0rd! \
--secret-hash $SECRET_HASH

为什么你之前的尝试没用?

你排查的区域配置、账号/应用重建、引号包裹这些操作,都没有触及问题的核心——客户端密钥启用后必须携带Secret Hash。哪怕新建账号或应用时默认启用了客户端密钥,依然会触发同样的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:27:45