AWS STS在一个命令中承担角色 [英] AWS sts assume role in one command
本文介绍了AWS STS在一个命令中承担角色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
要在CLI中承担AWS角色,我执行以下命令:
aws sts assume-role --role-arn arn:aws:iam::123456789123:role/myAwesomeRole --role-session-name test --region eu-central-1
这给了我一个遵循架构的输出:
{
"Credentials": {
"AccessKeyId": "someAccessKeyId",
"SecretAccessKey": "someSecretAccessKey",
"SessionToken": "someSessionToken",
"Expiration": "2020-08-04T06:52:13+00:00"
},
"AssumedRoleUser": {
"AssumedRoleId": "idOfTheAssummedRole",
"Arn": "theARNOfTheRoleIWantToAssume"
}
}
然后我手动将AccessKeyId
、SecretAccessKey
和SessionToken
的值复制并粘贴到一堆导出中,如下所示:
export AWS_ACCESS_KEY_ID="someAccessKeyId"
export AWS_SECRET_ACCESS_KEY="someSecretAccessKey"
export AWS_SESSION_TOKEN="someSessionToken"
以最终承担角色。
我如何才能一口气完成这项工作?我的意思是,无需在exports
上复制和粘贴aws sts ...
命令的输出。
推荐答案
最后,一位同事与我分享了这个一气呵成的很棒的代码片段:
eval $(aws sts assume-role --role-arn arn:aws:iam::123456789123:role/myAwesomeRole --role-session-name test | jq -r '.Credentials | "export AWS_ACCESS_KEY_ID=(.AccessKeyId)
export AWS_SECRET_ACCESS_KEY=(.SecretAccessKey)
export AWS_SESSION_TOKEN=(.SessionToken)
"')
除AWS CLI外,它只需要通常安装在任何Linux桌面上的jq
。
这篇关于AWS STS在一个命令中承担角色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文