EC2实例上多个AWS账户的凭证

时间:2016-10-03 09:35:46

标签: amazon-web-services amazon-ec2 aws-sdk

我正在寻找一种使用在EC2实例上运行的AWS SDK(可能不相关的Java)访问多个AWS账户上的AWS资源的方法。

更准确地说,假设有两个AWS账户:

  • 测试

prod 帐户的EC2实例上运行了一个Java应用程序,该帐户创建了一个AmazonEC2Client实例(来自AWS Java SDK)。我希望能够从那里为测试 prod 帐户创建客户端实例。

我可以使用本地计算机上的配置文件执行此操作,但还没有想出如何在EC2实例上执行此操作。

1 个答案:

答案 0 :(得分:2)

您可以通过以下两种方式之一进行操作;

<强> AssumeRole

使用AWS安全令牌服务AssumeRole。实际的实现取决于您,但是您可以为EC2实例分配IAM Role,然后使用Java SDK中的AssumeRole函数从生产角色切换到测试(反之亦然)

<强>配置文件

听起来你已经知道如何在本地进行此操作,但它可以在EC2中复制(取决于用例)。也就是说,我强烈建议反对它,而是遵循最佳实践并使用STS:AssumeRole(上图)。

实际上,最好(在这里做一些关于你实际上要做的事情的假设)为生产和测试建立一个单独的EC2实例,在这种情况下你可以根据需要分配适当的角色。

此外,如果我们讨论的是更大的部署,您可能需要探索Consolidated Billing,这样可以让您通过为每个(但只有一个结算帐户)使用单独的AWS账户来完全隔离您的生产和测试环境。要了解有关它的更多信息,我建议您查看一下这篇文章:https://blog.codeship.com/separate-aws-production-and-development-accounts/