gpt4 book ai didi

java - AWS 角色 : How does permissions transition from an EC2 instance to applications running in the instance?

转载 作者:行者123 更新时间:2023-11-30 05:31:29 24 4
gpt4 key购买 nike

TLDR;如何使用 AWS 服务将 Java 应用程序从开发移动到生产(在 AWS 云上)。

了解 AWS IAM 角色适用于 EC2 等 AWS 服务,因此在这些服务下运行的应用程序将承担分配给该角色的权限。

IAM roles are meant to be assumed by authorized entities, such as IAM users, applications, or an AWS service such as EC2.

我不清楚权限如何从具有某种角色(例如 S3RWRole)的 EC2 实例转换到实例中运行的(java)应用程序?

在应用程序开发过程中,这就是我们所做的 -假设我有一个简单的 S3 应用程序,它正在处理某个 S3 存储桶中的文件。我通过配置AWS客户端确保Java代码/应用程序在开发过程中具有必要的权限。

AWSCredentials credentials = new BasicAWSCredentials(
"<AWS accesskey>",
"<AWS secretkey>"
);

然后配置/获取S3客户端,

AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.US_EAST_2)
.build();

然后执行一些S3操作,

s3client.putObject(
bucketName,
"Docs/file.txt",
new File("/home/me/file.txt")
);

现在,它在生产中看起来如何。
我认为 AwSCredential 仍然是必需的。他们不是吗???好吧,让我假设它们是必需的(以避免运行时错误)。因此,我创建了一个 IAM 用户 ProdJavaUserApp,现在 Java 应用程序正在使用 ProdJavaUserApp 凭据/权限运行。
但现在说,该应用程序运行的 EC2 实例具有 S3RWRole,将 S3RWRole 的权限接管/替换 ProdJavaUserApp

我还需要了解什么,有人可以解释一下吗?

最佳答案

当 AWS 角色附加到实例时,除非您特别提及其他一些 AWS 访问权限和 key ,否则这些默认“凭证”将用于所有操作。如果您未提及任何访问/ key ,则会应用默认角色凭据。这就像您在计算机上安装 aws cli 并使用 aws 凭证进行配置一样。

因此,您可以简单地在 s3 调用中跳过 .withCredentials 参数。

关于java - AWS 角色 : How does permissions transition from an EC2 instance to applications running in the instance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com