在当前 shell 会话中使用“aws sts accept-role”返回的凭证的最佳方法是什么?

在当前 shell 会话中使用“aws sts accept-role”返回的凭证的最佳方法是什么?

aws sts assume-role返回 Json 格式的凭证。有没有一种简单的方法(比如将它们放入环境变量中)以便后续调用aws可以使用它们?

基本上,我想要一些类似sudo -iAWS 的东西。

注意:我目前正在我的笔记本电脑上使用环境变量中的当前凭证执行此操作,但如果该解决方案也适用于原始角色凭证来自实例元数据的 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

要使用您设置的角色,您可以提供--profileCLI 选项或确保使用AWS_PROFILE配置文件名称设置环境变量。

当然,您也可以sts assume-role明确调用该命令,然后您需要解析出适当的值并将它们放入以下环境变量中:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN

相关内容