下面列出了org.apache.hadoop.fs.s3a.Constants#software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@VisibleForTesting
protected AwsCredentialsProvider getAsync2Provider(Configuration config) {
switch(config.get(Constants.AWS_CREDENTIALS_PROVIDER)) {
case ACCESS_KEY_PROVIDER:
return StaticCredentialsProvider.create(AwsBasicCredentials.create(
config.get(Constants.ACCESS_KEY), config.get(Constants.SECRET_KEY)));
case EC2_METADATA_PROVIDER:
return InstanceProfileCredentialsProvider.create();
case NONE_PROVIDER:
return AnonymousCredentialsProvider.create();
case ASSUME_ROLE_PROVIDER:
return new STSCredentialProviderV2(config);
default:
throw new IllegalStateException(config.get(Constants.AWS_CREDENTIALS_PROVIDER));
}
}
private AwsCredentialsProvider credentialSourceCredentialProvider(CredentialSourceType credentialSource) {
switch (credentialSource) {
case ECS_CONTAINER:
return ContainerCredentialsProvider.builder().build();
case EC2_INSTANCE_METADATA:
return InstanceProfileCredentialsProvider.create();
case ENVIRONMENT:
return AwsCredentialsProviderChain.builder()
.addCredentialsProvider(SystemPropertyCredentialsProvider.create())
.addCredentialsProvider(EnvironmentVariableCredentialsProvider.create())
.build();
default:
throw noSourceCredentialsException();
}
}
public STSCredentialProviderV2(Configuration conf) {
AwsCredentialsProvider awsCredentialsProvider = null;
if (S3StoragePlugin.ACCESS_KEY_PROVIDER.equals(conf.get(Constants.ASSUMED_ROLE_CREDENTIALS_PROVIDER))) {
awsCredentialsProvider = StaticCredentialsProvider.create(AwsBasicCredentials.create(
conf.get(Constants.ACCESS_KEY), conf.get(Constants.SECRET_KEY)));
} else if (S3StoragePlugin.EC2_METADATA_PROVIDER.equals(conf.get(Constants.ASSUMED_ROLE_CREDENTIALS_PROVIDER))) {
awsCredentialsProvider = InstanceProfileCredentialsProvider.create();
}
final StsClientBuilder builder = StsClient.builder()
.credentialsProvider(awsCredentialsProvider)
.region(S3FileSystem.getAWSRegionFromConfigurationOrDefault(conf))
.httpClientBuilder(initConnectionSettings(conf));
S3FileSystem.getStsEndpoint(conf).ifPresent(e -> {
try {
builder.endpointOverride(new URI(e));
} catch (URISyntaxException use) {
throw UserException.sourceInBadState(use).buildSilently();
}
});
initUserAgent(builder, conf);
final AssumeRoleRequest assumeRoleRequest = AssumeRoleRequest.builder()
.roleArn(conf.get(Constants.ASSUMED_ROLE_ARN))
.roleSessionName(UUID.randomUUID().toString())
.build();
this.stsAssumeRoleCredentialsProvider = StsAssumeRoleCredentialsProvider.builder()
.refreshRequest(assumeRoleRequest)
.stsClient(builder.build())
.build();
}
private AwsCredentialsProvider getAwsCredentials() {
return InstanceProfileCredentialsProvider.create();
}