如何在 aws-cli 中“切换角色”?

如何在 aws-cli 中“切换角色”?

我正在为一家拥有多个 aws 账户的公司签约。他们授予我登录账户的访问权限,我在 Web 控制台中将“角色切换”到我工作的项目账户。在 Web GUI 中,它可以正常工作。

我该如何做同样的事情aws-cli?我只有登录帐户的访问密钥,没有权限创建用户和访问项目帐户中的密钥。这可能吗?

答案1

当然有可能!

假设你已经登录账户中的凭证~/.aws/credentials,可能是这样的:

~ $ cat ~/.aws/credentials
[customer-login]
aws_access_key_id = AKIABCDEFGHJKLMNOPQR
aws_secret_access_key = ZxCvBnMaSdFgHjKlQwErTyUiOp

您需要做的就是添加另一个配置文件,~/.aws/credentials该配置文件将使用上述配置文件来切换账户到您的项目帐户角色。您还需要项目帐户角色 ARN- 您可以在 Web 控制台中找到我是->角色切换到项目帐户。假设项目帐号是 123456789012...

[customer-project]
role_arn = arn:aws:iam::123456789012:role/your-project-role-name   # << Change this
source_profile = customer-login

完成这些之后你就可以测试它是否有效:

~ $ aws --profile customer-project sts get-caller-identity
{
    "Account": "123456789012",
    "UserId": "AROA1B2C3D4E5F6G7H8I:botocore-session-1538120713",
    "Arn": "arn:aws:sts::123456789012:assumed-role/your-project-role-name/botocore-session-1538120713"
}

如您所见,您现在位于项目帐户中,帐户 ID 为 123456789012。

如果您想要始终使用此配置文件,aws-cli您可以这样做:

~ $ export AWS_DEFAULT_PROFILE=customer-project
~ $ aws sts get-caller-identity
... will be the same output as above, even without specifying --profile ...

欲了解更多信息,请查看此帖子:https://aws.nz/best-practice/cross-account-access-with-aws-cli/

另请检查:

相关内容