AWS SAM部署失败:SignatureDoesNotMatch错误求助(IAM用户已获全权限)
SAM部署时SignatureDoesNotMatch错误排查方案
使用sam deploy --guided部署Hello World AWS SAM应用时遭遇签名不匹配错误,但所用IAM用户已拥有完整管理员权限。部署交互过程如下:
sam-app>sam deploy --guided
配置SAM部署
正在查找配置文件 [samconfig.toml] : 未找到 正在为'sam deploy'设置默认参数 ========================================= 堆栈名称 [sam-app]: AWS区域 [us-west-2]: #显示即将部署的资源变更,需要输入'Y'确认部署 部署前确认变更 [y/N]: n #SAM需要权限创建角色以连接模板中的资源 允许SAM CLI创建IAM角色 [Y/n]: y #操作失败时保留已预配置资源的状态 禁用回滚 [y/N]: y HelloWorldFunction可能未定义授权,是否确认? [y/N]: y 将参数保存到配置文件 [Y/n]: y SAM配置文件 [samconfig.toml]: SAM配置环境 [default]: 正在查找部署所需资源: 正在创建所需资源... 错误: 创建托管资源失败: 调用CreateChangeSet操作时出错 (SignatureDoesNotMatch): 我们计算的请求签名与您提供的签名不匹配。请检查您的AWS密钥访问密钥和签名方法。请查阅服务文档了解详细信息。
排查步骤:
- 核对凭证准确性:仔细检查
aws_access_key_id和aws_secret_access_key,确保无拼写错误、多余空格或特殊字符,密钥的大小写和符号必须完全匹配AWS控制台提供的内容。 - 确认区域一致性:部署时指定的区域(如本次的
us-west-2)要和本地AWS配置文件(~/.aws/config)中的区域保持一致,签名计算会依赖区域参数。 - 同步系统时间:本地机器时间与AWS服务器时间偏差超过5分钟会触发签名验证失败,将系统时间同步到NTP服务器即可解决。
- 重新配置凭证:删除本地旧的凭证缓存文件(如
~/.aws/credentials),运行aws configure重新输入凭证信息,避免缓存的错误凭证干扰。 - 更新SAM CLI版本:老旧版本的SAM CLI可能存在签名算法兼容问题,执行
pip install --upgrade aws-sam-cli升级到最新版。
内容的提问来源于stack exchange,提问作者user3812054
相关产品推荐
相关产品推荐

