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à.
Memorizzazione nella cache delle credenziali in AWS SDK for Java 2.x
AWS SDK for Java 2.x Implementa la memorizzazione nella cache delle credenziali per migliorare le prestazioni e ridurre le chiamate alle fonti delle credenziali. Questa sezione spiega come funziona la memorizzazione nella cache delle credenziali e come configurarla per le applicazioni.
Comprendere la memorizzazione nella cache dei provider di credenziali
I provider di credenziali nell'SDK for Java 2.x utilizzano diverse strategie di caching:
-
Memorizzazione nella cache interna delle credenziali: molti provider memorizzano nella cache le credenziali recuperate.
-
Aggiornamento automatico: i provider con credenziali memorizzate nella cache implementano meccanismi di aggiornamento.
Provider con memorizzazione nella cache delle credenziali interne
I seguenti provider di credenziali memorizzano le credenziali internamente, anche quando si creano nuove istanze:
-
Provider di credenziali del profilo di istanza: memorizza nella cache le credenziali dal servizio di metadati Amazon EC2 .
-
Provider di credenziali del contenitore: memorizza nella cache le credenziali dall'endpoint dei metadati del contenitore.
-
Provider basati su STS: memorizza nella cache le credenziali temporanee di (STS). AWS Security Token Service
-
Fornitori di token di identità Web: memorizza nella cache le credenziali ottenute dai token di identità Web.
-
Provider di credenziali di processo: memorizza nella cache le credenziali provenienti da processi esterni.
Provider senza memorizzazione nella cache interna
I seguenti provider non implementano la memorizzazione nella cache interna:
-
Provider di credenziali variabili d'ambiente
-
Provider di credenziali di proprietà del sistema
-
Provider di credenziali statiche
Configurazione della memorizzazione nella cache delle credenziali
Puoi personalizzare il comportamento di memorizzazione nella cache durante la creazione di provider di credenziali:
Tempo stantio
Controlla quando le credenziali sono considerate obsolete e devono essere aggiornate:
.staleTime(Duration.ofMinutes(2)) // Consider stale 2 minutes before expiration.
Ora di prefetch
Determina quando iniziare ad aggiornare le credenziali prima che scadano:
.prefetchTime(Duration.ofMinutes(10)) // Start refresh 10 minutes before expiration.
Aggiornamenti asincroni
Abilita l'aggiornamento delle credenziali in background:
.asyncCredentialUpdateEnabled(true) // Refresh credentials in background thread.
Durata della sessione
Per i provider basati su STS, controlla per quanto tempo le credenziali temporanee rimangono valide:
.refreshRequest(r -> r.durationSeconds(3600)) // 1 hour session.
Esempio di configurazione delle credenziali di memorizzazione nella cache
Come esempio di configurazione della memorizzazione nella cache per un'implementazione di un provider di credenziali, potresti voler fare in modo che l'SDK utilizzi un thread in background per prerecuperare (recuperare in anticipo) le credenziali prima che scadano. In questo modo puoi 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
StsAssumeRoleCredentialsProvider provider = StsAssumeRoleCredentialsProvider.builder() .refreshRequest(r -> r .roleArn("arn:aws:iam::111122223333:role/example-role") .roleSessionName("example-session") .durationSeconds(3600)) // 1 hour session .staleTime(Duration.ofMinutes(5)) // Consider stale 5 minutes before expiration .prefetchTime(Duration.ofMinutes(10)) // Start refresh 10 minutes before expiration .asyncCredentialUpdateEnabled(true) // Refresh in background .build(); S3Client s3 = S3Client.builder() .credentialsProvider(provider) .build();
Quando si richiama un'operazione on s3Client
per la prima volta, un AssumeRoleRequest
viene inviato a (STS). AWS Security Token Service STS restituisce credenziali temporanee valide per 15 minuti (900 secondi). L's3Client
istanza utilizza le credenziali memorizzate nella cache fino al momento di aggiornarle prima che trascorrano i 15 minuti. Per impostazione predefinita, l'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
Comprendere la memorizzazione nella cache delle credenziali consente di ottimizzare le prestazioni e l'affidabilità dell'applicazione quando si lavora con. Servizi AWS