当前位置: 首页 > 知识库问答 >
问题:

如何使用 IAM 角色通过 AWS 开发工具包 (java) 从 ECS 容器调用 s3 存储桶

谯翔
2023-03-14

我需要使用aws sdk从ECS容器中读取s3 bucket中的文件。最好的选择是什么?。我尝试使用默认的aws creds give初始化aws客户端,但没有成功。我跟着https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/ec2-iam-roles.html但InstanceProfileCredentialsProvider也会贬值。

共有1个答案

赵刚豪
2023-03-14

尝试下面的片段创建一个对象,并将您得到的错误的详细信息

S3Client s3Client = S3Client.builder().region(<>).build();
 类似资料:
  • 场景:我在同一个帐户下有一个EC2实例和一个S3 bucket,我在该EC2上的web应用程序希望访问该bucket中的资源。 在官方文档之后,我使用创建了一个IAM角色,并将其分配给EC2实例。根据我的理解,现在我的web应用程序应该可以访问桶。但是,经过试验,我似乎必须添加桶策略,如下所示: 否则我就被禁止进入。 但是,既然我已经向EC2实例授予了IAM角色,为什么还要使用这个桶策略呢?

  • 我已经读了很多文档,看了很多视频,但是我对IAM角色和Bucket策略仍然很困惑。让我困惑的是: 1)我创建了一个Bucket。那时我可以将它公有或私有。如果我将它公有,那么任何人或任何应用程序都可以“看到”Bucket中的对象。我认为可以将权限设置为添加/删除/获取/列出Bucket中的对象。如果是这样,那么为什么我需要为S3 Bucket添加任何IAM角色,或者添加任何Bucket策略(???

  • 我想知道PySpark是否支持使用IAM角色进行S3访问。具体来说,我有一个业务限制,我必须承担AWS角色才能访问给定的存储桶。使用boto时可以这样做(因为它是API的一部分),但我无法找到关于PySpark是否支持开箱即用的明确答案。 理想情况下,我希望能够在本地以独立模式运行时扮演一个角色,并将我的SparkContext指向该s3路径。我发现非IAM呼叫通常会随之而来: 是否存在提供IAM

  • 我正尝试使用IAM角色从spark读取s3桶中的csv文件,但在上获得 我安装了没有hadoop的Spark 2.4.4,安装了hadoop 3.2.1以及hadoop-aws-3.2.1.jar和aws-java-sdk-1.11.655.jar。我必须安装一个没有hadoop的spark版本,因为作为spark构建一部分的hadoop jars是来自2016年的2.7.3版本。 附加到角色的“

  • 我正在尝试使用AWS ECS在docker容器中运行boto3 python脚本。我的脚本需要访问SQS(获取 为了让docker容器在我的本地机器上运行,我能够使用以下docker run命令将我的aws凭据传递到docker容器中。 <代码>docker run-v ~/。aws:/root/。aws 最近ECS宣布: 亚马逊ECS现在支持任务的IAM角色。为任务指定IAM角色时,其容器可以使

  • 我尝试使用EMR工件存储库将emrfs-hadoop-assembly及其依赖项打包到应用程序中。 我查看了想通过Maven/Gradle获取的jar的pom.xml,得到了artifactId和groupId,但构建工具无法解决这些问题。