Utilizzare credenziali temporanee con le risorse AWS - AWS Identity and Access Management

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à.

Utilizzare credenziali temporanee con le risorse AWS

È possibile utilizzare le credenziali di sicurezza temporanee per effettuare richieste a livello di codice verso le risorse AWS utilizzando la AWS CLI o le API AWS (tramite gli SDK AWS). Le credenziali temporanee forniscono le stesse autorizzazioni delle credenziali di sicurezza a lungo termine, come ad esempio le credenziali degli utenti IAM. Tuttavia, ci sono alcune differenze:

  • Quando effettui una chiamata con le credenziali di sicurezza provvisorie, quest'ultima deve includere un token di sessione, restituito insieme a tali credenziali. AWS utilizza il token di sessione per convalidare le credenziali di sicurezza provvisorie.

  • Le credenziali temporanee scadono dopo un intervallo di tempo specificato. Dopo che le credenziali temporanee scadono, tutte le chiamate effettuate con tali credenziali verranno respinte, pertanto dovrai generare un nuovo set di credenziali temporanee. Le credenziali temporanee non possono essere prorogate o aggiornate oltre l'intervallo specificato in origine.

  • Quando si utilizzano credenziali temporanee per effettuare una richiesta, l'entità potrebbe includere un set di tag. Questi tag provengono da tag di sessione e tag associati al ruolo assunto. Per ulteriori informazioni sui tag di sessione, consultare Passare i tag di sessione in AWS STS.

Se si utilizzano SDK AWS SDKs, the AWS Command Line Interface (AWS CLI) o Tools for Windows PowerShell, il modo per ottenere e utilizzare le credenziali di sicurezza temporanee differisce in base al contesto. Se esegui comandi di codice, AWS CLI o Tools for Windows PowerShell in un'istanza EC2, puoi sfruttare i vantaggi dei ruoli per Amazon EC2. Altrimenti, puoi richiamare un'API AWS STS per ottenere le credenziali provvisorie e utilizzarle in modo esplicito per effettuare chiamate ai servizi AWS.

Nota

Puoi utilizzare AWS Security Token Service (AWS STS) per creare e fornire agli utenti attendibili le credenziali di sicurezza provvisorie per controllare l'accesso alle risorse AWS. Per ulteriori informazioni su AWS STS, consulta Credenziali di sicurezza temporanee in IAM. AWS STS è un servizio globale che dispone di un endpoint predefinito in https://sts.amazonaws.com. Questo endpoint si trova nella regione Stati Uniti orientali (Virginia settentrionale), sebbene le credenziali ottenute da questo e da altri endpoint siano valide a livello globale. Queste credenziali funzionano con servizi e risorse in qualsiasi regione. È anche possibile scegliere di effettuare chiamate API AWS STS agli endpoint in una qualsiasi delle regioni supportate. Ciò può ridurre la latenza effettuando le richieste da server in una regione geograficamente più vicina a te. Indipendentemente dalla regione dalla quale provengono, le credenziali funzionano a livello globale. Per ulteriori informazioni, consulta Gestire AWS STS in un Regione AWS.

Utilizzo delle credenziali temporanee nelle istanze Amazon EC2

Se desideri eseguire comandi o codice AWS CLI in un'istanza EC2, il modo migliore per ottenere le credenziali consiste nell'utilizzare i ruoli per Amazon EC2. È possibile creare un ruolo IAM che specifichi le autorizzazioni che si desidera concedere alle applicazioni che vengono eseguite sulle istanze EC2. Quando si avvia l'istanza, si associa il ruolo all'istanza.

I comandi di applicazioni, AWS CLI e Tools for Windows PowerShell eseguiti sull'istanza possono quindi ottenere le credenziali di sicurezza temporanee automatiche dai metadati dell'istanza. Non è necessario ottenere esplicitamente le credenziali di sicurezza temporanee. Gli SDK AWS, la AWS CLI e Strumenti per Windows PowerShell ottengono automaticamente le credenziali da Instance Metadata Service (IMDS) EC2 e le utilizzano. Le credenziali temporanee hanno le autorizzazioni che si definiscono per il ruolo associato all'istanza.

Per maggiori informazioni ed esempi, consultare quanto segue:

Utilizzo delle credenziali di sicurezza temporanee con gli SDK AWS

Per utilizzare le credenziali di sicurezza temporanee nel codice, si richiama a livello di codice un'API AWS STS come AssumeRole e si estraggono le credenziali e il token di sessione risultanti. È quindi possibile utilizzare tali valori come credenziali per le chiamate successive a AWS. L'esempio seguente mostra pseudocodice per come utilizzare le credenziali di sicurezza temporanee se si sta utilizzando un AWS SDK:

assumeRoleResult = AssumeRole(role-arn); tempCredentials = new SessionAWSCredentials( assumeRoleResult.AccessKeyId, assumeRoleResult.SecretAccessKey, assumeRoleResult.SessionToken); s3Request = CreateAmazonS3Client(tempCredentials);

Per un esempio scritto in Python (usando AWS SDK for Python (Boto)), consultare Passaggio a un ruolo IAM (API AWS). In questo esempio viene illustrato come richiamare AssumeRole per ottenere le credenziali di sicurezza temporanee e quindi utilizzare tali credenziali per effettuare una chiamata ad Amazon S3.

Per dettagli su come richiamare AssumeRole, GetFederationToken e altre operazioni API, consulta la Documentazione di riferimento delle API AWS Security Token Service. Per informazioni su come ottenere le credenziali di sicurezza provvisorie e il token di sessione dal risultato, consulta la documentazione dell'SDK in uso. Puoi trovare la documentazione relativa a tutti gli SDK AWS nella pagina della documentazione di AWS principale, nella sezione SDK e kit di strumenti.

È necessario accertarsi che sia possibile ottenere un nuovo set di credenziali prima della scadenza. In alcuni SDK, è possibile utilizzare un provider che gestisca il proprio processo di aggiornamento delle credenziali; controllare la documentazione del kit SDK che si sta utilizzando.

Utilizzo delle credenziali di sicurezza temporanee con la AWS CLI

È possibile utilizzare le credenziali di sicurezza temporanee con AWS CLI Questo può essere utile per testare le policy.

Tramite la AWS CLI, puoi richiamare un'API AWS STS come AssumeRole o GetFederationToken e acquisire l'output risultante. L'esempio seguente mostra una chiamata a AssumeRole che invia l'output a un file. Nell'esempio, si presume che il parametro profile sia un profilo nel file di configurazione della AWS CLI. Si presume inoltre di fare riferimento alle credenziali di un utente IAM che disponga delle autorizzazioni per assumere il ruolo.

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/role-name --role-session-name "RoleSession1" --profile IAM-user-name > assume-role-output.txt

Quando il comando viene completato, è possibile estrarre l'ID della chiave di accesso, la chiave di accesso segreta e il token di sessione da qualunque posto sia stato instradato. È possibile farlo manualmente o utilizzando uno script. È possibile assegnare questi valori alle variabili di ambiente.

Quando si eseguono i comandi AWS CLI, AWS CLI cerca le credenziali in un determinato ordine, prima nelle variabili di ambiente e poi nel file di configurazione. Pertanto, dopo aver messo le credenziali temporanee nelle variabili di ambiente, AWS CLI utilizza quelle credenziali come impostazione predefinita. Se specifichi un parametro profile nel comando, la AWS CLI ignora le variabili di ambiente e cerca nel file di configurazione della AWS CLI, consentendoti di ignorare le credenziali nelle variabili di ambiente, se necessario.

L'esempio seguente mostra il modo in cui è possibile impostare le variabili di ambiente per le credenziali di sicurezza temporanee e chiamare un comando AWS CLI. Poiché nessun parametro profile è incluso nel comando AWS CLI, AWS CLI cerca le credenziali innanzitutto nelle variabili di ambiente e quindi utilizza le credenziali provvisorie.

Linux

$ export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token> $ aws ec2 describe-instances --region us-west-1

Windows

C:\> SET AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE C:\> SET AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> SET AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of token> C:\> aws ec2 describe-instances --region us-west-1

Utilizzo delle credenziali di sicurezza temporanee con le operazioni API

Se effettui richieste API HTTPS dirette ad AWS, puoi firmarle con le credenziali di sicurezza provvisorie ottenute da AWS Security Token Service (AWS STS). A tale scopo, è possibile utilizzare l'ID della chiave di accesso e la chiave di accesso segreta ricevute da AWS STS. Utilizzare l'ID della chiave di accesso e la chiave di accesso segreta nello stesso modo in cui si utilizzano le credenziali a lungo termine per firmare una richiesta. Aggiungere inoltre alla richiesta API il token della sessione ricevuto da AWS STS. Aggiungere il token della sessione a un'intestazione HTTP o a un parametro della stringa di query denominato X-Amz-Security-Token. Aggiungi il token di sessione all'intestazione HTTP o il parametro della stringa di query, ma non entrambi. Per ulteriori informazioni sulla firma delle richieste API HTTPS, consulta Firma delle richieste API AWS nella Riferimenti generali di AWS.

Ulteriori informazioni

Per ulteriori informazioni sull'utilizzo di AWS STS con altri servizi AWS, consulta i collegamenti seguenti.