Provider di credenziali di processo - AWS SDKs e strumenti

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 SDKs and tools riportata di seguito, vedereInformazioni sulle pagine delle impostazioni di questa guida.

SDKs 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. Verificate che lo strumento per le credenziali personalizzato non scriva alcuna informazione segretaStdErr, poiché è in AWS CLI grado di acquisire e registrare tali informazioni, esponendole potenzialmente a utenti non autorizzati. SDKs

Configura questa funzionalità utilizzando quanto segue:

credential_process- impostazione dei AWS config file 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 programma/comando che verrà richiamato dall'SDK. Quando l'SDK richiama il processo, attende che il processo scriva i dati JSON. stdout Il 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 includere alcuna variabile di ambiente nelle stringhe. Ad esempio, non includere $HOME o%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 di PATH ambiente. Il percorso varia a seconda del sistema operativo:

    L'esempio seguente mostra l'impostazione di credential_process nel file condiviso config su Linux/macOS.

    credential_process = "/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"

    L'esempio seguente mostra l'impostazione di credential_process nel file condiviso su Windows. config

    credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
  • Può essere specificato all'interno di un profilo dedicato:

    [profile cred_process] credential_process = /Users/username/process.sh region = 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" }
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 RFC3339 formattato. 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.

Il processo esterno può restituire un codice diverso da zero per indicare che si è verificato un errore durante il recupero delle credenziali.

Support by AWS SDKs and tools

Di seguito sono SDKs supportate 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