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à.
Fornitore di credenziali di processo
Nota
Per informazioni sulla comprensione del layout delle pagine delle impostazioni o sull'interpretazione della tabella Support by AWS SDKs and tools 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. credential_processPer configurare questo utilizzo, consultaUtilizzo di IAM Roles Anywhere per l'autenticazione AWS SDKs e gli strumenti.
Importante
L'credential_processimpostazione esegue un programma esterno sul sistema per recuperare le credenziali. Assicurati di considerare attendibile il programma specificato in questa impostazione, poiché chiunque abbia accesso in scrittura al tuo config file condiviso può modificare il comando eseguito. Proteggi il tuo config file con le autorizzazioni del file system appropriate per il tuo sistema operativo.
Nota
Di seguito viene descritto un metodo per reperire le credenziali da un processo esterno e potrebbe essere utilizzato se si esegue software all'esterno. AWS Se stai utilizzando una risorsa di AWS elaborazione, utilizza altri provider di credenziali. Se utilizzi questa opzione, assicurati che il file di configurazione sia il più bloccato possibile utilizzando le migliori pratiche di sicurezza per il tuo sistema operativo. Verifica che il tuo strumento di credenziali personalizzato non scriva alcuna informazione segretaStdErr, poiché è 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 un oggetto program/command che l'SDK invocherà. 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 autenticarti.
Nota
Il fornitore delle credenziali di processo fa parte di. Comprendi la catena di fornitori di credenziali Tuttavia, il fornitore delle credenziali di processo viene verificato solo dopo diversi altri provider appartenenti a 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, invece di affidarti alla catena di provider di credenziali per scoprire automaticamente quale provider restituisce credenziali valide, specifica nel codice l'uso del provider di credenziali di processo. È possibile specificare le fonti delle credenziali direttamente quando si creano i client di servizio.
Specificare il percorso del programma di credenziali
Il valore dell'impostazione è una stringa che contiene il percorso di un programma eseguito dall'SDK o dallo strumento di sviluppo 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 su 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, sia esso uno script o un programma binario, deve generare un output JSON STDOUT che corrisponda alla seguente sintassi.
{ "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 presume che le credenziali siano credenziali a lungo termine che non vengono aggiornate. In caso contrario, 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 di processo esterne come fa con le credenziali di assunzione del ruolo. Se il caching è necessario, dovrai implementarlo nel processo esterno.
Nota
AccountIdè facoltativo, quindi le credenziali funzionano anche senza di esse, ma fornirle consente una risoluzione ottimizzata degli endpoint per i servizi che le 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 di 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.
Supporto da parte 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 da AWS SDK per Java and the only. 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. https://docs.aws.amazon.com/sdk-for-go/api/aws/session/ |
| 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ì |