Configurazione dell’autenticazione in Centro identità IAM con AWS CLI
Questo argomento fornisce le istruzioni su come configurare AWS CLI con AWS IAM Identity Center (Centro identità IAM) per recuperare le credenziali per l’esecuzione di comandi AWS CLI. Esistono principalmente due modi per autenticare gli utenti con Centro identità IAM e ottenere le credenziali per l’esecuzione di comandi AWS CLI tramite il file config:
-
(Scelta consigliata) Configurazione del provider di token SSO.
-
Configurazione legacy non aggiornabile.
Per informazioni sull’utilizzo dell’autenticazione tramite token di connessione, che non impiega alcun ID account e ruolo, consulta Configurazione per l’utilizzo di AWS CLI con CodeCatalyst nella Guida per l’utente di Amazon CodeCatalyst.
Nota
Per una procedura guidata per l’utilizzo di Centro identità IAM con comandi AWS CLI, consulta Tutorial: Using IAM Identity Center to run Amazon S3 commands in the AWS CLI.
Argomenti
Prerequisiti
-
Installa AWS CLI. Per ulteriori informazioni, consulta Installazione o aggiornamento dell’ultima versione di AWS CLI.
-
Devi prima avere accesso all’autenticazione SSO all’interno di Centro di identità IAM. Scegli uno dei metodi seguenti per accedere alle credenziali AWS.
Segui le istruzioni riportate in Nozioni di base nella Guida per l’utente di AWS IAM Identity Center. Questo processo attiva Centro identità IAM, crea un utente amministratore e aggiunge un set di autorizzazioni con privilegi minimi appropriato.
Nota
Crea un set di autorizzazioni per l’applicazione di autorizzazioni con privilegio minimo. Consigliamo di utilizzare il set di autorizzazioni PowerUserAccess predefinito, a meno che il datore di lavoro non ne abbia creato uno personalizzato a questo scopo.
Esci dal portale e accedi di nuovo per visualizzare gli Account AWS, i dettagli relativi all’accesso programmatico e le opzioni per Administrator o PowerUserAccess. Seleziona PowerUserAccess quando utilizzi l’SDK.
Accedi ad AWS tramite il portale del provider di identità. Se l’amministratore cloud ti ha concesso autorizzazioni PowerUserAccess (sviluppatore), potrai visualizzare gli Account AWS a cui hai accesso e il tuo set di autorizzazioni. Accanto al nome del set di autorizzazioni, vengono visualizzate le opzioni per accedere agli account manualmente o a livello di programmazione utilizzando il set di autorizzazioni.
Le implementazioni personalizzate possono dare luogo a esperienze diverse, ad esempio nomi di set di autorizzazioni diversi. In caso di dubbi su quale set di autorizzazioni utilizzare, contatta il team IT per assistenza.
Accedi ad AWS tramite il portale di accesso AWS. Se l’amministratore cloud ti ha concesso autorizzazioni PowerUserAccess (sviluppatore), potrai visualizzare gli Account AWS a cui hai accesso e il tuo set di autorizzazioni. Accanto al nome del set di autorizzazioni, vengono visualizzate le opzioni per accedere agli account manualmente o a livello di programmazione utilizzando il set di autorizzazioni.
Contatta il team IT per assistenza.
Dopo aver ottenuto l’accesso a Centro identità IAM, raccogli le informazioni su Centro identità IAM effettuando le operazioni seguenti:
-
Recupera i valori
SSO Start URLeSSO Regionnecessari per eseguireaws configure sso-
Nel portale di accesso AWS seleziona il set di autorizzazioni che utilizzi per lo sviluppo e quindi seleziona il link Chiavi di accesso.
-
Nella finestra di dialogo Ottieni le credenziali seleziona la scheda corrispondente al tuo sistema operativo.
-
Scegli il metodo Credenziali Centro identità IAM per ottenere i valori
SSO Start URLeSSO Region.
-
-
In alternativa, a partire dalla versione 2.22.0 puoi utilizzare l’URL dell’emittente anziché l’URL di avvio. L’URL dell’emittente si trova nella console AWS IAM Identity Center in una delle posizioni seguenti:
-
Nella pagina Dashboard l’URL dell’emittente si trova nel riepilogo delle impostazioni.
-
Nella pagina Impostazioni l’URL dell’emittente si trova nelle impostazioni in Origine identità.
-
-
Per informazioni su quale valore di ambito registrare, consulta Ambiti di accesso OAuth 2.0 nella Guida per l’utente del Centro identità IAM.
Configura il tuo profilo con la procedura guidata aws
configure sso
Per configurare un profilo Centro identità IAM per AWS CLI:
-
Nel terminale che preferisci esegui il comando
aws configure sso. -
AWS CLI tenta di aprire il browser predefinito per il processo di accesso dell’account Centro di identità IAM. Questo processo può richiedere di consentire l’accesso di AWS CLI ai tuoi dati. Poiché AWS CLI è basato sull’SDK per Python, i messaggi di autorizzazione possono contenere variazioni del nome
botocore.Se AWS CLI non riesce ad aprire il browser, vengono visualizzate le istruzioni per avviare manualmente il processo di accesso in base al tipo di autorizzazione utilizzato.
-
Seleziona l’account AWS da utilizzare nell’elenco visualizzato. Se hai l’autorizzazione a utilizzare un solo account, AWS CLI seleziona automaticamente l’account in questione e ignora la richiesta.
There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022) -
Seleziona il ruolo IAM da utilizzare nell’elenco visualizzato. Se è disponibile un solo ruolo, AWS CLI lo seleziona automaticamente e ignora la richiesta.
Using the account ID123456789011There are 2 roles available to you. > ReadOnly FullAccess -
Specifica il formato di output predefinito, la Regione AWS predefinita a cui inviare i comandi e un nome per il profilo. Se specifichi
defaultcome nome del profilo, questo diventa il profilo predefinito utilizzato. Nell’esempio seguente l’utente immette la Regione predefinita, il formato di output predefinito e il nome del profilo.Default client Region [None]:us-west-2<ENTER>CLI default output format (json if not specified) [None]:json<ENTER>Profile name [123456789011_ReadOnly]:my-dev-profile<ENTER> -
Un messaggio finale descrive la configurazione del profilo completata. Puoi ora utilizzare questo profilo per richiedere le credenziali. Utilizza il comando
aws sso loginper richiedere e recuperare le credenziali necessarie per eseguire i comandi. Per istruzioni, consulta Accedere a una sessione di Centro identità IAM.
Questa procedura permette di creare la sezione sso-session e il profilo denominato nel file config, che avrà l’aspetto seguente:
Configura solo la sezione sso-session con la procedura guidata aws configure sso-session
Nota
Questa configurazione non è compatibile con la configurazione legacy di Centro identità IAM.
Il comando aws configure sso-session aggiorna le sezioni sso-session nel file ~/.aws/config. Esegui il comando aws configure sso-session e fornisci l’URL di avvio di Centro identità IAM o l’URL dell’emittente e la Regione AWS che ospita la directory per Centro identità IAM.
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
Configurazione manuale utilizzando il file config
Le informazioni di configurazione di Centro identità IAM sono archiviate nel file config e possono essere modificate utilizzando un editor di testo. Per aggiungere manualmente il supporto di Centro identità IAM a un profilo denominato, devi aggiungere chiavi e valori al file config.
La sezione sso-session del file config viene utilizzata per raggruppare le variabili di configurazione per l’acquisizione di token di accesso SSO, che possono quindi essere utilizzati per acquisire credenziali AWS. Vengono utilizzate le impostazioni seguenti:
-
(Obbligatorio)
sso_start_url -
(Obbligatorio)
sso_region
È necessario definire una sezione sso-session e associarla a un profilo. Le impostazioni sso_region e sso_start_url devono essere configurate all’interno della sezione sso-session. In genere, le impostazioni sso_account_id e sso_role_name devono essere configurate nella sezione profile in modo che l’SDK possa richiedere le credenziali SSO.
L’esempio seguente configura l’SDK in modo da richiedere le credenziali SSO e supporta l’aggiornamento automatico dei token:
[profiledev] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole[sso-sessionmy-sso] sso_region =us-east-1sso_start_url =https://my-sso-portal.awsapps.com/start
In questo modo, è possibile riutilizzare le configurazioni sso-session su più profili:
[profiledev] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole[profileprod] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole2[sso-sessionmy-sso] sso_region =us-east-1sso_start_url =https://my-sso-portal.awsapps.com/start
Tuttavia, le impostazioni sso_account_id e sso_role_name non sono necessarie per tutti gli scenari di configurazione dei token SSO. Se l’applicazione utilizza solo servizi AWS che supportano l’autenticazione tramite token di connessione, le credenziali AWS tradizionali non sono necessarie. Questo tipo di autenticazione è uno schema di autenticazione HTTP che utilizza token di sicurezza noti come token di connessione. In questo scenario le impostazioni sso_account_id e sso_role_name non sono obbligatorie. Consulta la guida specifica del servizio AWS per determinare se supporta l’autorizzazione tramite token di connessione.
Inoltre, gli ambiti di registrazione possono essere configurati all’interno di un parametro sso-session. L’ambito è un meccanismo in OAuth 2.0 per limitare l’accesso di un’applicazione a un account utente. Un’applicazione può richiedere uno o più ambiti e il token di accesso emesso all’applicazione sarà limitato agli ambiti consentiti. Questi ambiti definiscono le autorizzazioni richieste per l’autorizzazione per il client OIDC registrato e i token di accesso recuperati dal client. L’esempio seguente imposta sso_registration_scopes in modo da fornire l’accesso necessario per elencare account/ruoli:
[sso-sessionmy-sso] sso_region =us-east-1sso_start_url =https://my-sso-portal.awsapps.com/startsso_registration_scopes =sso:account:access
Il token di autenticazione viene memorizzato nella cache su disco all’interno della directory sso/cache con un nome di file basato sul nome della sessione.
Nota
L’aggiornamento automatico dei token non è supportato utilizzando la configurazione legacy non aggiornabile. Consigliamo di utilizzare la configurazione dei token SSO.
Per aggiungere manualmente il supporto di Centro identità IAM a un profilo denominato, devi aggiungere le chiavi e i valori seguenti alla definizione del profilo nel file config.
Puoi includere anche altri valori e chiavi che sono validi nel file .aws/config. L’esempio seguente è un profilo Centro identità IAM:
[profilemy-sso-profile] sso_start_url =https://my-sso-portal.awsapps.com/startsso_region =us-west-2sso_account_id =111122223333sso_role_name =SSOReadOnlyRoleregion =us-west-2output =json
Prima di tutto, devi utilizzare Accedere a una sessione di Centro identità IAM per richiedere e recuperare le credenziali temporanee.
Per ulteriori informazioni sui file config e credentials, consulta Impostazioni dei file di configurazione e delle credenziali nella AWS CLI.
Accedere a una sessione di Centro identità IAM
Nota
Il processo di accesso può richiedere di consentire l’accesso di AWS CLI ai tuoi dati. Poiché AWS CLI è basato sull’SDK per Python, i messaggi di autorizzazione possono contenere variazioni del nome botocore.
Per recuperare e memorizzare nella cache un set di credenziali per Centro identità IAM, esegui il comando seguente per AWS CLI per aprire il browser predefinito e verificare l’accesso a Centro identità IAM.
$ aws sso login --profile my-dev-profile
SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.
Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start
Le credenziali di sessione per Centro identità IAM vengono memorizzate nella cache e utilizzate da AWS CLI per recuperare in modo sicuro le credenziali AWS per il ruolo IAM specificato nel profilo.
Se AWS CLI non riesce ad aprire automaticamente il browser, vengono visualizzate le istruzioni per avviare manualmente il processo di accesso in base al tipo di autorizzazione utilizzato.
Puoi anche specificare quale profilo sso-session utilizzare per l’accesso tramite il parametro --sso-session del comando aws sso login. L’opzione sso-session non è disponibile per la configurazione legacy di Centro identità IAM.
$aws sso login --sso-sessionmy-dev-session
A partire dalla versione 2.22.0, l’autorizzazione PKCE è l’impostazione predefinita. Per utilizzare l’autorizzazione del dispositivo per l’accesso, aggiungi l’opzione --use-device-code.
$ aws sso login --profile my-dev-profile --use-device-code
Il token di autenticazione viene memorizzato nella cache su disco all’interno della directory ~/.aws/sso/cache con un nome di file basato su sso_start_url.
Eseguire un comando con il profilo Centro identità IAM
Una volta effettuato l’accesso, puoi utilizzare le credenziali per invocare comandi AWS CLI con il profilo denominato associato. L’esempio seguente mostra un comando che utilizza un profilo:
$aws sts get-caller-identity --profilemy-dev-profile
Se hai effettuato l’accesso a Centro identità IAM e le credenziali memorizzate nella cache non sono scadute, AWS CLI rinnova automaticamente le credenziali AWS scadute quando necessario. Tuttavia, se le credenziali per Centro identità IAM scadono, devi rinnovarle in modo esplicito accedendo di nuovo all’account Centro identità IAM.
Disconnettersi dalle sessioni in Centro identità IAM
Dopo aver terminato di utilizzare il profilo Centro identità IAM, puoi lasciare scadere le credenziali o eseguire il comando seguente per eliminare le credenziali memorizzate nella cache.
$aws sso logoutSuccessfully signed out of all SSO profiles.
Risoluzione dei problemi
Se riscontri problemi durante l’utilizzo di AWS CLI, consulta Risoluzione degli errori per la AWS CLI per informazioni sulla procedura di risoluzione dei problemi.
Risorse correlate
Di seguito sono elencate alcune risorse aggiuntive.
-
Tutorial: Using IAM Identity Center to run Amazon S3 commands in the AWS CLI
-
Installazione o aggiornamento dell’ultima versione di AWS CLI
-
Impostazioni dei file di configurazione e delle credenziali nella AWS CLI
-
aws configure ssoin AWS CLI version 2 Reference -
aws configure sso-sessionin AWS CLI version 2 Reference -
aws sso loginin AWS CLI version 2 Reference -
aws sso logoutin AWS CLI version 2 Reference -
Configurazione per l’utilizzo di AWS CLI con CodeCatalyst nella Guida per l’utente di Amazon CodeCatalyst
-
Ambiti di accesso OAuth 2.0 nella Guida per l’utente del Centro identità IAM
-
Tutorial introduttivi nella Guida per l’utente del Centro identità IAM