Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Spécifiez un fournisseur d'informations d'identification spécifique dans le AWS SDK for Java 2.x
Bien que la chaîne de fournisseurs d'informations d'identification par défaut soit pratique pour de nombreux scénarios, la spécification explicite des fournisseurs d'informations d'identification vous permet de mieux contrôler le comportement, les performances et la sécurité de l'authentification.
Les raisons pour lesquelles vous souhaiterez peut-être spécifier un fournisseur d'informations d'identification peuvent inclure :
-
La chaîne de fournisseurs par défaut vérifie plusieurs sources de manière séquentielle, ce qui peut ajouter de la latence :
// 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();
-
Vous devez utiliser des emplacements non standard pour accéder à la configuration des informations d'identification :
// 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();
-
Utilisez des informations d'identification différentes pour les différents clients du service. Par exemple, si votre application doit accéder à plusieurs AWS comptes ou utiliser des autorisations différentes pour différents services :
// 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();
-
Contrôlez le comportement d'actualisation des informations d'identification :
// 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();