Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Specificate un fornitore di credenziali specifico nel AWS SDK for Java 2.x
Sebbene la catena di provider di credenziali predefinita sia utile per molti scenari, la specifica esplicita dei provider di credenziali offre un maggiore controllo sul comportamento di autenticazione, sulle prestazioni e sulla sicurezza.
I motivi per cui potresti voler specificare un provider di credenziali potrebbero includere:
-
La catena di provider predefinita controlla più fonti in sequenza, il che può aggiungere latenza:
// 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();
-
È necessario utilizzare posizioni non standard per accedere alla configurazione delle credenziali:
// 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();
-
Utilizza credenziali diverse per diversi client di servizio. Ad esempio, se l'applicazione deve accedere a più AWS account o utilizzare autorizzazioni diverse per servizi diversi:
// 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();
-
Controlla il comportamento di aggiornamento delle credenziali:
// 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();