使用serverless-better-credentials插件时AWS SSO登录遇Profile未找到错误求助
解决Serverless结合AWS SSO会话与serverless-better-credentials插件时的
Profile default not found错误 问题场景
执行serverless info --aws-profile elevator-robot时触发ProcessCredentialsProviderFailure: Profile default not found错误,但AWS SSO配置(~/.aws/config)、Serverless配置均已正确设置,且通过导出环境变量能正常运行。
解决方案
1. 在Serverless配置中明确指定AWS Profile
修改serverless.json,在provider节点下添加profile字段,确保框架默认使用目标SSO profile,避免 fallback 到default:
{ "service": "dog", "frameworkVersion": "3", "provider": { "name": "aws", "runtime": "nodejs18.x", "profile": "elevator-robot" }, "functions": { "dog": { "handler": "index.handler" } }, "plugins": [ "serverless-better-credentials" ] }
2. 更新serverless-better-credentials插件到最新版本
旧版本插件可能存在SSO会话解析的兼容性问题,执行更新命令:
npm update --save-dev serverless-better-credentials
3. 验证AWS SSO登录有效性
先确认SSO会话处于正常状态,执行以下命令检查身份信息:
aws sts get-caller-identity --profile elevator-robot
若命令返回正常身份数据,说明SSO登录无问题;若失败,重新执行aws sso login --profile elevator-robot完成登录。
4. 检查AWS配置文件权限
确保~/.aws/config和~/.aws/credentials(若存在)的权限为600,避免因权限过高导致读取异常:
chmod 600 ~/.aws/config chmod 600 ~/.aws/credentials
5. 尝试移除插件,使用Serverless原生SSO支持
Serverless Framework 3.x已原生支持AWS SSO,可暂时移除serverless-better-credentials插件,直接执行命令测试:
serverless info --aws-profile elevator-robot
若运行正常,说明插件存在兼容性冲突,无需使用该插件即可实现SSO认证。
内容的提问来源于stack exchange,提问作者aphexlog
相关产品推荐
相关产品推荐

