在AWS SDK 2中使用假设角色需要进行以下步骤:
AwsCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKeyId, secretAccessKey));
StsClient stsClient = StsClient.builder()
.region(Region.AWS_GLOBAL)
.credentialsProvider(credentialsProvider)
.build();
AssumeRoleRequest assumeRoleRequest = AssumeRoleRequest.builder()
.roleArn(roleArn)
.roleSessionName(roleSessionName)
.build();
AssumeRoleResponse assumeRoleResponse = stsClient.assumeRole(assumeRoleRequest);
Credentials assumedRoleCredentials = assumeRoleResponse.credentials();
AwsCredentialsProvider assumedRoleCredentialsProvider = StaticCredentialsProvider.create(AwsBasicCredentials.create(assumedRoleCredentials.accessKeyId(), assumedRoleCredentials.secretAccessKey(), assumedRoleCredentials.sessionToken()));
StsClient assumedRoleStsClient = StsClient.builder()
.region(Region.AWS_GLOBAL)
.credentialsProvider(assumedRoleCredentialsProvider)
.build();
// 示例:列出S3存储桶的内容
ListBucketsResponse response = assumedRoleStsClient.listBuckets();
List buckets = response.buckets();
for (S3Bucket bucket : buckets) {
System.out.println(bucket.name());
}
请注意,以上代码示例中的变量需要根据实际情况进行替换。