Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过jclouds使用AWS(S3)-如何承担角色_Java_Amazon Web Services_Amazon S3_Jclouds_Aws Sts - Fatal编程技术网

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);