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.
Utilice un proveedor de credenciales específico
SDKUtiliza proveedores de credenciales para recuperar, administrar y proporcionar las credenciales de autenticación (como las claves de acceso y los identificadores de sesión) que se necesitan para acceder. Servicios de AWS
Los proveedores de credenciales simplifican la recuperación de credenciales de diversas fuentes, implementan las mejores prácticas de seguridad y respaldan estrategias de autenticación flexibles en AWS todos los entornos.
Especifique un proveedor de credenciales
Para omitir la cadena de proveedores de credenciales predeterminada, especifique qué proveedor de credenciales debe usar un cliente de servicio. Al proporcionar un proveedor de credenciales específico, se SDK omite el proceso de comprobar varias ubicaciones, lo que reduce ligeramente el tiempo necesario para crear un cliente de servicio.
Por ejemplo, si establece la configuración predeterminada mediante variables de entorno, proporcione un EnvironmentVariableCredentialsProvidercredentialsProvider
método en el generador de clientes de servicio, como se muestra en el siguiente fragmento de código:
Region region = Region.US_WEST_2; DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .build();
Para obtener una lista completa de los proveedores de credenciales y las cadenas de proveedores, consulte Todas las clases de implementación conocidas en la referencia deAPI. AwsCredentialsProvider
nota
También puede utilizar su propio proveedor de credenciales o cadenas de proveedores mediante la implementación de la AwsCredentialsProvider
interfaz.
Configure un proveedor de credenciales
Como ejemplo de configuración de la implementación de un proveedor de credenciales, es posible que desee SDK utilizar un subproceso en segundo plano para obtener previamente (recuperar por adelantado) las credenciales antes de que caduquen. De esta forma, puede evitar la llamada de bloqueo que recupera las credenciales nuevas.
A continuación se muestra un ejemplo en el que StsAssumeRoleCredentialsProvider
se crea un subproceso en segundo plano para obtener previamente las credenciales al establecer la asyncCredentialUpdateEnabled
propiedad true
en el generador:
S3Client s3Client = S3Client.builder() .credentialsProvider(StsAssumeRoleCredentialsProvider.builder() .asyncCredentialUpdateEnabled(true) .stsClient(StsClient.create()) .refreshRequest(r -> r .roleArn("arn:aws:iam::111122223333:role/S3-listbuckets-only-role") .roleSessionName("test-temp-session") .durationSeconds(900)) .build()) .build();
Cuando se invoca una operación s3Client
por primera vez, AssumeRoleRequest
se envía una a (). AWS Security Token Service STS STSdevuelve credenciales temporales que son válidas durante 15 minutos (900 segundos). La s3Client
instancia usa las credenciales almacenadas en caché hasta que llegue el momento de actualizarlas antes de que transcurran 15 minutos. De forma predeterminada, SDK intenta recuperar las credenciales nuevas para una sesión nueva entre 5 y 1 minuto antes de la fecha de caducidad de la sesión actual. La ventana de captura previa se puede configurar mediante las propiedades prefetchTime
ystaleTime
.
Puede configurar los siguientes proveedores de credenciales basados en sesión de forma similar:
-
StsWebIdentityTokenFileCredentialsProvider
-
StsGetSessionTokenCredentialsProvider
-
StsGetFederationTokenCredentialsProvider
-
StsAssumeRoleWithWebIdentityCredentialsProvider
-
StsAssumeRoleWithSamlCredentialsProvider
-
StsAssumeRoleCredentialsProvider
-
DefaultCredentialsProvider
(cuando delega en un proveedor de credenciales que usa sesiones) -
ProcessCredentialsProvider
-
WebIdentityTokenFileCredentialsProvider
-
ContainerCredentialsProvider
-
InstanceProfileCredentialsProvider