在当前shell会话中使用由`aws sts assume-role`返回的凭证有什么好方法?

aws sts assume-role以Json格式返回证书。 有没有一个简单的方法(如把它们放在环境variables中),以便后续的调用aws可以使用它们?

基本上,我想像sudo -i的AWS。

注意:我目前正在使用envvariables中的当前凭证在我的笔记本电脑上执行此操作,但如果此解决scheme也适用于原始angular色凭证来自实例元数据的EC2实例,那将会很不错。

您不必显式地调用sts assume-role命令,而是可以configuration一个configuration文件 ,该configuration文件假定一个特定的angular色,然后将其caching在CLI中。 这是有据可查的 ,但你基本上只是把它设置成一个普通的configuration文件在你的~/aws/config文件中,就像这样:

 [profile marketingadmin] role_arn = arn:aws:iam::123456789012:role/marketingadmin source_profile = default 

如果你在担任angular色时强制执行MFA(我强烈build议你这样做),它看起来像这样:

 [profile marketingadmin] role_arn = arn:aws:iam::123456789012:role/marketingadmin source_profile = default mfa_serial = arn:aws:iam::123456789012:mfa/jonsmith 

要使用您设置的angular色,您可以提供--profile CLI选项,或者确保使用configuration文件名称设置AWS_PROFILE环境variables。

您当然也可以显式调用sts assume-role命令,然后您需要parsing出适当的值并将它们放入以下环境variables: AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN