Come posso utilizzare l'interfaccia della linea di comando AWS per autenticare l'accesso alle risorse AWS con un token MFA?
Desidero utilizzare un token di autenticazione a più fattori (MFA) con l'interfaccia della linea di comando AWS (AWS CLI) per autenticare l'accesso alle mie risorse AWS.
Breve descrizione
Puoi attivare fino a otto dispositivi MFA per ogni utente AWS Identity and Access Management (IAM).
Nota: l'attivazione della MFA per l'utente root influisce solo sulle credenziali dell'utente root. Ogni identità IAM nell'account AWS dispone di una propria configurazione MFA.
Per attivare MFA, consulta Secure your root user sign-in with MFA (Protezione dell'accesso dell'utente root con MFA) e MFA in IAM.
Risoluzione
Per utilizzare l'interfaccia della linea di comando AWS per eseguire l'autenticazione alle risorse AWS, utilizza l'azione API GetSessionToken per ottenere credenziali temporanee.
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS, consulta Troubleshooting errors for the AWS CLI (Risoluzione degli errori per l'interfaccia della linea di comando AWS). Inoltre, assicurati di utilizzare la versione più recente dell'interfaccia della linea di comando AWS.
ARN del dispositivo MFA
Per ottenere l'ARN del dispositivo MFA, completa questi passaggi:
- Apri la console IAM.
- Nel pannello di navigazione, seleziona Utenti, quindi scegli l'utente IAM.
- Nella pagina Riepilogo, scegli la scheda Credenziali di sicurezza.
- In Dispositivo MFA assegnato, copia l'ARN del dispositivo MFA.
Utilizzo dell'interfaccia della linea di comando AWS per ottenere credenziali temporanee
Esegui il comando get-session-token:
aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
Output di esempio:
{ "Credentials": { "SecretAccessKey": "secret-access-key", "SessionToken": "temporary-session-token", "Expiration": "expiration-date-time", "AccessKeyId": "access-key-id" } }
Importante: assicurati che il numero di serie, il token e l'ARN del dispositivo MFA siano corretti. In caso contrario, potresti ricevere un messaggio di errore simile al seguente:
"An error occurred (AccessDenied) when calling the GetSessionToken operation: MultiFactorAuthentication failed, unable to validate MFA code. Please verify your MFA serial number is valid and associated with this user."
Per autenticare il dispositivo hardware MFA, il numero di serie si trova in genere sul retro del dispositivo e il valore è simile a GAHT12345678. Per autenticare il dispositivo virtuale MFA, il valore è simile a arn:aws:iam::123456789012:mfa/user.
Nota: l'interfaccia della linea di comando AWS supporta l'autenticazione MFA solo con un dispositivo MFA virtuale o hardware. L'interfaccia della linea di comando AWS non supporta l'autenticazione MFA con la chiave di sicurezza FIDO.
Per ulteriori informazioni, consulta Assign MFA devices in the AWS CLI or AWS API (Assegnazione di dispositivi MFA nell'interfaccia della linea di comando AWS o API AWS.
Utilizzo delle credenziali temporanee per esportare i valori in variabili di ambiente
Esegui i seguenti comandi per il sistema operativo (OS):
Linux
export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output export AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output
Windows
set AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output set AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output set AWS_SESSION_TOKEN=example-session-Token-as-in-previous-output
Prima di eseguire nuovamente il comando get-session-token, esegui i seguenti comandi per annullare l'impostazione delle variabili di ambiente:
Linux
unset AWS_ACCESS_KEY_ID unset AWS_SECRET_ACCESS_KEY unset AWS_SESSION_TOKEN
Windows
set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
Utilizzo di credenziali temporanee con profili denominati
È anche possibile utilizzare profili denominati per specificare i comandi che richiedono l'autenticazione MFA. Nel file delle credenziali che si trova nella cartella .aws della home directory dell'utente, aggiungi una nuova configurazione del profilo per emettere comandi autenticati con MFA.
Esempio di configurazione del profilo:
[mfa]aws_access_key_id = example-access-key-as-in-returned-output aws_secret_access_key = example-secret-access-key-as-in-returned-output aws_session_token = example-session-token-as-in-returned-output
Dopo che le credenziali sono scadute, esegui nuovamente il comando get-session-token, quindi esporta i valori restituiti nelle variabili di ambiente o nella configurazione del profilo.
Come best practice, si consiglia di eseguire uno script o un cron job in background che verifichi la scadenza dall'output del comando get-session-token. Se il token MFA è scaduto, assicurati che lo script o il cron job richieda una nuova autenticazione.
Quando utilizzi profili denominati per eseguire l'autenticazione, specifica l'opzione —profile seguita dal nome del profilo per verificare che le chiamate API utilizzino l'MFA per eseguire l'autenticazione.
Informazioni correlate
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata 4 mesi fa
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa