amazon-web-services - 如何使用 STSAssumeRoleSessionCredentialsProvider 和 roleSessionName 和 roleArn 为 AWS SDK for Java 2.x 进行配置?

标签 amazon-web-services amazon-s3 file-upload aws-java-sdk aws-java-sdk-2.x

目前适用于 AWS SDK for Java 1.x im,使用以下代码。

@Configuration
@ImportResource("classpath:aws-context.xml")
public class AmazonS3Config {
 @Bean(destroyMethod = "shutdown")
 public AmazonS3Client amazonS3Client(@Value("${aws.s3.roleSessionName}") String roleSessionName, 
 @Value("${aws.s3.roleArn}") String role) {
 AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
 builder.withRegion(Regions.US_EAST_1).withCredentials(new 
 STSAssumeRoleSessionCredentialsProvider.Builder(role, roleSessionName).build());
 return (AmazonS3Client)builder.build();
   }

如何为 AWS SDK for Java 2.x 做同样的事情?

谢谢

最佳答案

SDK V2 中 STSAssumeRoleSessionCredentialsProvider 的等价物是 StsAssumeRoleCredentialsProvider

所以 V2 中等效的 S3Client 初始化如下所示

public S3Client s3Client(@Value("${aws.s3.roleSessionName}") String roleSessionName,  
        @Value("${aws.s3.roleArn}") String role) {

 return S3Client
       .builder()
       .region(Region.US_EAST_1)
       .credentialsProvider(StsAssumeRoleCredentialsProvider
               .builder()
               .refreshRequest(() -> AssumeRoleRequest
                       .builder()
                       .roleArn(role)
                       .roleSessionName(roleSessionName)
                       .build())
               .build())
       .build();

maven/gradle 依赖组和包名称在 V2 中已更改为 software.amazon.awssdk。确保包含 S3STS 的依赖项。 Here是更改日志和 here是迁移指南。

关于amazon-web-services - 如何使用 STSAssumeRoleSessionCredentialsProvider 和 roleSessionName 和 roleArn 为 AWS SDK for Java 2.x 进行配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67272319/

相关文章:

java - 通用文件上传不起作用

java - 如何使用 Java Webapp 将文件上传到 MongoDB?

php - 德鲁巴 : File upload required?

amazon-web-services - Amazon S3 - 每个子域有 1 个存储桶和一个文件夹?

javascript - AWS SDK JS S3 getObject 流元数据

javascript - 如何仅使用 JavaScript 将 base64 编码的图像数据上传到 S3?

amazon-web-services - AWS Elastic Beanstalk 定价

java - 在 Amazon EC2 t2.micro 实例上运行的 Jar 内存不足

iphone - 从 iPhone 应用程序上传到 Amazon S3 服务

python - 使用 Boto3 嵌套键获取 S3 中文件的完整路径