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

Utilizzo di credenziali temporanee con le risorse AWS

Puoi utilizzare credenziali di sicurezza temporanee per effettuare richieste programmatiche di AWS risorse utilizzando l' AWS API AWS CLI or (utilizzando 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 si effettua una chiamata utilizzando credenziali di sicurezza temporanee, la chiamata deve includere un token di sessione, che viene restituito insieme a tali credenziali temporanee. AWS utilizza il token di sessione per convalidare le credenziali di sicurezza temporanee.

  • 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 AWS STS.

Se utilizzi gli AWS SDK, il AWS Command Line Interface(AWS CLI) o gli strumenti per Windows PowerShell, il modo per ottenere e utilizzare le credenziali di sicurezza temporanee varia a seconda del contesto. Se esegui codice o PowerShell comandi Tools for Windows all'interno di un'istanza EC2, puoi sfruttare i ruoli per Amazon EC2. AWS CLI 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 usare AWS Security Token Service (AWS STS) per creare e fornire a utenti affidabili credenziali di sicurezza temporanee in grado di controllare l'accesso alle tue risorse. AWS Per ulteriori informazioni su AWS STS, vedereCredenziali di sicurezza temporanee in IAM. AWS STS è un servizio globale con un endpoint predefinito inhttps://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. Puoi anche scegliere di effettuare chiamate AWS STS API verso gli 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 AWS CLI comandi o codice all'interno di un'istanza EC2, il metodo consigliato 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.

Le applicazioni e AWS CLI i PowerShell comandi Tools for Windows eseguiti sull'istanza possono quindi ottenere credenziali di sicurezza temporanee automatiche dai metadati dell'istanza. Non è necessario ottenere esplicitamente le credenziali di sicurezza temporanee. Gli AWS SDK e gli strumenti per Windows ottengono PowerShell automaticamente le credenziali dall'EC2 Instance Metadata Service (IMDS) e le utilizzano. AWS CLI 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 credenziali di sicurezza temporanee nel codice, chiamate a livello di codice un' AWS STS API simile a un'API AssumeRole ed estraete le credenziali e il token di sessione risultanti. Questi valori vengono quindi utilizzati come credenziali per le chiamate successive a. AWS L'esempio seguente mostra lo pseudocodice su come utilizzare le credenziali di sicurezza temporanee se utilizzi un SDK: AWS

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 (AWS API). 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 per tutti gli AWS SDK nella pagina di AWS documentazione principale, nella sezione SDK e Toolkit.

È 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 profile parametro sia un profilo nel file di configurazione. 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 AWS CLI esegui i comandi, AWS CLI cerca le credenziali in un ordine specifico, prima nelle variabili di ambiente e poi nel file di configurazione. Pertanto, dopo aver inserito le credenziali temporanee nelle variabili di ambiente, AWS CLI utilizza tali credenziali per impostazione predefinita. (Se specificate un profile parametro nel comando, AWS CLI salta le variabili di ambiente. Al contrario, viene AWS CLI visualizzato nel file di configurazione, che consente di sovrascrivere le credenziali nelle variabili di ambiente, se necessario.)

L'esempio seguente mostra come impostare le variabili di ambiente per le credenziali di sicurezza temporanee e quindi chiamare un comando. AWS CLI Poiché nel AWS CLI comando non è incluso alcun profile parametro, AWS CLI cerca le credenziali prima nelle variabili di ambiente e quindi utilizza le credenziali temporanee.

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 stai effettuando richieste API HTTPS dirette a AWS, puoi firmare tali richieste con le credenziali di sicurezza temporanee che ottieni da (). AWS Security Token Service AWS STS A tale scopo, utilizzate l'ID della chiave di accesso e la chiave di accesso segreta da AWS STS cui ricevete. 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. Inoltre, aggiungi alla tua richiesta API il token di sessione da cui ricevi 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 Firmare le richieste AWS API in Riferimenti generali di AWS.

Ulteriori informazioni

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