Java 通过jclouds使用AWS(S3)-如何承担角色
使用普通身份验证凭据时,我可以执行以下操作:Java 通过jclouds使用AWS(S3)-如何承担角色,java,amazon-web-services,amazon-s3,jclouds,aws-sts,Java,Amazon Web Services,Amazon S3,Jclouds,Aws Sts,使用普通身份验证凭据时,我可以执行以下操作: ContextBuilder.newBuilder("aws-s3").credentials(keyId, key).buildView(BlobStoreContext.class); 。。。访问S3的BlobStoreContext 在本机AmazonJavaAPI中,我可以使用安全令牌服务(STS)来承担角色,并使用临时凭证来访问S3或任何其他AWS服务 在jclouds中如何做到这一点?我想出来了 此代码段允许担任角色并使用临时凭据访问S
ContextBuilder.newBuilder("aws-s3").credentials(keyId, key).buildView(BlobStoreContext.class);
。。。访问S3的BlobStoreContext
在本机AmazonJavaAPI中,我可以使用安全令牌服务(STS)来承担角色,并使用临时凭证来访问S3或任何其他AWS服务
在jclouds中如何做到这一点?我想出来了
此代码段允许担任角色并使用临时凭据访问S3:
STSApi api = ContextBuilder.newBuilder("sts").credentials(keyId,
key).buildApi(STSApi.class);
AssumeRoleOptions assumeRoleOptions = new AssumeRoleOptions().durationSeconds(3600).externalId(externalId);
final UserAndSessionCredentials credentials = api.assumeRole(roleArn, sessionName, assumeRoleOptions);
Supplier<Credentials> credentialsSupplier = new Supplier<Credentials>() {
@Override
public Credentials get() {
return credentials.getCredentials();
}
};
BlobStoreContext context = ContextBuilder.newBuilder("aws-s3").credentialsSupplier(credentialsSupplier).buildView(BlobStoreContext.class);
STSApi-api=ContextBuilder.newBuilder(“sts”).credentials(keyId,
键)buildApi(STSApi.class);
AssumeRoleOptions AssumeRoleOptions=新的AssumeRoleOptions().durationSeconds(3600).externalId(externalId);
final UserandSessionRedentials credentials=api.assumeRole(角色学习、会话名称、assumeRoleOptions);
供应商证书供应商=新供应商(){
@凌驾
公共凭据获取(){
返回凭据。getCredentials();
}
};
BlobStoreContext context=ContextBuilder.newBuilder(“aws-s3”).credentialsSupplier(credentialsSupplier).buildView(BlobStoreContext.class);