Utilizza un provider di credenziali specifico - AWS SDK for Java 2.x

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à.

Utilizza un provider di credenziali specifico

SDKUtilizza i fornitori di credenziali per recuperare, gestire e fornire le credenziali di autenticazione (come chiavi di accesso e token di sessione) necessarie per l'accesso. Servizi AWS

I fornitori di credenziali semplificano il recupero delle credenziali da varie fonti, implementano le migliori pratiche di sicurezza e supportano strategie di autenticazione flessibili in tutti gli ambienti. AWS

Specificare un fornitore di credenziali

Per aggirare la catena di provider di credenziali predefinita, specifica quale provider di credenziali deve utilizzare un client di servizio. Quando fornite un fornitore di credenziali specifico, SDK salta il processo di verifica delle varie ubicazioni, il che riduce leggermente il tempo necessario per creare un client di servizio.

Ad esempio, se imposti la configurazione predefinita utilizzando variabili di ambiente, fornisci un EnvironmentVariableCredentialsProvideroggetto al credentialsProvider metodo sul service client builder, come mostrato nel seguente frammento di codice:

Region region = Region.US_WEST_2; DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .build();

Per un elenco completo dei fornitori di credenziali e delle catene di provider, vedete All Known Implementing Classes nel riferimento per. API AwsCredentialsProvider

Nota

È inoltre possibile utilizzare il proprio fornitore di credenziali o le proprie catene di fornitori implementando l'AwsCredentialsProviderinterfaccia.

Configurare un provider di credenziali

Come esempio di configurazione di un'implementazione di un provider di credenziali, potresti voler SDK utilizzare un thread in background per prerecuperare (recuperare in anticipo) le credenziali prima che scadano. In questo modo è possibile evitare la chiamata di blocco che recupera nuove credenziali.

Di seguito viene mostrato un esempio che crea un file StsAssumeRoleCredentialsProvider che utilizza un thread in background per prerecuperare le credenziali impostando la asyncCredentialUpdateEnabled proprietà su on the builder: true

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

Quando si richiama un'operazione on s3Client per la prima volta, un AssumeRoleRequest viene inviato a (). AWS Security Token Service STS STSrestituisce credenziali temporanee valide per 15 minuti (900 secondi). L's3Clientistanza utilizza le credenziali memorizzate nella cache fino al momento di aggiornarle prima che trascorrano i 15 minuti. Per impostazione predefinita, SDK tenta di recuperare nuove credenziali per una nuova sessione tra 5 minuti e 1 minuto prima della scadenza della sessione corrente. La finestra di pre-fetch è configurabile utilizzando le proprietà and. prefetchTime staleTime

È possibile configurare in modo analogo i seguenti provider di credenziali basati sulla sessione:

  • StsWebIdentityTokenFileCredentialsProvider

  • StsGetSessionTokenCredentialsProvider

  • StsGetFederationTokenCredentialsProvider

  • StsAssumeRoleWithWebIdentityCredentialsProvider

  • StsAssumeRoleWithSamlCredentialsProvider

  • StsAssumeRoleCredentialsProvider

  • DefaultCredentialsProvider(quando delega al provider di credenziali che utilizza le sessioni)

  • ProcessCredentialsProvider

  • WebIdentityTokenFileCredentialsProvider

  • ContainerCredentialsProvider

  • InstanceProfileCredentialsProvider