aws sts assume-role
返回 Json 格式的凭证。有没有一种简单的方法(比如将它们放入环境变量中)以便后续调用aws
可以使用它们?
基本上,我想要一些类似sudo -i
AWS 的东西。
注意:我目前正在我的笔记本电脑上使用环境变量中的当前凭证执行此操作,但如果该解决方案也适用于原始角色凭证来自实例元数据的 EC2 实例,那就太好了。
答案1
您无需sts assume-role
明确调用命令,而是可以配置轮廓承担特定角色,然后缓存在 CLI 中。这是有据可查,但你基本上只是将其设置为文件中的普通配置文件~/aws/config
,如下所示:
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default
如果您在承担角色时强制执行 MFA(我强烈建议您这样做),它看起来会像这样:
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/jonsmith
要使用您设置的角色,您可以提供--profile
CLI 选项或确保使用AWS_PROFILE
配置文件名称设置环境变量。
当然,您也可以sts assume-role
明确调用该命令,然后您需要解析出适当的值并将它们放入以下环境变量中:AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
和AWS_SESSION_TOKEN
。