繁体   English   中英

Java AWS开发工具包-如何使用Java API中的IAM配置文件上传文件

[英]Java AWS SDK - How to upload file using IAM profile from Java API

我刚刚开始为项目使用AWS。 我想编写一个将关键文件上传到s3存储桶的项目。 我不想公开任何密钥,以便所有其他开发人员/用户都可以访问上载的文档。 请提供一些开始的指针。

我目前的执行情况:

 return new AmazonS3Client(new AWSCredentials() {
    @Override
    public String getAWSAccessKeyId() {
    return accessKey;
    }

   @Override
   public String getAWSSecretKey() {
     return accessKeySecret;
   }, clientConfiguration )

然后我使用amazonS3Client.putObject(putReq); 上传文件。 因此,在这里,我公开了使其他同事能够下载/查看文件的密钥。 任何人都可以使用它从s3cmd,浏览器插件等下载/上传文件。

在阅读AWS文档时,我知道我可以使用EC2实例并设置IAM配置文件。 但是我不确定如何使用Java代码。 请提供一些链接和示例

查看InstanceProfileCredentialsProvider类。 它从实例的元数据获取IAM凭据(访问/秘密密钥)。 在具有允许访问S3的策略的IAM角色下启动实例。

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new InstanceProfileCredentialsProvider()).build();

资料来源

如果您的用户需要访问上载到S3的权限,那么他们将需要访问密钥,因此您无能为力。

但是,您可以做的是给他们提供密钥,这些密钥具有将文件上传到S3的权限,但没有读取/下载的权限。 因此,您将拥有一个具有PutObject权限的上传策略,以及一个具有List / Get权限的读取策略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM