使用AWS SSO对接第三方SSO账户时,如何获取CLI凭证?
无需创建IAM用户获取第三方AWS账户CLI凭证的解决方案
可以在不创建IAM用户的前提下获取第三方AWS账户的CLI凭证,核心通过AWS SSO权限配置和CLI命令实现,以下是可行方案:
修正AWS SSO CLI流程获取凭证
你之前尝试的aws sso命令方向正确,但可能流程有误。正确操作步骤:- 配置AWS SSO基础参数:
按提示输入SSO起始URL、区域,完成浏览器登录授权。aws configure sso - 查询可访问的第三方账户及角色:
aws sso list-accounts aws sso list-roles --account-id <第三方账户ID> - 生成第三方账户专属CLI配置文件:
选择目标第三方账户和对应角色后,CLI会自动生成带临时凭证的配置文件,后续通过aws configure sso --profile <第三方账户配置名>--profile <第三方账户配置名>即可直接调用该账户的AWS服务。
- 配置AWS SSO基础参数:
基于SSO会话通过STS AssumeRole跨账户取凭证
若已通过AWS SSO获取内部账户的会话凭证,且第三方账户已信任你的内部SSO角色、该角色拥有AssumeRole权限,可直接本地调用STS接口:aws sts assume-role \ --role-arn arn:aws:iam::<第三方账户ID>:role/<第三方信任角色名> \ --role-session-name sso-cross-account-session \ --profile <内部账户SSO配置文件>执行后返回的
AccessKeyId、SecretAccessKey、SessionToken可导出为环境变量:export AWS_ACCESS_KEY_ID=<返回的AccessKeyId> export AWS_SECRET_ACCESS_KEY=<返回的SecretAccessKey> export AWS_SESSION_TOKEN=<返回的SessionToken>后续CLI命令默认使用第三方账户权限。
CloudShell方案的替代说明
CloudShell因角色会话限制无法嵌套获取凭证,无需纠结此方法,直接在本地CLI完成上述操作即可。
内容的提问来源于stack exchange,提问作者CosmicMonkey
相关产品推荐
相关产品推荐

