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à.
Assumi il ruolo di fornitore di credenziali
Assumere un ruolo implica l'utilizzo di un set di credenziali di sicurezza temporanee per accedere a AWS risorse a cui altrimenti non avreste accesso. Le credenziali temporanee sono costituite da un ID chiave di accesso, una chiave di accesso segreta e un token di sicurezza.
Per configurare l'SDK o lo strumento per assumere un ruolo, devi prima creare o identificare un ruolo specifico da assumere. I ruoli IAM sono identificati in modo univoco da un ruolo Amazon Resource Name (ARN). I ruoli stabiliscono relazioni di fiducia con un'altra entità. L'entità affidabile che utilizza il ruolo potrebbe essere un'altra Servizio AWSAccount AWS, un provider di identità Web o una federazione OIDC o SAML. Per ulteriori informazioni sui ruoli IAM, consulta Using IAM roles nella IAM User Guide.
Dopo aver identificato il ruolo IAM, se quel ruolo ti affida la fiducia, puoi configurare il tuo SDK o lo strumento per utilizzare le autorizzazioni concesse dal ruolo. A tale scopo, utilizza le seguenti impostazioni. Per ulteriori informazioni sulle richieste API AWS Security Token Service (AWS STS), consulta l'AWS Security Token ServiceAPI Reference.
Assumi un ruolo IAM
Quando assume un ruolo, AWS STS restituisce un set di credenziali di sicurezza temporanee. Queste credenziali provengono da un altro profilo o dall'istanza o dal contenitore in cui è in esecuzione il codice. Altri esempi di assunzione di un ruolo includono la gestione di più account Account AWS da Amazon EC2, l'AWS CodeCommitutilizzo Account AWS di più account o l'accesso a un altro account da. AWS CodeBuild
Fase 1: configurare un ruolo IAM
Per configurare il tuo SDK o lo strumento per assumere un ruolo, devi prima creare o identificare un ruolo specifico da assumere. I ruoli IAM vengono identificati in modo univoco utilizzando un ruolo ARN. I ruoli stabiliscono relazioni di fiducia con un'altra entità, in genere all'interno dell'account o per l'accesso tra account. Per configurarlo, consulta Creazione di ruoli IAM nella Guida per l'utente IAM.
Passaggio 2: configura l'SDK o lo strumento
Configura l'SDK o lo strumento per ottenere le credenziali da o. credential_source
source_profile
credential_source
Utilizzalo per ottenere credenziali da un contenitore Amazon ECS, un'istanza Amazon EC2 o da variabili di ambiente.
Utilizzalo source_profile
per ottenere credenziali da un altro profilo. source_profile
supporta anche il concatenamento dei ruoli, ossia gerarchie di profili in cui un ruolo assunto viene poi utilizzato per assumere un altro ruolo.
Quando lo specificate in un profilo, l'SDK o lo strumento effettuano automaticamente la chiamata AWS STS AssumeRole
API corrispondente. Per recuperare e utilizzare le credenziali temporanee assumendo un ruolo, specificate i seguenti valori di configurazione nel file condiviso. AWS config
Per maggiori dettagli su ciascuna di queste impostazioni, consulta la sezione. Assumi le impostazioni del fornitore di credenziali di ruolo
-
role_arn
- Dal ruolo IAM che hai creato nella fase 1 -
Configura uno dei due
source_profile
ocredential_source
-
(Facoltativo)
duration_seconds
-
(Facoltativo)
external_id
-
(Facoltativo)
mfa_serial
-
(Facoltativo)
role_session_name
Gli esempi seguenti mostrano la configurazione di entrambe le opzioni di assunzione del ruolo in un config
file condiviso:
role_arn = arn:aws:iam::
123456789012
:role/my-role-name
source_profile =profile-name-with-user-that-can-assume-role
role_arn = arn:aws:iam::
123456789012
:role/my-role-name
credential_source =Ec2InstanceMetadata
Federazione con identità web o OpenID Connect
Quando si creano applicazioni mobili o applicazioni Web basate su client che richiedono l'accesso aAWS, AWS STS restituisce un set di credenziali di sicurezza temporanee per gli utenti federati autenticati tramite un provider di identità pubblico (IdP). Esempi di provider di identità pubblici comprendono Login with Amazon, Facebook, Google o qualsiasi provider di identità compatibile con OpenID Connect (OIDC). Con questo metodo, gli utenti non hanno bisogno delle proprie identità o di quelle di IAM. AWS
Se utilizzi Amazon Elastic Kubernetes Service, questa funzionalità offre la possibilità di specificare diversi ruoli IAM per ciascuno dei tuoi contenitori. Kubernetes offre la possibilità di distribuire token OIDC ai contenitori, che vengono utilizzati da questo fornitore di credenziali per ottenere credenziali temporanee. Per ulteriori informazioni su questa configurazione di Amazon EKS, consulta i ruoli IAM per gli account di servizio.
Fase 1: configurare un provider di identità e un ruolo IAM
Per configurare la federazione con un IdP esterno, utilizza un provider di identità IAM per fornire AWS informazioni sull'IdP esterno e sulla sua configurazione. In questo modo si instaura un rapporto di fiducia tra il tuo Account AWS e l'IdP esterno. Prima di configurare l'SDK per utilizzare il token di identità web per l'autenticazione, devi prima configurare il provider di identità (IdP) e il ruolo IAM utilizzato per accedervi. Per configurarli, consulta Creating a role for web identity o OpenID Connect Federation (console) nella IAM User Guide.
Passaggio 2: configura l'SDK o lo strumento
Configura l'SDK o lo strumento per utilizzare un token di identità Web AWS STS per l'autenticazione.
Quando lo specifichi in un profilo, l'SDK o lo strumento effettua automaticamente la chiamata AWS STS AssumeRoleWithWebIdentity
API corrispondente per te. Per recuperare e utilizzare le credenziali temporanee utilizzando la federazione delle identità Web, specificate i seguenti valori di configurazione nel file condiviso. AWS config
Per maggiori dettagli su ciascuna di queste impostazioni, consulta la Assumi le impostazioni del fornitore di credenziali di ruolo sezione.
-
role_arn
- Dal ruolo IAM che hai creato nella fase 1 -
web_identity_token_file
- Dall'IdP esterno -
(Facoltativo)
duration_seconds
-
(Facoltativo)
role_session_name
Di seguito è riportato un esempio di configurazione di config
file condivisa per assumere un ruolo con identità web:
[profile
web-identity
] role_arn=arn:aws:iam::123456789012
:role/my-role-name
web_identity_token_file=/path/to/a/token
Nota
Per le applicazioni mobili, prendi in considerazione l'utilizzo di Amazon Cognito. Amazon Cognito funge da broker di identità e svolge gran parte del lavoro federativo per te. Tuttavia, il provider di identità Amazon Cognito non è incluso nelle librerie di base degli SDK e degli strumenti come altri provider di identità. Per accedere all'API Amazon Cognito, includi il client del servizio Amazon Cognito nella build o nelle librerie del tuo SDK o strumento. Per l'utilizzo con AWS gli SDK, consulta Esempi di codice nella Amazon Cognito Developer Guide.
Assumi le impostazioni del fornitore di credenziali di ruolo
Configura questa funzionalità utilizzando quanto segue:
credential_source
- impostazione dei AWSconfig
file condivisi-
Utilizzato all'interno delle istanze Amazon EC2 o dei contenitori Amazon Elastic Container Service per specificare dove l'SDK o lo strumento possono trovare le credenziali autorizzate ad assumere il ruolo specificato con il parametro.
role_arn
Valore predefinito: Nessuno
Valori validi:
-
Ec2 InstanceMetadata: specifica che l'SDK o lo strumento deve utilizzare il ruolo IAM collegato al profilo dell'istanza EC2 per ottenere le credenziali di origine.
-
EcsContainer— Speciifica che l'SDK o lo strumento deve utilizzare il ruolo IAM collegato al contenitore ECS per ottenere le credenziali di origine.
Non è possibile specificare sia
credential_source
siasource_profile
nello stesso profilo.Esempio di impostazione in un
config
file per indicare che le credenziali devono provenire da Amazon EC2:credential_source = Ec2InstanceMetadata role_arn = arn:aws:iam::
123456789012
:role/my-role-name
duration_seconds
- impostazione di file condivisi AWSconfig
-
Specifica la durata massima della sessione del ruolo, in secondi.
Questa impostazione si applica solo quando il profilo specifica di assumere un ruolo.
Valore predefinito: 3600 secondi (un'ora)
Valori validi: il valore può variare da 900 secondi (15 minuti) fino all'impostazione della durata massima della sessione configurata per il ruolo (che può essere un massimo di 43200 secondi o 12 ore). Per ulteriori informazioni, consulta Visualizza l'impostazione della durata massima della sessione per un ruolo nella Guida per l'utente IAM.
Esempio di impostazione di questa impostazione in un
config
file:duration_seconds =
43200
external_id
- impostazione di AWSconfig
file condivisi-
Specifica un identificatore univoco che viene utilizzato da terze parti per assumere un ruolo negli account dei relativi clienti.
Questa impostazione si applica solo quando il profilo specifica di assumere un ruolo e la politica di fiducia per il ruolo richiede un valore per
ExternalId
. Il valore è mappato alExternalId
parametro che viene passato all'AssumeRole
operazione quando il profilo specifica un ruolo.Valore predefinito: Nessuno.
Valori validi: vedi Come utilizzare un ID esterno per concedere l'accesso alle tue AWS risorse a una terza parte nella Guida per l'utente IAM.
Esempio di impostazione in un
config
file:external_id =
unique_value_assigned_by_3rd_party
mfa_serial
- impostazione di AWSconfig
file condivisi-
Speciifica l'identificazione o il numero di serie di un dispositivo di autenticazione a più fattori (MFA) che l'utente deve utilizzare quando assume un ruolo.
Richiesto quando si assume un ruolo in cui la politica di attendibilità per quel ruolo include una condizione che richiede l'autenticazione MFA.
Valore predefinito: Nessuno.
Valori validi: il valore può essere un numero di serie per un dispositivo hardware (ad esempio
GAHT12345678
) o un Amazon Resource Name (ARN) per un dispositivo MFA virtuale. Per ulteriori informazioni sull'MFA, consulta Configurazione dell'accesso all'API protetto da MFA nella Guida per l'utente IAM.Esempio di impostazione di questa impostazione in un file:
config
mfa_serial =
arn:aws:iam::
123456789012
:mfa/my-user-name
role_arn
- impostazione di AWSconfig
file condivisi-
Speciifica l'Amazon Resource Name (ARN) di un ruolo IAM che desideri utilizzare per eseguire le operazioni richieste utilizzando questo profilo.
Valore predefinito: Nessuno.
Valori validi: il valore deve essere l'ARN di un ruolo IAM, formattato come segue:
arn:aws:iam::
account-id
:role/role-name
Inoltre, è necessario specificare anche una delle seguenti impostazioni:
-
source_profile
— Per identificare un altro profilo da utilizzare per trovare le credenziali autorizzate ad assumere il ruolo in questo profilo. -
credential_source
— Utilizzare credenziali identificate dalle variabili di ambiente correnti o credenziali allegate a un profilo di istanza Amazon EC2 o a un'istanza di container Amazon ECS. -
web_identity_token_file
— Utilizzare provider di identità pubblici o qualsiasi provider di identità compatibile con OpenID Connect (OIDC) per gli utenti che sono stati autenticati in un'applicazione mobile o web.
-
role_session_name
- impostazione di file condivisi AWSconfig
-
Specifica il nome da associare alla sessione del ruolo. Questo nome viene visualizzato nei AWS CloudTrail registri delle voci associate a questa sessione, il che può essere utile durante il controllo.
Valore predefinito: un parametro opzionale. Se non fornisci questo valore, viene generato automaticamente un nome di sessione se il profilo assume un ruolo.
Valori validi: forniti al
RoleSessionName
parametro quando l'AWSAPI AWS CLI o l'API richiama l'AssumeRole
operazione (o operazioni come l'AssumeRoleWithWebIdentity
operazione) per tuo conto. Il valore diventa parte dell'utente di ruolo assunto Amazon Resource Name (ARN) che puoi interrogare e viene visualizzato come parte delle voci di CloudTrail registro per le operazioni richiamate da questo profilo.arn:aws:sts::
.123456789012
:assumed-role/my-role-name
/my-role_session_name
Esempio di impostazione di questo valore in un
config
file:role_session_name =
my-role-session-name
source_profile
- impostazione di AWSconfig
file condivisi-
Specifica un altro profilo le cui credenziali vengono utilizzate per assumere il ruolo specificato dall'
role_arn
impostazione nel profilo originale. Per informazioni su come vengono utilizzati i profili negli archivi condivisi AWSconfig
e neicredentials
file, consulta. Condivisi config e credentials fileSe si specifica un profilo che è anche un profilo di assunzione, ogni ruolo verrà assunto in ordine sequenziale per risolvere completamente le credenziali. Questa catena viene interrotta quando l'SDK incontra un profilo con credenziali. Il concatenamento dei ruoli limita la sessione di ruolo AWS CLI o dell'AWSAPI a un massimo di un'ora e non può essere aumentato. Per ulteriori informazioni, consulta i termini e i concetti relativi ai ruoli nella Guida per l'utente IAM.
Valore predefinito: Nessuno.
Valori validi: una stringa di testo costituita dal nome di un profilo definito nei
credentials
fileconfig
and. È inoltre necessario specificare un valore perrole_arn
nel profilo corrente.Non è possibile specificare sia
credential_source
siasource_profile
nello stesso profilo.Esempio di impostazione in un file di configurazione:
[profile
A
] source_profile =B
role_arn = arn:aws:iam::123456789012
:role/RoleA
[profileB
] aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
Nell'esempio precedente il profilo
A
utilizza le credenziali del profiloB
. Quando specificate che l'SDK o lo strumento devono utilizzare ilA
profilo, l'SDK o lo strumento cerca automaticamente le credenziali per ilB
profilo collegato e le utilizza per richiedere credenziali temporanee per il ruolo IAM specificato. L'SDK o lo strumento utilizza l'operazione sts: in background per AssumeRole eseguire questa operazione. Queste credenziali temporanee vengono quindi utilizzate dal codice per accedere alle risorse. AWS Al ruolo specificato devono essere associate politiche di autorizzazione IAM che consentano l'esecuzione del codice richiesto, ad esempio il comando o il Servizio AWS metodo API. web_identity_token_file
- impostazione condivisa AWSconfig
dei file-
Speciifica il percorso di un file che contiene un token di accesso da un provider OAuth 2.0 supportato o
da un provider di identità OpenID Connect ID . Questa impostazione consente l'autenticazione utilizzando provider di federazione delle identità Web, come Google
, Facebook e Amazon , tra molti altri. L'SDK o lo strumento di sviluppo carica il contenuto di questo file e lo passa come WebIdentityToken
argomento quando chiama l'AssumeRoleWithWebIdentity
operazione per conto dell'utente.Valore predefinito: Nessuno.
Valori validi: questo valore deve essere un percorso e un nome di file. Il file deve contenere un token di accesso OAuth 2.0 o un token OpenID Connect fornito da un provider di identità. I percorsi relativi vengono trattati come relativi alla directory di lavoro del processo.
Compatibilità con AWS SDKS
I seguenti SDK supportano le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali.
SDK | Supportato | Note o ulteriori informazioni |
---|---|---|
AWS CLI v2 | Sì | |
SDK per C++ | Parziale | credential_source non supportato. duration_seconds non supportato. mfa_serial non supportato. |
SDK per Go V2 (1.x) |
Sì | |
SDK per Go 1.x (V1) | Sì | Per utilizzare le impostazioni dei config file condivisi, devi attivare il caricamento dal file di configurazione; vedi Sessioni. |
SDK per Java 2.x | Parziale | mfa_serial non supportato. |
SDK per Java 1.x | Parziale | mfa_serial non supportato. |
SDK per 3.x JavaScript | Sì | |
SDK per 2.x JavaScript | Parziale | credential_source non supportato. |
SDK per.NET 3.x | Sì | |
SDK per PHP 3.x | Sì | |
SDK per Python (Boto3) |
Sì | |
SDK per Ruby 3.x | Sì |