AWS STS在一个命令中承担角色 [英] AWS sts assume role in one command

查看:22
本文介绍了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"
    }
}

然后我手动将AccessKeyIdSecretAccessKeySessionToken的值复制并粘贴到一堆导出中,如下所示:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆