As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Especifique um provedor de credenciais específico no AWS SDK for Java 2.x
Embora a cadeia de provedores de credenciais padrão seja conveniente para muitos cenários, especificar explicitamente os provedores de credenciais oferece maior controle sobre o comportamento, o desempenho e a segurança da autenticação.
Os motivos pelos quais você pode querer especificar um provedor de credenciais podem incluir:
-
A cadeia de fornecedores padrão verifica várias fontes sequencialmente, o que pode adicionar latência:
// The default provider chain checks might check multiple sources until it finds // sufficient configuration. S3Client s3Client = S3Client.builder().build(); // You can specify exactly where to look. S3Client optimizedClient = S3Client.builder() .credentialsProvider(InstanceProfileCredentialsProvider.create()) .build();
-
Você precisa usar locais não padrão para acessar a configuração de credenciais:
// Use configuration from a custom file location. S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileFile(ProfileFile.builder() .content(Paths.get("/custom/path/to/configuration/file")) .type(ProfileFile.Type.CONFIGURATION) // Expects all non-default profiles to be prefixed with "profile". .build()) .profileName("custom") .build()) .build();
-
Use credenciais diferentes para clientes de serviços diferentes. Por exemplo, se seu aplicativo precisar acessar várias AWS contas ou usar permissões diferentes para serviços diferentes:
// S3 client using one set of credentials. S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.create("s3-readonly")) .build(); // DynamoDB client using different credentials. DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .credentialsProvider(ProfileCredentialsProvider.create("dynamodb-admin")) .build();
-
Controle o comportamento de atualização de credenciais:
// Create a provider with custom refresh behavior. StsAssumeRoleCredentialsProvider customRefreshProvider = StsAssumeRoleCredentialsProvider.builder() .refreshRequest(AssumeRoleRequest.builder() .roleArn("arn:aws:iam::123456789012:role/my-role") .roleSessionName("custom-session") .build()) .stsClient(StsClient.create()) .asyncCredentialUpdateEnabled(true) // Use a background thread to prefetch credentials. .build(); S3Client s3Client = S3Client.builder() .credentialsProvider(customRefreshProvider) .build();