AWS SSO与CodeArtifact登录需手动修改配置文件区域问题求助
解决方案
你可以通过以下三种方式无需手动修改配置文件解决区域不匹配的问题,优先级从高到低按需选择:
- 单命令指定区域参数
执行不同操作时单独通过--region参数指定对应区域,完全不依赖配置文件的默认区域配置:- 执行SSO登录时指定SSO服务所在的us-east-1:
aws sso login --profile Default --region us-east-1 - 调用CodeArtifact接口时指定域名所在的us-west-2:
aws codeartifact get-authorization-token --domain MY-domain --domain-owner 1234567890 --region us-west-2 --query authorizationToken --output text
- 执行SSO登录时指定SSO服务所在的us-east-1:
- 临时修改环境变量
容器运行时通过环境变量覆盖配置文件的默认区域设置,环境变量优先级高于.aws/config配置:# 先设置区域为us-east-1完成SSO登录 export AWS_DEFAULT_REGION=us-east-1 aws sso login --profile Default # 再切换区域为us-west-2完成CodeArtifact登录 export AWS_DEFAULT_REGION=us-west-2 # 后续执行CodeArtifact相关操作 - 拆分profile配置参数
直接在.aws/config的对应profile中分开配置默认服务区域和SSO专属区域,一次配置永久生效,不需要来回修改:
配置完成后直接执行[profile Default] region = us-west-2 # 普通AWS服务调用默认用该区域 sso_region = us-east-1 # SSO登录专属区域,不会影响其他服务调用 # 保留原有sso_start_url、sso_account_id、sso_role_name等配置即可aws sso login --profile Default即可正常完成验证,调用CodeArtifact接口也无需额外加参数。
内容的提问来源于stack exchange,提问作者Ray Koren
相关产品推荐
相关产品推荐

