Carica credenziali temporanee da un processo esterno - 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à.

Carica credenziali temporanee da un processo esterno

avvertimento

Di seguito viene descritto un metodo per ottenere credenziali temporanee da un processo esterno. Questo può essere potenzialmente pericoloso, quindi procedi con cautela. Se possibile, dovrebbero essere preferiti altri fornitori di credenziali. Se si utilizza questa opzione, è necessario assicurarsi che il config file sia il più protetto possibile utilizzando le migliori pratiche di sicurezza per il sistema operativo in uso.

Assicurati che lo strumento per le credenziali personalizzate non scriva StdErr informazioni segrete su. Gli SDK AWS CLI possono acquisire e registrare tali informazioni, esponendole potenzialmente a utenti non autorizzati.

Con l'SDK for Java 2.x, puoi acquisire credenziali temporanee da un processo esterno per casi d'uso personalizzati. Esistono due modi per configurare questa funzionalità.

Usa l'credential_processimpostazione

Se disponi di un metodo che fornisce credenziali temporanee, puoi integrarlo aggiungendo l'credential_processimpostazione come parte di una definizione di profilo nel config file. Il valore specificato deve utilizzare il percorso completo del file di comando. Se il percorso del file contiene spazi, è necessario racchiuderlo tra virgolette.

L'SDK chiama il comando esattamente come indicato e quindi legge i dati JSON da. stdout

Gli esempi seguenti mostrano l'uso di questa impostazione per percorsi di file senza spazi e percorsi di file con spazi.

Linux/macOS
Nessuno spazio nel percorso del file
[profile process-credential-profile] credential_process = /path/to/credential/file/credential_file.sh --custom-command custom_parameter
Spazi nel percorso del file
[profile process-credential-profile] credential_process = "/path/with/space to/credential/file/credential_file.sh" --custom-command custom_parameter
Windows
Nessuno spazio nel percorso del file
[profile process-credential-profile] credential_process = C:\Path\To\credentials.cmd --custom_command custom_parameter
Spazi nel percorso del file
[profile process-credential-profile] credential_process = "C:\Path\With Space To\credentials.cmd" --custom_command custom_parameter

Il seguente frammento di codice mostra come creare un client di servizio che utilizza le credenziali temporanee definite come parte del profilo denominato. process-credential-profile

Region region = Region.US_WEST_2; S3Client s3Client = S3Client.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create("process-credential-profile")) .build();

Per informazioni dettagliate sull'utilizzo di un processo esterno come fonte di credenziali temporanee, consulta la sezione relativa alle credenziali di processo nella Guida di riferimento agli SDK e agli AWS strumenti.

Utilizzo dell'ProcessCredentialsProvider

In alternativa all'utilizzo delle impostazioni nel config file, puoi utilizzare gli SDK ProcessCredentialsProvider per caricare credenziali temporanee utilizzando Java.

Gli esempi seguenti mostrano varie versioni di come specificare un processo esterno utilizzando ProcessCredentialsProvider e configurare un client di servizio che utilizza le credenziali temporanee.

Linux/macOS
Nessuno spazio nel percorso del file
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("/path/to/credentials.sh optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Spazi nel percorso del file
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("/path\\ with\\ spaces\\ to/credentials.sh optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Windows
Nessuno spazio nel percorso del file
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("C:\\Path\\To\\credentials.exe optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Spazi nel percorso del file
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("\"C:\\Path\\With Spaces To\\credentials.exe\" optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();