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

Credentials for multiple AWS accounts on EC2 instance

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

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

prod 帐户的 EC2 实例上有一个 Java 应用程序 运行,它创建了一个 AmazonEC2Client 实例(来自 AWS Java 开发工具包)。我希望能够从那里为 testprod 帐户创建客户端实例。

我可以在本地计算机上使用配置文件执行此操作,但还不知道如何在 EC2 实例上执行此操作。

您可以选择以下两种方式之一;

担任角色

使用 AWS Security Token Service AssumeRole. The actual implementation would be up to you, but you can assign an IAM Role to the EC2 Instance, and then use the AssumeRole function in the Java SDK 从生产角色切换到测试角色(反之亦然)。

个人资料

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


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

此外,如果我们讨论的是更大的部署,您可能想探索 Consolidated Billing which would let you isolate your production and testing environments completely by using separate AWS accounts for each (but a single billing account). To learn more about it, I would suggest taking a look at this article: https://blog.codeship.com/separate-aws-production-and-development-accounts/