Configurazione dell’autenticazione in Centro identità IAM con AWS CLI - AWS Command Line Interface

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

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:

  1. Recupera i valori SSO Start URL e SSO Region necessari per eseguire aws configure sso

    1. Nel portale di accesso AWS seleziona il set di autorizzazioni che utilizzi per lo sviluppo e quindi seleziona il link Chiavi di accesso.

    2. Nella finestra di dialogo Ottieni le credenziali seleziona la scheda corrispondente al tuo sistema operativo.

    3. Scegli il metodo Credenziali Centro identità IAM per ottenere i valori SSO Start URL e SSO Region.

  2. 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à.

  3. 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:
  1. Nel terminale che preferisci esegui il comando aws configure sso.

    (Recommended) IAM Identity Center

    Crea un nome di sessione, fornisci l’URL di avvio di Centro identità IAM o l’URL dell’emittente, la Regione AWS che ospita la directory per Centro identità IAM e l’ambito di registrazione.

    $ aws configure sso SSO session name (Recommended): 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

    Per impostazione predefinita, viene utilizzata l’autorizzazione Proof Key for Code Exchange (PKCE) per AWS CLI a partire dalla versione 2.22.0 e questa deve essere utilizzata su dispositivi dotati di browser. Per continuare a utilizzare l’autorizzazione del dispositivo, aggiungi l’opzione --use-device-code.

    $ aws configure sso --use-device-code
    Legacy IAM Identity Center

    Crea un nome di sessione e fornisci l’URL di avvio di Centro identità IAM e la Regione AWS che ospita la directory per Centro identità.

    $ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1
  2. 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.

      PKCE authorization

      Per impostazione predefinita, viene utilizzata l’autorizzazione Proof Key for Code Exchange (PKCE) per AWS CLI a partire dalla versione 2.22.0. L’URL visualizzato è un URL univoco che inizia con: https://oidc.us-east-1.amazonaws.com/authorize

      Gli URL di autorizzazione PKCE devono essere aperti sullo stesso dispositivo a cui effettui l’accesso e devono essere utilizzati per un dispositivo con browser.

      Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
      Device authorization

      L’autorizzazione del dispositivo OAuth 2.0 viene utilizzata da AWS CLI per le versioni meno recenti rispetto alla 2.22.0. Puoi abilitare questo metodo sulle versioni più recenti utilizzando l’opzione --use-device-code.

      Gli URL di autorizzazione del dispositivo non devono essere aperti sullo stesso dispositivo a cui effettui l’accesso e possono essere utilizzati per un dispositivo con o senza browser.

      If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451
  3. 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)
  4. 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 ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess
  5. Specifica il formato di output predefinito, la Regione AWS predefinita a cui inviare i comandi e un nome per il profilo. Se specifichi default come 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>
  6. Un messaggio finale descrive la configurazione del profilo completata. Puoi ora utilizzare questo profilo per richiedere le credenziali. Utilizza il comando aws sso login per 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:

IAM Identity Center
[profile my-dev-profile] sso_session = my-sso sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
Legacy IAM Identity Center
[profile my-dev-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json

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:

È 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:

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

In questo modo, è possibile riutilizzare le configurazioni sso-session su più profili:

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [profile prod] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole2 [sso-session my-sso] sso_region = us-east-1 sso_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-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_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:

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole region = us-west-2 output = 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.

PKCE authorization

Per impostazione predefinita, viene utilizzata l’autorizzazione Proof Key for Code Exchange (PKCE) per AWS CLI a partire dalla versione 2.22.0. L’URL visualizzato è un URL univoco che inizia con: https://oidc.us-east-1.amazonaws.com/authorize

Gli URL di autorizzazione PKCE devono essere aperti sullo stesso dispositivo a cui effettui l’accesso e devono essere utilizzati per un dispositivo con browser.

Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
Device authorization

L’autorizzazione del dispositivo OAuth 2.0 viene utilizzata da AWS CLI per le versioni meno recenti rispetto alla 2.22.0. Puoi abilitare questo metodo sulle versioni più recenti utilizzando l’opzione --use-device-code.

Gli URL di autorizzazione del dispositivo non devono essere aperti sullo stesso dispositivo a cui effettui l’accesso e possono essere utilizzati per un dispositivo con o senza browser.

If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451

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-session my-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 --profile my-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 logout Successfully 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.