Autenticazione con AWS Strumenti per PowerShellAWS - AWS Strumenti per PowerShell (versione 5)

È stata rilasciata la versione 5 (V5) di! AWS Strumenti per PowerShell

Per informazioni sulle modifiche introduttive e sulla migrazione delle applicazioni, consulta l'argomento sulla migrazione.

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

Autenticazione con AWS Strumenti per PowerShellAWS

È necessario stabilire in che modo il codice si autentica durante lo sviluppo con AWS . Servizi AWS Esistono diversi modi in cui è possibile configurare l'accesso programmatico alle AWS risorse, a seconda dell'ambiente e dell' AWS accesso a disposizione.

Per visualizzare i vari metodi di autenticazione per Tools for PowerShell, consulta Autenticazione e accesso nella Guida di riferimento agli strumenti AWS SDKs e agli strumenti.

In questo argomento si presuppone che un nuovo utente stia sviluppando localmente, non abbia ricevuto un metodo di autenticazione dal datore di lavoro e che lo utilizzerà AWS IAM Identity Center per ottenere credenziali temporanee. Se l'ambiente in uso non rientra in questi presupposti, alcune delle informazioni contenute in questo argomento potrebbero non riguardarti l'utente o potrebbero esserti già state fornite.

La configurazione di questo ambiente richiede diversi passaggi, riassunti di seguito:

Accedi utilizzando le credenziali della console

È possibile utilizzare le credenziali di accesso esistenti AWS della Console di gestione per l'accesso programmatico a. Servizi AWS Dopo un flusso di autenticazione basato su browser, AWS Strumenti per PowerShell genera credenziali temporanee che funzionano con strumenti di sviluppo locali come, and. AWS SDKs AWS Strumenti per PowerShell AWS CLI Questa funzionalità semplifica il processo di configurazione e gestione delle credenziali CLI, soprattutto se si preferisce l'autenticazione interattiva alla gestione delle chiavi di accesso a lungo termine.

Con questo processo, puoi autenticarti utilizzando le credenziali root create durante la configurazione iniziale dell'account, un utente IAM o un'identità federata del tuo provider di identità e Tools for gestisce PowerShell automaticamente le credenziali temporanee per te. Questo approccio migliora la sicurezza eliminando la necessità di archiviare le credenziali a lungo termine a livello locale.

Quando si esegue il Invoke-AWSLogin cmdlet, è possibile selezionare una delle sessioni attive della console oppure accedere tramite il flusso di autenticazione basato sul browser e questo genererà automaticamente credenziali temporanee. AWS Strumenti per PowerShell aggiornerà automaticamente queste credenziali per un massimo di 12 ore.

Una volta configurata, la sessione può essere utilizzata in AWS Strumenti per PowerShell e in tutti gli altri strumenti AWS SDKs .

Accedere a AWS con il cmdlet Invoke- AWSLogin

Esegui il Invoke-AWSLogin cmdlet per l'autenticazione utilizzando le credenziali della console di gestione esistenti. AWS Se non hai configurato in precedenza un profilo, ti verranno richieste ulteriori informazioni.

Per accedere o configurare un profilo, procedi nel seguente modo.

  1. Assicurati di aver importato il modulo corretto che hai installato dalla guida all'installazione.

    Nota

    Abbiamo tre diversi moduli per PowerShell -AWS.Tools, AWSPowerShell.NetCore eAWSPowerShell. Per ulteriori informazioni, consulta Cosa sono gli AWS Strumenti per PowerShell?.

    • Nel PowerShell terminale, esegui il cmdlet. Verrà utilizzato il profilo. default

      PS > Invoke-AWSLogin
    • Per accedere a un profilo denominato o crearne uno nuovo, usa il -ProfileName parametro.

      PS > Invoke-AWSLogin -ProfileName 'my-dev-profile'
    • Se si tratta di un nuovo profilo o se non è Regione AWS stato specificato o configurato in nessuna delle profiles/environment variabili precedenti, il cmdlet richiede di fornire un'area.

      Press Ctrl+C to cancel the following login prompts. Specify AWS Region No AWS region has been configured. The AWS region is the geographic location of your AWS resources. If you've used AWS before and already have resources in your account, tell us which region they were created in. If you haven't created resources in your account before, you can pick the region closest to you: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html AWS Region:
  2. I AWS Strumenti per PowerShell tentativi di aprire il browser predefinito per la procedura di accesso all'account. AWS

    Using region 'us-west-2' Attempting to open the login page for 'us-west-2' in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-west-2.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.
    • Se il dispositivo utilizzato AWS Strumenti per PowerShell non dispone di un browser, è possibile utilizzare il -Remote parametro per fornire un URL da aprire su un dispositivo abilitato al browser.

      PS > Invoke-AWSLogin -Remote
    • Se hai utilizzato il -Remote parametro, vengono visualizzate le istruzioni per avviare manualmente la procedura di accesso in base al tipo di autorizzazione che stai utilizzando. L'URL visualizzato è un URL univoco che inizia con: https://signin.us-east-1.amazonaws.com /authorize. Una volta completato l'accesso al browser, dovrai copiare e incollare nuovamente il codice di autorizzazione risultante nel terminale.

      Press Ctrl+C to cancel the following login prompts. Using region 'us-west-2' determined by profile/environment defaults. To override, specify '-Region' parameter. Please complete the login workflow via the following URL: https://us-west-2.signin.aws.amazon.com/v1/authorize?<abbrievated> Please enter the authorization code displayed in the browser:
  3. Nel browser, selezionate le credenziali da utilizzare dall'elenco visualizzato e poi tornate al terminale.

    • Se il profilo che state configurando ha una sessione di accesso precedentemente configurata che non corrisponde alla nuova sessione, vi viene AWS Strumenti per PowerShell richiesto di confermare che state cambiando la sessione che corrisponde al profilo esistente.

      WARNING: Previously profile default was configured for arn:aws:iam::0123456789012:user/ReadOnly, and is now being updated to arn:aws:iam::0123456789012:user/Admin. Do you wish to change the identity that default is associated with? (y/n)
  4. Un messaggio finale descrive la configurazione del profilo completata.

    Login completed successfully for profile 'my-dev-profile'.

    Il token di autenticazione viene memorizzato nella cache su disco sotto il. aws/login/cachedirectory con un nome di file hash basato sul profilo risolto.

File di configurazione generato

Questi passaggi comportano la creazione del profilo predefinito o specificato nel file di configurazione simile al seguente:

[default] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1 [my-dev-profile] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1

Esegui un comando con il tuo profilo

Una volta effettuato l'accesso, è possibile utilizzare le credenziali per richiamare Tools for PowerShell cmdlet con il profilo associato. L'esempio seguente chiama il Get-STSCallerIdentity cmdlet utilizzando il profilo predefinito:

PS > Get-STSCallerIdentity

Per verificare la presenza di una sessione specifica, utilizzare il -ProfileName parametro.

PS > Get-STSCallerIdentity -ProfileName 'my-dev-profile'

Il token di credenziali temporaneo scadrà tra 15 minuti, ma lo AWS Strumenti per PowerShell SDKs aggiornerà automaticamente quando necessario durante le richieste. L'intera sessione sarà valida per un massimo di 12 ore, dopodiché sarà necessario eseguire nuovamente il Invoke-AWSLogin cmdlet.

Uscire dalla sessione utilizzando il cmdlet Invoke-AWSLogout

Al termine della sessione, è possibile lasciare scadere le credenziali oppure eseguire il Invoke-AWSLogout cmdlet per eliminare le credenziali memorizzate nella cache. Se non è specificato alcun profilo nella CLI o nella variabile di AWS_PROFILE ambiente, il comando ti disconnette dal tuo profilo predefinito. L'esempio seguente ti disconnette dal tuo profilo predefinito.

PS > Invoke-AWSLogout

Per uscire da una sessione di profilo specifica, utilizzate il -ProfileName parametro.

PS > Invoke-AWSLogout -ProfileName 'my-dev-profile'

Per uscire da tutte le sessioni del profilo a cui hai effettuato l'accesso, usa il -All parametro.

PS > Invoke-AWSLogout -All

Credenziali memorizzate nella cache

Le credenziali temporanee memorizzate nella cache e i metadati necessari per aggiornarle vengono archiviati per impostazione predefinita %USERPROFILE%\.aws\login\cache in Windows o ~/.aws/login/cache Linux e macOS.

È possibile sovrascrivere questa posizione impostando la variabile di ambiente. AWS_LOGIN_CACHE_DIRECTORY

Abilitazione e configurazione di IAM Identity Center

Per utilizzarla AWS IAM Identity Center, deve prima essere abilitata e configurata. Per maggiori dettagli su come eseguire questa operazione PowerShell, consulta la Fase 1 dell'argomento relativo all'autenticazione di IAM Identity Center nella AWS SDKs and Tools Reference Guide. In particolare, segui le istruzioni necessarie riportate nella sezione I do not have established access through IAM Identity Center (Non ho stabilito l'accesso tramite IAM Identity Center).

Configura gli strumenti per PowerShell utilizzare IAM Identity Center.

Nota

A partire dalla versione 4.1.538 di Tools for PowerShell, il metodo consigliato per configurare le credenziali SSO e avviare una sessione del portale di AWS accesso consiste nell'utilizzare i Invoke-AWSSSOLogincmdlet Initialize-AWSSSOConfigurationand, come descritto in questo argomento. Se non si ha accesso a quella versione degli strumenti per PowerShell (o successiva) o non è possibile utilizzare tali cmdlet, è comunque possibile eseguire queste attività utilizzando il. AWS CLI Per scoprire come, vedi. Usa il AWS CLI per accedere al portale

La procedura seguente aggiorna il AWS config file condiviso con le informazioni SSO che Tools for PowerShell utilizza per ottenere credenziali temporanee. Come conseguenza di questa procedura, viene avviata anche una sessione del portale di AWS accesso. Se il config file condiviso contiene già informazioni SSO e desideri semplicemente sapere come avviare una sessione del portale di accesso utilizzando gli Strumenti per PowerShell, consulta la sezione successiva di questo argomento,Avviare una sessione del portale di AWS accesso.

  1. Se non l'hai ancora fatto, apri PowerShell e installa il file appropriato per AWS Strumenti per PowerShell il tuo sistema operativo e ambiente, inclusi i cmdlet comuni. Per informazioni su come eseguire questa attività, consultare Inizia con AWS Strumenti per PowerShell.

    Ad esempio, se installi la versione modulare di Tools for PowerShell on Windows, molto probabilmente eseguirai comandi simili ai seguenti:

    Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common
  2. Esegui il comando seguente. Sostituisci i valori delle proprietà di esempio con i valori della configurazione di IAM Identity Center. Per informazioni su queste proprietà e su come trovarle, consulta le impostazioni del provider di credenziali IAM Identity Center nella AWS SDKs and Tools Reference Guide.

    $params = @{ ProfileName = 'my-sso-profile' AccountId = '111122223333' RoleName = 'SamplePermissionSet' SessionName = 'my-sso-session' StartUrl = 'https://provided-domain.awsapps.com/start' SSORegion = 'us-west-2' RegistrationScopes = 'sso:account:access' }; Initialize-AWSSSOConfiguration @params

    In alternativa, è possibile utilizzare semplicemente il cmdlet da solo e la Initialize-AWSSSOConfiguration finestra Tools for PowerShell richiede i valori delle proprietà.

    Considerazioni per determinati valori di proprietà:

    • Se hai semplicemente seguito le istruzioni per abilitare e configurare IAM Identity Center, il valore per -RoleName potrebbe esserePowerUserAccess. Ma se hai creato un set di autorizzazioni IAM Identity Center appositamente per PowerShell il lavoro, utilizzalo invece.

    • Assicurati di utilizzare il Regione AWS punto in cui hai configurato IAM Identity Center.

  3. A questo punto, il AWS config file condiviso contiene un profilo chiamato my-sso-profile con un set di valori di configurazione a cui è possibile fare riferimento negli Strumenti per PowerShell. Per trovare la posizione di questo file, consulta Posizione dei file condivisi nella Guida di riferimento agli strumenti AWS SDKs e strumenti.

    Tools for PowerShell utilizza il provider di token SSO del profilo per acquisire le credenziali prima di inviare richieste a. AWS Il sso_role_name valore, che è un ruolo IAM connesso a un set di autorizzazioni IAM Identity Center, dovrebbe consentire l'accesso ai dati Servizi AWS utilizzati nell'applicazione.

    L'esempio seguente mostra il profilo che è stato creato utilizzando il comando mostrato sopra. Alcuni valori delle proprietà e il relativo ordine potrebbero essere diversi nel profilo attuale. La sso-session proprietà del profilo si riferisce alla sezione denominatamy-sso-session, che contiene le impostazioni per avviare una sessione del portale di AWS accesso.

    [profile my-sso-profile] sso_account_id=111122223333 sso_role_name=SamplePermissionSet sso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2 sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/
  4. Se hai già una sessione attiva del portale di AWS accesso, la sezione Strumenti ti PowerShell informa che hai già effettuato l'accesso.

    In caso contrario, lo strumento Strumenti PowerShell tenta di aprire automaticamente la pagina di autorizzazione SSO nel browser Web predefinito. Segui le istruzioni del tuo browser, che potrebbero includere un codice di autorizzazione SSO, nome utente e password e l'autorizzazione ad accedere agli AWS IAM Identity Center account e ai set di autorizzazioni.

    Gli strumenti per PowerShell informarti che l'accesso SSO è avvenuto con successo.

Avviare una sessione del portale di AWS accesso

Prima di eseguire i comandi di accesso Servizi AWS, è necessaria una sessione attiva del portale di AWS accesso in modo che Tools for PowerShell possa utilizzare l'autenticazione IAM Identity Center per risolvere le credenziali. Per accedere al portale di AWS accesso, esegui il seguente comando in PowerShell, -ProfileName my-sso-profile dov'è il nome del profilo che è stato creato nel config file condiviso quando hai seguito la procedura nella sezione precedente di questo argomento.

Invoke-AWSSSOLogin -ProfileName my-sso-profile

Se hai già una sessione attiva del portale di AWS accesso, il menu Strumenti ti PowerShell informa che hai già effettuato l'accesso.

In caso contrario, lo strumento Strumenti PowerShell tenta di aprire automaticamente la pagina di autorizzazione SSO nel browser Web predefinito. Segui le istruzioni del tuo browser, che potrebbero includere un codice di autorizzazione SSO, nome utente e password e l'autorizzazione ad accedere agli AWS IAM Identity Center account e ai set di autorizzazioni.

Gli strumenti per PowerShell informarti che l'accesso SSO è avvenuto con successo.

Per verificare se hai già una sessione attiva, esegui il comando seguente dopo aver installato o importato il AWS.Tools.SecurityToken modulo, se necessario.

Get-STSCallerIdentity -ProfileName my-sso-profile

La risposta al Get-STSCallerIdentity cmdlet riporta l'account IAM Identity Center e il set di autorizzazioni configurati nel file condiviso. config

Esempio

Di seguito è riportato un esempio di come utilizzare IAM Identity Center con gli strumenti per. PowerShell Si presume quanto segue:

  • Hai abilitato IAM Identity Center e lo hai configurato come descritto in questo argomento. Le proprietà SSO si trovano nel my-sso-profile profilo, che è stato configurato in precedenza in questo argomento.

  • Quando accedi tramite i Invoke-AWSSSOLogin cmdlet Initialize-AWSSSOConfiguration or, l'utente dispone almeno delle autorizzazioni di sola lettura per Amazon S3.

  • Alcuni bucket S3 sono disponibili per la visualizzazione da parte dell'utente.

Installa o importa il AWS.Tools.S3 modulo secondo necessità, quindi utilizza il PowerShell comando seguente per visualizzare un elenco dei bucket S3.

Get-S3Bucket -ProfileName my-sso-profile

Informazioni aggiuntive