Especifique un proveedor de credenciales específico en el AWS SDK for Java 2.x - AWS SDK for Java 2.x

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Especifique un proveedor de credenciales específico en el AWS SDK for Java 2.x

Si bien la cadena de proveedores de credenciales predeterminada es práctica en muchos escenarios, especificar los proveedores de credenciales de forma explícita le permite tener un mayor control sobre el comportamiento, el rendimiento y la seguridad de la autenticación.

Entre los motivos por los que puede querer especificar un proveedor de credenciales se incluyen los siguientes:

  • La cadena de proveedores predeterminada comprueba varias fuentes de forma secuencial, lo que puede añadir latencia:

    // 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();
  • Debe utilizar ubicaciones no estándar para acceder a la configuración de credenciales:

    // 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();
  • Utilice credenciales diferentes para diferentes clientes de servicio. Por ejemplo, si la aplicación necesita acceder a varias AWS cuentas o usar permisos diferentes para distintos servicios:

    // 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 el comportamiento de actualización de credenciales:

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