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
Nota
Per informazioni sulla comprensione del layout delle pagine delle impostazioni o sull'interpretazione della tabella Support by AWS SDKs and tools che segue, vedere. Informazioni sulle pagine delle impostazioni di questa guida
Assumere un ruolo implica l'utilizzo di una serie di credenziali di sicurezza temporanee per accedere a AWS risorse a cui altrimenti potresti non avere 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 in modo che assumano 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.htmlARN). I ruoli stabiliscono relazioni di fiducia con un'altra entità. L'entità attendibile che utilizza il ruolo potrebbe essere un Servizio AWS fornitore di Account AWS identità web o una federazione OIDC o SAML.
Dopo aver identificato il ruolo IAM, se quel ruolo è considerato attendibile, puoi configurare l'SDK o lo strumento per utilizzare le autorizzazioni concesse dal ruolo. A tale scopo, utilizza le seguenti impostazioni.
Per indicazioni su come iniziare a utilizzare queste impostazioni, Assumere un ruolo con AWS credenziali di autenticazione e strumenti AWS SDKs consulta questa guida.
Assumi il ruolo: impostazioni del fornitore di credenziali
Configura questa funzionalità utilizzando quanto segue:
credential_source- impostazione dei AWSconfigfile 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_arnValore predefinito: Nessuno
Valori validi:
-
Ambiente: specifica che l'SDK o lo strumento deve recuperare le credenziali di origine dalle variabili di ambiente e. AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
-
Ec2InstanceMetadata— Specifica che l'SDK o lo strumento deve utilizzare il ruolo IAM associato al profilo dell'istanza EC2 per ottenere le credenziali di origine.
-
EcsContainer— Specifica che l'SDK o lo strumento deve utilizzare il ruolo IAM collegato al contenitore Amazon ECS o il ruolo IAM collegato al contenitore Amazon EKS per ottenere le credenziali di origine.
Non è possibile specificare sia
credential_sourcesiasource_profilenello stesso profilo.Esempio di impostazione di questo valore in un
configfile 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 maggiori informazioni, consulta Visualizzare l'impostazione della durata massima della sessione per un ruolo nella IAM User Guide.
Esempio di impostazione di questa impostazione in un
configfile:duration_seconds =43200 external_id- impostazione di un AWSconfigfile condiviso-
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 viene associato alExternalIdparametro passato all'AssumeRoleoperazione 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 di questo valore in un
configfile:external_id =unique_value_assigned_by_3rd_party mfa_serial- impostazione di un AWSconfigfile condiviso-
Specifica 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.
Obbligatorio quando si assume un ruolo in cui la politica di attendibilità per quel ruolo include una condizione che richiede l'autenticazione MFA. Per ulteriori informazioni sull'MFA, consulta AWS Multi-factor l'autenticazione in IAM nella IAM User Guide.
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. Il formato dell'ARN è:arn:aws:iam::account-id:mfa/mfa-device-nameEsempio di impostazione di questo valore in un
configfile:Questo esempio presuppone un dispositivo MFA virtuale, chiamato
MyMFADevice, che sia stato creato per l'account e abilitato per un utente.mfa_serial =arn:aws:iam::123456789012:mfa/MyMFADevice role_arn- impostazione di file condivisi AWSconfigAWS_ROLE_ARN- variabile d'ambienteaws.roleArn- Proprietà del sistema JVM: solo Java/Kotlin-
Specifica 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-nameInoltre, è necessario specificare una delle seguenti impostazioni:
-
source_profile— Identificare un altro profilo da utilizzare per trovare le credenziali autorizzate ad assumere il ruolo in questo profilo. -
credential_source— Utilizzare le credenziali identificate dalle variabili di ambiente correnti o le credenziali allegate a un profilo di istanza Amazon EC2 o a un'istanza del contenitore 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 dei file condivisi AWSconfigAWS_ROLE_SESSION_NAME- variabile d'ambienteaws.roleSessionName- Proprietà del sistema JVM: solo Java/Kotlin-
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. Per i dettagli, vedere l'elemento CloudTrail UserIdentity nella Guida per l'AWS CloudTrail utente.
Valore predefinito: un parametro opzionale. Se non si fornisce questo valore, viene generato automaticamente un nome di sessione se il profilo assume un ruolo.
Valori validi: vengono forniti al
RoleSessionNameparametro quando l' AWS API AWS CLI o chiama l'AssumeRoleoperazione (o operazioni come l'AssumeRoleWithWebIdentityoperazione) per conto dell'utente. Il valore diventa parte del ruolo assunto dall'utente 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_nameEsempio di impostazione di questo valore in un
configfile:role_session_name =my-role-session-name source_profile- impostazione di un AWSconfigfile condiviso-
Specifica un altro profilo le cui credenziali vengono utilizzate per assumere il ruolo specificato dall'
role_arnimpostazione nel profilo originale. Per capire come vengono utilizzati i profili neicredentialsfile condivisi AWSconfig, vedere. 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 tua sessione di ruolo AWS CLI o quella dell' AWS API a un massimo di un'ora e non può essere aumentato. Per ulteriori informazioni, consulta i termini e i concetti relativi ai ruoli nella IAM User Guide.
Valore predefinito: Nessuno.
Valori validi: una stringa di testo costituita dal nome di un profilo definito nei
credentialsfileconfige. È inoltre necessario specificare un valore perrole_arnnel profilo corrente.Non è possibile specificare sia
credential_sourcesiasource_profilenello stesso profilo.Esempio di impostazione di questo parametro in un file di configurazione:
[profileA] source_profile =Brole_arn = arn:aws:iam::123456789012:role/RoleArole_session_name =ProfileARoleSession[profileB] credential_process =./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_IDNell'esempio precedente, il
Aprofilo indica all'SDK o allo strumento di cercare automaticamente le credenziali per il profilo collegato.BIn questo caso, ilBprofilo utilizza lo strumento di assistenza per le credenziali fornito da per ottenere le credenziali Utilizzo di IAM Roles Anywhere per l'autenticazione AWS SDKs e gli strumenti per l'SDK. AWS Queste credenziali temporanee vengono quindi utilizzate dal codice per accedere alle risorse. AWS Al ruolo specificato devono essere allegate politiche di autorizzazione IAM che consentano l'esecuzione del codice richiesto, come il comando o il Servizio AWS metodo API. Ogni azione intrapresa dal profiloAha il nome della sessione del ruolo incluso nei CloudTrail log.Per un secondo esempio di concatenamento dei ruoli, è possibile utilizzare la seguente configurazione se si dispone di un'applicazione su un'istanza Amazon Elastic Compute Cloud e si desidera che tale applicazione assuma un altro ruolo.
[profileA] source_profile =Brole_arn = arn:aws:iam::123456789012:role/RoleArole_session_name =ProfileARoleSession[profileB] credential_source=Ec2InstanceMetadataIl profilo
Autilizzerà le credenziali dell'istanza Amazon EC2 per assumere il ruolo specificato e rinnoverà automaticamente le credenziali. web_identity_token_file- impostazione dei file condivisi AWSconfigAWS_WEB_IDENTITY_TOKEN_FILE- variabile d'ambienteaws.webIdentityTokenFile- Proprietà del sistema JVM: solo Java/Kotlin-
Specifica il percorso di un file che contiene un token di accesso di un provider OAuth 2.0 supportato
o di 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 per sviluppatori carica il contenuto di questo file e lo passa come WebIdentityTokenargomento quando chiama l'AssumeRoleWithWebIdentityoperazione per tuo conto.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.
Supporto da parte di AWS SDK e strumenti
I seguenti SDK supportano le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali. Tutte le impostazioni delle proprietà del sistema JVM sono supportate da AWS SDK per Java and the AWS SDK per Kotlin only.
| SDK | Supportata | Note o ulteriori informazioni |
|---|---|---|
| AWS CLI v2 | Sì | |
| SDK per C++ | Parziale | credential_sourcenon supportato. duration_secondsnon supportato. mfa_serialnon 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. https://docs.aws.amazon.com/sdk-for-go/api/aws/session/ |
| SDK per Java 2.x | Parziale | mfa_serialnon supportato. duration_secondsnon supportato. |
| SDK per Java 1.x | Parziale | credential_sourcenon supportato. mfa_serialnon supportato. Proprietà del sistema JVM non supportate. |
| SDK per 3.x JavaScript | Sì | |
| SDK per 2.x JavaScript | Parziale | credential_sourcenon supportato. |
| SDK per Kotlin | Sì | |
| SDK per .NET 4.x | Sì | |
| SDK per .NET 3.x | Sì | |
| SDK per PHP 3.x | Sì | |
| SDK per Python (Boto3) | Sì | |
| SDK per Ruby 3.x | Sì | |
| SDK per Rust | Sì | |
| SDK per Swift | Sì | |
| Strumenti per V5 PowerShell | Sì | |
| Strumenti per PowerShell V4 | Sì |