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à.
Richiedere credenziali di sicurezza temporanee
Per richiedere credenziali di sicurezza temporanee, puoi utilizzare le operazioni Servizio di token di sicurezza AWS (AWS STS) nell' AWS API. Queste includono operazioni per creare e fornire agli utenti affidabili credenziali di sicurezza temporanee in grado di controllare l'accesso alle tue AWS risorse. Per ulteriori informazioni su AWS STS, vedereCredenziali di sicurezza temporanee in IAM. Per informazioni sui diversi metodi che si possono utilizzare per richiedere credenziali di sicurezza temporanee assumendo un ruolo, consultare Metodi per assumere un ruolo.
Per chiamare le operazioni API, è possibile utilizzare uno degli SDK AWS. Gli SDK sono disponibili per un'ampia gamma di linguaggi di programmazione e ambienti, tra cui Java, .NET, Python, Ruby, Android e iOS. I kit SDK si occupano di attività quali la firma crittografica delle richieste, la ripetizione delle richieste se necessario e la gestione delle risposte agli errori. Puoi anche utilizzare l'API AWS STS Query, descritta nell'Servizio di token di sicurezza AWS API Reference. Infine, due strumenti a riga di comando supportano i AWS STS comandi: the AWS Command Line Interface
Le operazioni AWS STS API creano una nuova sessione con credenziali di sicurezza temporanee che includono una coppia di chiavi di accesso e un token di sessione. La coppia di chiavi di accesso è composta da un ID chiave di accesso e da una chiave segreta. Gli utenti (o un'applicazione che l'utente esegue) possono utilizzare queste credenziali per accedere alle risorse.
È possibile creare una sessione di ruolo e passare le policy di sessione e i tag di sessione a livello di codice utilizzando AWS STS le operazioni API. Le autorizzazioni della sessione risultanti sono l'intersezione tra le policy basate sull'identità del ruolo e le policy di sessione. Per ulteriori informazioni sulle policy di sessione, consulta Policy di sessione. Per ulteriori informazioni sui tag di sessione, consultare Passa i tag della sessione AWS STS.
Nota
La dimensione del token di sessione restituito dalle operazioni AWS STS API non è fissa. È consigliabile di non effettuare alcuna supposizione sulle dimensioni massime. La dimensione tipica dei token è inferiore a 4.096 byte, ma essa può variare.
Utilizzo AWS STS con AWS Regioni
È possibile inviare chiamate AWS STS API a un endpoint globale o a uno degli endpoint regionali. Se si seleziona un endpoint vicino, è possibile ridurre la latenza e migliorare le prestazioni delle chiamate API. Se non è più possibile comunicare con l'endpoint originale è anche possibile scegliere di indirizzare le chiamate verso un endpoint regionale alternativo.
Se stai utilizzando uno dei vari AWS SDK, utilizza quel metodo SDK per specificare una regione prima di effettuare la chiamata API. Se costruiscono manualmente richieste API HTTP, è necessario indirizzare la richiesta all'endpoint corretto. Per ulteriori informazioni, consulta la sezione AWS STS relativa alle regioni e agli endpoint e la sezione Manage (Gestione) AWS STS in un Regione AWS.
Di seguito sono riportate le operazioni API che puoi utilizzare per acquisire credenziali temporanee da utilizzare nel tuo AWS ambiente e nelle tue applicazioni.
Richiesta di credenziali per la delega tra account e federazione tramite un gestore di identità personalizzato
L'operazione AssumeRole API è utile per consentire agli utenti IAM esistenti di accedere a AWS risorse a cui non hanno già accesso. Ad esempio, l'utente potrebbe aver bisogno di accedere alle risorse in un altro Account AWS. Inoltre, è utile come strumento per ottenere temporaneamente l'accesso privilegiato, ad esempio per fornire l'autenticazione a più fattori (MFA). È necessario chiamare questa API utilizzando le credenziali attive. Per sapere chi può chiamare questa operazione, vedere Confronta le AWS STS credenziali. Per ulteriori informazioni, consultare Creazione di un ruolo per fornire le autorizzazioni a un utente IAM e Accesso sicuro alle API con MFA.
Per richiedere credenziali di sicurezza temporanee per la delega tra account e federazione tramite un gestore di identità personalizzato
-
Effettua l'autenticazione con le tue credenziali AWS di sicurezza. Questa chiamata deve essere effettuata utilizzando le credenziali di sicurezza AWS .
-
Chiama
AssumeRolel'operazione.
L'esempio seguente mostra una richiesta di esempio e la risposta utilizzando AssumeRole. Questa richiesta di esempio assume il ruolo demo per la durata specificata, inclusi policy di sessione, tag di sessione, ID esterno e identità di origine. La sessione risultante è denominata John-session.
Esempio Richiesta di esempio
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=AssumeRole &RoleSessionName=John-session &RoleArn=arn:aws:iam::123456789012:role/demo &Policy=%7B%22Version%22%3A%222012-10-17%22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%20%22Stmt1%22%2C%22Effect%22%3A%20%22Allow%22%2C%22Action%22%3A%20%22s3%3A*%22%2C%22Resource%22%3A%20%22*%22%7D%5D%7D &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &ExternalId=123ABC &SourceIdentity=DevUser123 &AUTHPARAMS
Il valore della policy mostrato nell'esempio precedente è la URL-encoded versione della seguente policy:
Il parametro AUTHPARAMS nell'esempio è un segnaposto per la propria firma. Una firma è l'informazione di autenticazione che devi includere nelle richieste API AWS HTTP. Per creare le richieste API ti consigliamo di utilizzare gli SDK AWS
Oltre alle credenziali di sicurezza temporanee, la risposta include l'Amazon Resource Name (ARN) per l'utente federato e il periodo di scadenza delle credenziali.
Esempio Esempio di risposta
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<SourceIdentity>DevUser123</SourceIdentity>
<Credentials>
<SessionToken>
AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
</SessionToken>
<SecretAccessKey>
wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
</SecretAccessKey>
<Expiration>2019-07-15T23:28:33.359Z</Expiration>
<AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId>
</Credentials>
<AssumedRoleUser>
<Arn>arn:aws:sts::123456789012:assumed-role/demo/John</Arn>
<AssumedRoleId>ARO123EXAMPLE123:John</AssumedRoleId>
</AssumedRoleUser>
<PackedPolicySize>8</PackedPolicySize>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>Nota
Una AWS conversione comprime i criteri di sessione e i tag di sessione passati in un formato binario compresso con un limite separato. La richiesta può non essere eseguita correttamente a causa di questo limite anche se il testo in chiaro soddisfa gli altri requisiti. L'elemento della risposta PackedPolicySize indica in percentuale la consistenza di policy e tag della richiesta rispetto al limite di dimensione superiore.
Richiesta di credenziali tramite un provider OIDC
L'operazione API AssumeRoleWithWebIdentity restituisce un set di credenziali di sicurezza AWS temporanee in cambio di un JSON Web Token (JWT). Ciò include i provider di identità pubblici, come Login with Amazon, Facebook, Google e i provider che emettono JWT compatibili con il discovery di OpenID Connect (OIDC), come action o Azure Devops. GitHub Per ulteriori informazioni, consulta Federazione OIDC.
Nota
Le richieste AssumeRoleWithWebIdentity non sono firmate e non richiedono credenziali AWS .
Richiesta di credenziali tramite un provider OIDC
-
Chiama
AssumeRoleWithWebIdentityl'operazione.Quando chiami
AssumeRoleWithWebIdentity, AWS convalida il token presentato verificando la firma digitale utilizzando le chiavi pubbliche rese disponibili tramite il set di chiavi web JSON (JWKS) del tuo IdP. Se il token è valido e tutte le condizioni stabilite nella policy di fiducia dei ruoli IAM sono soddisfatte, AWS restituisce le seguenti informazioni:-
Un set di credenziali di sicurezza temporanee. Consistono in un ID chiave di accesso, in una Secret Access Key e in un token di sessione.
-
l'ID del ruolo e l'ARN del ruolo assunto.
-
Un valore
SubjectFromWebIdentityTokenche contiene l'ID utente univoco.
-
-
L'applicazione può quindi utilizzare le credenziali di sicurezza temporanee restituite nella risposta per effettuare chiamate AWS API. Si tratta della stessa procedura utilizzata per effettuare una chiamata AWS API con credenziali di sicurezza a lungo termine. La differenza è che è necessario includere il token di sessione, che consente di AWS verificare che le credenziali di sicurezza temporanee siano valide.
L'applicazione dovrebbe memorizzare nella cache le credenziali restituite da AWS STS e aggiornarle secondo necessità. Se l'applicazione è creata utilizzando un AWS SDK, l'SDK dispone di provider di credenziali in grado di gestire le chiamate AssumeRoleWithWebIdentity e l'aggiornamento AWS delle credenziali prima che scadano. Per ulteriori informazioni, consulta Provider di credenziali standardizzati di SDK AWS e strumenti nella Guida di riferimento agli SDK AWS e agli strumenti.
Richiesta di credenziali tramite un gestore di identità SAML 2.0
L’operazione API AssumeRoleWithSAML restituisce un set di credenziali di sicurezza temporanee per i principali federati SAML che sono autenticati dal sistema di identità esistente dell’organizzazione. Gli utenti devono utilizzare inoltre SAML
-
Chiama
AssumeRoleWithSAMLl'operazione.Si tratta di una chiamata non firmata, il che significa che non è necessario autenticare le credenziali AWS di sicurezza prima di effettuare la richiesta.
Nota
Una chiamata a
AssumeRoleWithSAMLnon è firmata (crittografata). Pertanto, è opportuno includere le policy di sessione facoltative solo se la richiesta viene trasmessa attraverso un intermediario affidabile. In questo caso, qualcuno potrebbe modificare la policy per rimuovere le limitazioni. -
Quando chiami
AssumeRoleWithSAML, AWS verifica l'autenticità dell'asserzione SAML. Supponendo che il provider di identità convalidi l'asserzione, AWS ti restituisce le seguenti informazioni:-
Un set di credenziali di sicurezza temporanee. Consistono in un ID chiave di accesso, in una Secret Access Key e in un token di sessione.
-
l'ID del ruolo e l'ARN del ruolo assunto.
-
Un valore
Audienceche contiene il valore dell'attributoRecipientdell'elementoSubjectConfirmationDatadell'asserzione SAML. -
Un valore
Issuerche contiene il valore dell'attributoIssuerdell'elemento dell'asserzione SAML. -
Un
NameQualifierelemento che contiene un valore hash creato a partire dalIssuervalore, dall' Account AWS ID e dal nome descrittivo del provider SAML. In combinazione con l’elementoSubject, permette di identificare in modo univoco il principale federato SAML. -
Un elemento
Subjectche contiene il valore dell'elementoNameIDnell'elementoSubjectdell'asserzione SAML. -
Un elemento
SubjectTypeche indica il formato dell'elementoSubject. Il valore può esserepersistent,transiento il pienoFormatURI dagli elementiSubjecteNameIDutilizzati nell'asserzione SAML. Per ulteriori informazioni sull'attributoFormatdell'elementoNameID, consulta Configurare le asserzioni SAML per la risposta di autenticazione.
-
-
Utilizza le credenziali di sicurezza temporanee restituite nella risposta per effettuare AWS chiamate API. Si tratta della stessa procedura utilizzata per effettuare una chiamata AWS API con credenziali di sicurezza a lungo termine. La differenza è che è necessario includere il token della sessione, che consente ad AWS di verificare che le credenziali di sicurezza provvisorie siano valide.
L'app deve memorizzare le credenziali. Come impostazione predefinita, le credenziali scadono dopo un'ora. Se non stai utilizzando l'AmazonSTSCredentialsProviderAssumeRoleWithSAML nuovamente. Chiamare questa operazione per ottenere un nuovo set di credenziali di sicurezza provvisorie prima che i vecchi scadere.
Richiesta di credenziali tramite un gestore di identità personalizzato
L'operazione GetFederationToken API restituisce un set di credenziali di sicurezza temporanee per gli utenti principali AWS STS federati. Questa API differisce da AssumeRole per il fatto che il periodo di scadenza predefinito è notevolmente più lungo (12 ore invece di un'ora). Inoltre, è possibile utilizzare il parametro DurationSeconds per specificare una durata per le credenziali di sicurezza temporanee perché rimanga valido. Le credenziali risultanti sono valide per la durata specificata, da 900 secondi (15 minuti) a un massimo di 129.600 secondi (36 ore). Un periodo di scadenza più lungo può aiutare a ridurre il numero di chiamate AWS perché non è necessario ottenere nuove credenziali con la stessa frequenza.
-
Effettua l'autenticazione con le credenziali di AWS sicurezza del tuo utente IAM specifico. Questa chiamata deve essere effettuata utilizzando credenziali di AWS sicurezza valide.
-
Chiama
GetFederationTokenl'operazione.
La chiamata GetFederationToken restituisce le credenziali di sicurezza temporanee che consistono nel token di sessione, nella chiave di accesso, nella chiave segreta e nella scadenza. È possibile utilizzare GetFederationToken se si desidera gestire le autorizzazioni nella propria organizzazione (ad esempio, utilizzando l'applicazione proxy per assegnare le autorizzazioni).
L'esempio seguente mostra una richiesta di esempio e la risposta che utilizza GetFederationToken. Questa richiesta di esempio consente di federare l'utente chiamante per la durata specificata tramite l'ARN della policy di sessione e i tag di sessione. La sessione risultante è denominata Jane-session.
Esempio Richiesta di esempio
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetFederationToken &Name=Jane-session &PolicyArns.member.1.arn==arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2FRole1policy &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &AUTHPARAMS
L'ARN della policy mostrato nell'esempio precedente include il seguente ARN: URL-encoded
arn:aws:iam::123456789012:policy/Role1policy
Inoltre, si noti che il parametro &AUTHPARAMS nell'esempio è inteso come segnaposto per le informazioni di autenticazione. Questa è la firma, che è necessario includere nelle richieste API AWS HTTP. Per creare le richieste API ti consigliamo di utilizzare gli SDK AWS
Oltre alle credenziali di sicurezza temporanee, la risposta include l'Amazon Resource Name (ARN) per l'utente federato e il periodo di scadenza delle credenziali.
Esempio Esempio di risposta
<GetFederationTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<GetFederationTokenResult>
<Credentials>
<SessionToken>
AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCEXAMPLE==
</SessionToken>
<SecretAccessKey>
wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
</SecretAccessKey>
<Expiration>2019-04-15T23:28:33.359Z</Expiration>
<AccessKeyId>AKIAIOSFODNN7EXAMPLE;</AccessKeyId>
</Credentials>
<FederatedUser>
<Arn>arn:aws:sts::123456789012:federated-user/Jean</Arn>
<FederatedUserId>123456789012:Jean</FederatedUserId>
</FederatedUser>
<PackedPolicySize>4</PackedPolicySize>
</GetFederationTokenResult>
<ResponseMetadata>
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
</ResponseMetadata>
</GetFederationTokenResponse>Nota
Una AWS conversione comprime i criteri di sessione e i tag di sessione passati in un formato binario compresso con un limite separato. La richiesta può non essere eseguita correttamente a causa di questo limite anche se il testo in chiaro soddisfa gli altri requisiti. L'elemento della risposta PackedPolicySize indica in percentuale la consistenza di policy e tag della richiesta rispetto al limite di dimensione superiore.
AWS consiglia di concedere le autorizzazioni a livello di risorsa (ad esempio, allegando una policy basata sulle risorse a un bucket Amazon S3), puoi omettere il parametro. Policy Tuttavia, se non includi una policy per l'utente principale AWS STS federato, le credenziali di sicurezza temporanee non concederanno alcuna autorizzazione. In questo caso, è necessario utilizzare le policy delle risorse per concedere all'utente federato l'accesso alle risorse AWS
.
Ad esempio, supponiamo che il tuo Account AWS numero sia 111122223333 e che tu disponga di un bucket Amazon S3 a cui desideri consentire l'accesso a Susan. Le credenziali di sicurezza temporanee di Susan non includono una policy per il bucket. In questo caso, è necessario accertarsi che il bucket disponga di una policy con un ARN corrisponda all'ARN di Susan, ad esempio arn:aws:sts::111122223333:federated-user/Susan.
Richiesta di credenziali per gli utenti in ambienti non attendibili
L’operazione API GetSessionToken restituisce un set di credenziali di sicurezza temporanee a un utente IAM esistente. Ciò è utile per fornire una maggiore sicurezza, ad esempio per consentire le AWS richieste solo quando l'MFA è abilitato per l'utente IAM. Poiché le credenziali sono temporanee, forniscono maggiore sicurezza quando hai un utente IAM che accede alle risorse tramite un ambiente meno sicuro. Esempi di ambienti meno protetti includono dispositivi mobili o browser web.
-
Effettua l'autenticazione con le credenziali di AWS sicurezza del tuo utente IAM specifico. Questa chiamata deve essere effettuata utilizzando credenziali di AWS sicurezza valide.
-
Chiama
GetSessionTokenl'operazione. -
GetSessionTokenrestituisce le credenziali di sicurezza temporanee, ossia un token di sessione, l'ID chiave di accesso e una chiave di accesso segreta.
Per impostazione predefinita, le credenziali di sicurezza temporanee per un utente IAM sono valide per un massimo di 12 ore. Tuttavia, è possibile richiedere una durata di soli 15 minuti o fino a 36 ore utilizzando il parametro DurationSeconds. Per motivi di sicurezza, la durata di un token per un Utente root dell'account AWS è limitata a un'ora.
L'esempio seguente mostra una richiesta di esempio e la risposta utilizzando GetSessionToken. La risposta include inoltre il periodo di scadenza delle credenziali di sicurezza temporanee.
Esempio Richiesta di esempio
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=1800 &AUTHPARAMS
Il parametro AUTHPARAMS nell'esempio è un segnaposto per la propria firma. Una firma è l'informazione di autenticazione che devi includere nelle richieste API AWS HTTP. Per creare le richieste API ti consigliamo di utilizzare gli SDK AWS
Esempio Esempio di risposta
<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<GetSessionTokenResult>
<Credentials>
<SessionToken>
AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L
To6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3z
rkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtp
Z3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE
</SessionToken>
<SecretAccessKey>
wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
</SecretAccessKey>
<Expiration>2011-07-11T19:55:29.611Z</Expiration>
<AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId>
</Credentials>
</GetSessionTokenResult>
<ResponseMetadata>
<RequestId>58c5dbae-abef-11e0-8cfe-09039844ac7d</RequestId>
</ResponseMetadata>
</GetSessionTokenResponse>Facoltativamente, la GetSessionToken richiesta può includere TokenCode valori per SerialNumber la verifica dell' AWS autenticazione a più fattori (MFA). Se i valori forniti sono validi, AWS STS fornisce credenziali di sicurezza temporanee che includono lo stato dell'autenticazione MFA. Le credenziali di sicurezza temporanee possono quindi essere utilizzate per accedere alle operazioni MFA-protected API o ai AWS siti Web finché l'autenticazione MFA è valida.
L'esempio seguente mostra una richiesta GetSessionToken, che include un codice di verifica MFA e il numero di serie del dispositivo.
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=7200 &SerialNumber=YourMFADeviceSerialNumber &TokenCode=123456 &AUTHPARAMS
Nota
La chiamata AWS STS può essere rivolta all'endpoint globale o a uno qualsiasi degli endpoint regionali su cui attivi il tuo. Account AWS Per ulteriori informazioni, consulta la sezione di AWS STS relativa alle regioni e agli endpoint.
Il parametro AUTHPARAMS nell'esempio è un segnaposto per la propria firma. Una firma è l'informazione di autenticazione che devi includere nelle richieste API AWS HTTP. Per creare le richieste API ti consigliamo di utilizzare gli SDK AWS