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à.
Provider di credenziali di processo
Nota
Per informazioni sulla comprensione del layout delle pagine delle impostazioni o sull'interpretazione della tabella Support by AWS SDK e strumenti che segue, consulta. Informazioni sulle pagine delle impostazioni di questa guida
Gli SDK forniscono un modo per estendere la catena di fornitori di credenziali per casi d'uso personalizzati. Questo provider può essere utilizzato per fornire implementazioni personalizzate, come il recupero delle credenziali da un archivio di credenziali locale o l'integrazione con il provider di identità locale.
Ad esempio, IAM Roles Anywhere utilizza per ottenere credenziali temporanee credential_process per conto dell'applicazione. Per configurarlo credential_process per questo utilizzo, consultaUtilizzo di IAM Roles Anywhere per l'autenticazione AWS SDKs e gli strumenti.
Nota
Di seguito viene descritto un metodo di acquisizione delle credenziali da un processo esterno che potrebbe essere utilizzato se si esegue software all'esterno di. AWS Se stai basandoti su una risorsa di AWS calcolo, usa altri provider di credenziali. Se utilizzi questa opzione, devi assicurarti che il file di configurazione sia il più bloccato possibile utilizzando le migliori pratiche di sicurezza per il tuo sistema operativo. Verifica che lo strumento per le credenziali personalizzato non scriva informazioni segreteStdErr, in quanto gli SDK sono in AWS CLI grado di acquisire e registrare tali informazioni, esponendole potenzialmente a utenti non autorizzati.
Configura questa funzionalità utilizzando quanto segue:
credential_process- impostazione dei AWSconfigfile condivisi-
Specifica un comando esterno che l'SDK o lo strumento esegue per conto dell'utente per generare o recuperare le credenziali di autenticazione da utilizzare. L'impostazione specifica il nome di a program/command che verrà richiamato dall'SDK. Quando l'SDK richiama il processo, attende che il processo scriva i dati JSON.
stdoutIl provider personalizzato deve restituire le informazioni in un formato specifico. Tali informazioni contengono le credenziali che l'SDK o lo strumento possono utilizzare per autenticare l'utente.
Nota
Il provider delle credenziali di processo fa parte di. Comprendi la catena di fornitori di credenziali Tuttavia, il fornitore delle credenziali di processo viene controllato solo dopo diversi altri provider di questa serie. Pertanto, se si desidera che il programma utilizzi le credenziali di questo provider, è necessario rimuovere altri provider di credenziali validi dalla configurazione o utilizzare un profilo diverso. In alternativa, anziché affidarsi alla catena di fornitori di credenziali per scoprire automaticamente quale provider restituisce credenziali valide, specificate l'uso del provider di credenziali di processo nel codice. È possibile specificare le fonti delle credenziali direttamente quando si creano client di servizio.
Specificare il percorso del programma di credenziali
Il valore dell'impostazione è una stringa che contiene il percorso di un programma che l'SDK o lo strumento di sviluppo esegue per conto dell'utente:
-
Il percorso e il nome del file possono essere composti solo dai seguenti caratteri: A-Z, a-z, 0-9, trattino (-), trattino basso (_), punto (.), barra (/), barra rovesciata (\) e spazio.
-
Se il percorso o il nome del file contiene uno spazio, circondare il percorso completo e il nome del file con virgolette doppie (" ").
-
Se un nome di parametro o un valore di parametro contiene uno spazio, circondare tale elemento con virgolette doppie (" "). È possibile racchiudere solo il nome o il valore, non la coppia.
-
Non includete alcuna variabile di ambiente nelle stringhe. Ad esempio, non includere
$HOMEo%USERPROFILE%. -
Non specificare la cartella home come
~. * È necessario specificare il percorso completo o il nome del file di base. Se è presente un nome di file di base, il sistema tenta di trovare il programma all'interno delle cartelle specificate dalla variabile diPATHambiente. Il percorso varia a seconda del sistema operativo:L'esempio seguente mostra l'impostazione di credential_process nel file condiviso su.
configLinux/macOScredential_process ="/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"L'esempio seguente mostra l'impostazione di credential_process nel file condiviso in Windows.
configcredential_process ="C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces" -
Può essere specificato all'interno di un profilo dedicato:
[profilecred_process] credential_process =/Users/username/process.shregion =us-east-1
Output valido dal programma di credenziali
L'SDK esegue il comando come specificato nel profilo e quindi legge i dati dal flusso di output standard. Il comando specificato, che si tratti di uno script o di un programma binario, deve generare un output JSON STDOUT che corrisponda alla sintassi seguente.
{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "RFC3339 timestamp for when the credentials expire", "AccountId": "the AWS account ID associated with these credentials" }
Nota
Al momento della stesura del presente documento, la chiave Version deve essere configurata su 1. Questo valore potrebbe incrementare nel tempo, man mano che la struttura evolve.
La Expiration chiave è un timestamp in formato RFC3339. Se la Expiration chiave non è presente nell'output dello strumento, l'SDK presuppone che le credenziali siano credenziali a lungo termine che non si aggiornano. Altrimenti, le credenziali sono considerate credenziali temporanee e vengono aggiornate automaticamente eseguendo nuovamente il comando prima della scadenza delle credenziali. credential_process
Nota
L'SDK non memorizza nella cache le credenziali dei processi esterni nello stesso modo in cui utilizza le credenziali di ruolo. Se il caching è necessario, dovrai implementarlo nel processo esterno.
Nota
AccountIdè facoltativo, quindi le credenziali funzionano anche senza di esso, ma fornirlo consente una risoluzione degli endpoint ottimizzata per i servizi che lo supportano. Quando l'SDK sa a quale account appartengono le credenziali, alcuni AWS servizi possono utilizzare endpoint specifici dell'account. Ad esempio, Amazon S3 può indirizzare le richieste a un endpoint con ambito account anziché a un endpoint globale. AccountIdIn caso contrario, l'SDK deve fare affidamento su altri meccanismi per determinare l'account, altrimenti non può utilizzare il routing degli endpoint basato sull'account.
Il processo esterno può restituire un codice diverso da zero per indicare che si è verificato un errore durante il recupero delle credenziali.
Support di AWS SDK e strumenti
I seguenti SDK supportano le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali. Tutte le impostazioni delle proprietà del sistema JVM sono supportate solo da AWS SDK per Java and the. AWS SDK per Kotlin
| SDK | Supportata | Note o ulteriori informazioni |
|---|---|---|
| AWS CLI v2 | Sì | |
| SDK per C++ | Sì | |
| SDK per Go V2 (1.x) | Sì | |
| SDK per Go 1.x (V1) | Sì | Per utilizzare le impostazioni dei config file condivisi, devi attivare il caricamento dal file di configurazione; vedi Sessioni. |
| SDK per Java 2.x | Sì | |
| SDK per Java 1.x | Sì | |
| SDK per 3.x JavaScript | Sì | |
| SDK per 2.x JavaScript | Sì | |
| SDK per Kotlin | Sì | |
| SDK per.NET 4.x | Sì | |
| SDK per.NET 3.x | Sì | |
| SDK per PHP 3.x | Sì | |
| SDK per Python (Boto3) |
Sì | |
| SDK per Ruby 3.x | Sì | |
| SDK per Rust | Sì | |
| SDK per Swift | Sì | |
| Strumenti per V5 PowerShell | Sì | |
| Strumenti per PowerShell V4 | Sì |