EB CLI无法识别AWS CLI配置的SSO参数sso_start_url与sso_region问题
EB CLI适配SSO认证报错的解决方法
问题背景
已完成EB CLI安装,配置AWS CLI的SSO认证后,~/.aws/config文件内容如下:
[profile <profile_name>] sso_session = <session_name> sso_account_id = <account_no> sso_role_name = <role_name> region = <region> output = json [sso-session <session_name>] sso_start_url = <start_url> sso_region = <region> sso_registration_scopes = <scopes>
执行aws sso login --profile <profile_name>可正常完成SSO登录,但运行eb init --profile <profile_name>选择区域后,出现错误:
ERROR: InvalidConfigError - The profile "<profile_name>" is configured to use SSO but is missing required configuration: sso_start_url, sso_region
解决步骤
1. 升级EB CLI到最新版本
旧版EB CLI不支持**SSO会话(sso_session)**模式的配置,需升级至3.20.0及以上版本:
pip install --upgrade awsebcli
验证版本:
eb --version
2. 转换SSO配置格式(升级后仍报错时使用)
若升级后问题依旧,可将SSO会话模式的配置改为直接配置格式,把sso_session关联的参数移到profile节点下:
[profile <profile_name>] sso_start_url = <start_url> sso_region = <region> sso_account_id = <account_no> sso_role_name = <role_name> region = <region> output = json
修改后重新执行aws sso login --profile <profile_name>完成登录,再运行eb init --profile <profile_name>即可。
3. 清理冲突环境变量(可选)
若系统中存在AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY这类硬编码密钥的环境变量,会覆盖SSO配置,需临时取消设置:
unset AWS_ACCESS_KEY_ID unset AWS_SECRET_ACCESS_KEY
内容的提问来源于stack exchange,提问作者buzoherbert
相关产品推荐
相关产品推荐

