AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il...

226
AWS Command Line Interface Guida per l'utente

Transcript of AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il...

Page 1: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line InterfaceGuida per l'utente

Page 2: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utente

AWS Command Line Interface: Guida per l'utenteCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utente

Table of ContentsCos'è l'AWS CLI? ............................................................................................................................... 1

Versioni diAWS CLI .................................................................................................................... 1Manutenzione e supporto per le versioni principali di SDK ................................................................ 1Informazioni su Amazon Web Services .......................................................................................... 2Versioni diAWS CLI .................................................................................................................... 2

AWS CLI versione 2 ........................................................................................................... 2AWS CLI versione 1 ........................................................................................................... 2

Utilizzo degli esempi ................................................................................................................... 2Documentazione e risorse aggiuntive ............................................................................................. 3

Documentazione e risorse diAWS CLI ................................................................................... 3Altro AWS SDKs ................................................................................................................ 4

Installazione di AWS CLI ..................................................................................................................... 5AWS CLI versione 2 ................................................................................................................... 5

Docker .............................................................................................................................. 5Linux ............................................................................................................................... 10macOS ............................................................................................................................ 18Windows .......................................................................................................................... 22

AWS CLI versione 1 ................................................................................................................. 24Amazon Linux .................................................................................................................. 24Linux ............................................................................................................................... 26macOS ............................................................................................................................ 33Windows .......................................................................................................................... 39Virtualenv ........................................................................................................................ 42

Configurazione di AWS CLI ................................................................................................................ 44Nozioni di base sulla configurazione ............................................................................................ 44

Configurazione rapida con aws configure ........................................................................ 45ID chiave di accesso e Secret Access Key ........................................................................... 45Region ............................................................................................................................ 46Formato di output ............................................................................................................. 46Profiles ............................................................................................................................ 47Impostazioni di configurazione e precedenza ........................................................................ 47

Impostazioni del file di configurazione e delle credenziali ................................................................ 48Dove vengono archiviate le impostazioni di configurazione? .................................................... 48Impostazione e visualizzazione delle impostazioni di configurazione .......................................... 49Impostazioni supportate del file config ............................................................................... 50

Profili denominati ...................................................................................................................... 61Utilizzo dei profili con l'AWS CLI ......................................................................................... 62

Configurazione di AWS CLI per utilizzare AWS Single Sign-On ........................................................ 62Configurazione di un profilo denominato per utilizzare AWS SSO ............................................. 63Utilizzo di un profilo denominato abilitato AWS SSO ............................................................... 66

Variabili di ambiente .................................................................................................................. 68Come impostare le variabili di ambiente ............................................................................... 68Variabili di ambiente AWS CLI supportate ............................................................................ 69

Opzioni della riga di comando .................................................................................................... 72Completamento dei comandi ...................................................................................................... 75

Come funziona ................................................................................................................. 75Configurazione del completamento dei comandi .................................................................... 76

Tentativi ................................................................................................................................... 78Modalità di ripetizione disponibili ......................................................................................... 79Configurazione di una modalità di ripetizione ......................................................................... 80Visualizzazione dei log dei tentativi di ripetizione ................................................................... 81

Credenziali di approvvigionamento con un processo esterno ............................................................ 82Utilizzo delle credenziali per i metadati dell'istanzaAmazon EC2 ....................................................... 83

Prerequisites .................................................................................................................... 84

iii

Page 4: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utente

Configurazione di un profilo per i metadati diAmazon EC2 ....................................................... 84Utilizzo di un proxy HTTP .......................................................................................................... 85

Autenticazione in un proxy ................................................................................................. 85Utilizzo di un proxy per le istanze Amazon EC2 ..................................................................... 86

Utilizzo di un ruolo IAM nell'AWS CLI .......................................................................................... 86Configurazione e utilizzo di un ruolo .................................................................................... 87Utilizzo di MFA ................................................................................................................. 88Ruoli per più account e ID esterno ...................................................................................... 90Specifica di un nome di sessione del ruolo per semplificare l'audit ............................................ 90Assunzione di un ruolo con un'identità Web .......................................................................... 90Cancellazione delle credenziali nella cache ........................................................................... 91

Utilizzo del AWS CLI ......................................................................................................................... 93Utilizzo della Guida ................................................................................................................... 93

Documentazione della AWS CLI ......................................................................................... 96Documentazione API ......................................................................................................... 97

Struttura di comando ................................................................................................................. 97Struttura di comando ......................................................................................................... 97Comandi di attesa ............................................................................................................. 98

Specifica dei valori di parametro ................................................................................................. 99Tipi di parametri comuni .................................................................................................... 99Virgolette con stringhe ..................................................................................................... 101Parametri dai file ............................................................................................................. 103Generazione di un modello dello skeleton della CLI .............................................................. 105Sintassi abbreviata .......................................................................................................... 113

Prompt automatico .................................................................................................................. 115Come funziona ............................................................................................................... 115Funzionalità di prompt automatico ...................................................................................... 115Modalità di prompt automatico .......................................................................................... 117Configurare il prompt automatico ....................................................................................... 118

Controllo dell'output dei comandi ............................................................................................... 118Come scegliere il formato di output .................................................................................... 118Formato di output JSON .................................................................................................. 119Il formato YAML dell'output ............................................................................................... 120Formato di output del flusso YAML .................................................................................... 120Formato di output di testo ................................................................................................ 121Formato di output di tabella .............................................................................................. 124Come filtrare l'output con l'opzione --query ....................................................................... 125Come impostare il programma pager predefinito dell'output .................................................... 130

Paginazione ............................................................................................................................ 131Paginazione lato server .................................................................................................... 131Impaginatore lato client .................................................................................................... 133

Codici restituiti ........................................................................................................................ 135Utilizzo di AWS CLI con i servizi AWS ............................................................................................... 137

DynamoDB ............................................................................................................................. 137Amazon EC2 .......................................................................................................................... 139

Coppie di chiavi Amazon EC2 ........................................................................................... 139Gruppo di sicurezza Amazon EC2 ..................................................................................... 141Istanze EC2 ................................................................................................................... 146Cambiare il tipo di EC2 utilizzando lo scripting bash ............................................................. 151

S3 Glacier .............................................................................................................................. 163Creazione di un vault Amazon S3 Glacier ........................................................................... 164Preparazione di un file per il caricamento ........................................................................... 164Avvio di un caricamento in più parti e caricamento dei file ..................................................... 165Completamento del caricamento ........................................................................................ 166

IAM ....................................................................................................................................... 167Creazione IAM utenti e gruppi ........................................................................................... 168Collegamento di un IAM la policy gestita a un IAM utente ...................................................... 169

iv

Page 5: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utente

Impostazione di una password iniziale per un IAM utente ...................................................... 169Creare una chiave di accesso per un IAM utente ................................................................. 170

Amazon S3 ............................................................................................................................ 170Comandi di alto livello (s3) ............................................................................................... 171Comandi API-level (s3 api) ............................................................................................... 179Esempio di scripting del ciclo di vita del bucket (s3api) ........................................................ 180

Amazon SNS .......................................................................................................................... 190Creazione di un argomento .............................................................................................. 190Sottoscrizione a un argomento .......................................................................................... 190Pubblicazione in un argomento ......................................................................................... 191Annullamento della sottoscrizione a un argomento ............................................................... 191Eliminazione di un argomento ........................................................................................... 192

Amazon SWF ......................................................................................................................... 192Elenco di Amazon SWF Comandi ...................................................................................... 192Utilizzo dei domini Amazon SWF ....................................................................................... 195

Sicurezza ....................................................................................................................................... 198Protezione dei dati .................................................................................................................. 198

Crittografia dei dati .......................................................................................................... 199Gestione delle identità e degli accessi ........................................................................................ 199Convalida della conformità ........................................................................................................ 200Applicazione di TLS 1.2 ........................................................................................................... 200

Configurazione della AWS CLI versione 1 per l'applicazione di una versione minima di TLS 1.2Minimo ........................................................................................................................... 201Configurazione della AWS CLI versione 2 per l'applicazione di una versione minima di TLS 1.2 .... 203

Risoluzione degli errori ..................................................................................................................... 204Migrazione/Interruzione delle modifiche ............................................................................................... 212

Variabile di ambiente di codifica dei file ...................................................................................... 212Passaggio dei parametri binari .................................................................................................. 213Migliorata la gestione delle proprietà e dei tag Amazon S3 durante le operazioni s3 copy .................. 213Nessun recupero automatico delle pagine Web per i parametri ....................................................... 214Paging dell'output .................................................................................................................... 214Tutti i valori di data/ora in formato ISO 8601 ............................................................................... 215Gestione della distribuzione AWS CloudFormation migliorata ......................................................... 216Chiavi e percorsi Amazon S3 coerenti ........................................................................................ 216Regione Amazon S3 e us-est-1 ................................................................................................. 216Endpoint regionali e AWS STS ................................................................................................. 216Rendere obsoleto ecr get-login .......................................................................................... 217Modifica del supporto per [plugins] ........................................................................................ 217Nessun alias nascosto ............................................................................................................. 217

Cronologia dei documenti ................................................................................................................. 219................................................................................................................................................... ccxxi

v

Page 6: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVersioni diAWS CLI

Che cosa è AWS Command LineInterface?

AWS Command Line Interface (AWS CLI) è uno strumento open source che consente di interagire coni servizi AWS utilizzando i comandi nella shell a riga di comando. Con una configurazione minima, AWSCLI consente di avviare l'esecuzione di comandi che implementano funzionalità equivalenti a quelle fornitedall'Console di gestione AWS basato su browser dal prompt dei comandi nel programma di terminale:

• Shell Linux – Utilizza programmi shell comuni come bash, zsh e tcsh per eseguire i comandi in Linux omacOS.

• Riga di comando di Windows In Windows, esegui i comandi dal prompt dei comandi di Windows o in–.PowerShell

• In remoto – Esegui i comandi sulle istanze Amazon Elastic Compute Cloud (Amazon EC2) tramite unprogramma terminale remoto come PuTTY o SSH o con AWS Systems Manager.

Tutte le funzioni di amministrazione, gestione e accesso IaaS (Infrastructure as a Service) di AWSsono disponibili nell'API e nell'interfaccia a riga di comando di Console di gestione AWS.AWS Le nuovecaratteristiche e i nuovi servizi di AWS IaaS offrono funzionalità Console di gestione AWS complete tramitel'API e l'interfaccia a riga di comando all'avvio o entro 180 giorni dall'avvio.

fornisce accesso diretto al AWS CLI pubblico dei servizi APIs.AWS Puoi esplorare le capacità di un serviziocon AWS CLI e sviluppare script di shell per gestire le risorse. Oltre ai comandi di basso livello equivalentialle API, diversi servizi AWS offrono personalizzazioni per AWS CLI. Le personalizzazioni possonoincludere comandi di livello più elevato che semplificano l'utilizzo di un servizio con un'API complessa.

Versioni diAWS CLIL'AWS CLI è disponibile in due versioni e le informazioni contenute in questa guida si applicano a entrambele versioni, salvo diversa indicazione.

• Versione 2.x – La versione corrente, generalmente disponibile dell'AWS CLI che è destinata all'uso inambienti di produzione.

• Versione 1.x – La versione precedente di AWS CLI disponibile per la compatibilità con le versioniprecedenti.

Per ulteriori informazioni sulle diverse versioni, consulta Informazioni sulle versioni diAWS CLI (p. 2).

Manutenzione e supporto per le versioni principali diSDK

Per informazioni sulla manutenzione e il supporto per le versioni principali di SDK e le relative dipendenzesottostanti, vedere quanto segue nella Guida di riferimento alle credenziali e alla configurazione condivisadegli strumenti e di AWS SDK:

• AWS SDK e criteri di manutenzione strumenti• Matrice di supporto per la versione degli strumenti e AWS SDK

1

Page 7: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteInformazioni su Amazon Web Services

Informazioni su Amazon Web ServicesAmazon Web Services (AWS) è una raccolta di servizi infrastrutturali digitali utilizzabile dagli sviluppatoriper sviluppare le proprie applicazioni. I servizi includono l'elaborazione, lo storage, il database e lasincronizzazione delle applicazioni (messaggistica e accodamento). AWS impiega un modello di servizibasato sul consumo. Ti vengono addebitati solo i servizi utilizzati da te o dalle tue applicazioni. Inoltre, alfine di rendere AWS più accessibile per realizzare prototipi e sperimentare, AWS offre un piano di utilizzogratuito. In questo piano, i servizi sono gratuiti al di sotto di un determinato livello di utilizzo. Per ulterioriinformazioni sui costi AWS e sul piano gratuito, consulta la pagina relativa alla versione di prova di AWSnel piano di utilizzo gratuito. Per creare un account AWS, apri la home page di AWS e fai clic su Sign Up(Registrati).

Informazioni sulle versioni diAWS CLIL'AWS CLI è disponibile in due versioni e le informazioni contenute in questa guida si applicano a entrambele versioni, salvo diversa indicazione. Per verificare quale versione è attualmente installata, esegui ilcomando aws --version nella shell. Il valore restituito fornisce la versione corrente che hai installato.L'esempio seguente mostra che la versione in esecuzione è 2.0.47.

$ aws --versionaws-cli/2.0.47 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.0.0

AWS CLI versione 2AWS CLI versione 2 è la versione principale più recente di AWS CLI e supporta tutte le ultimecaratteristiche. Alcune funzionalità introdotte nella versione 2 non sono sottoposte al backport alla versione1 ed è necessario eseguire l'aggiornamento per accedere a tali funzionalità. Ci sono alcune modifiche"importanti" rispetto alla versione 1 che potrebbero richiedere di modificare gli script. Per un elenco dinuove caratteristiche e modifiche in conflitto nella versione 2, consulta Modifiche importanti: migrazione daAWS CLI versione 1 alla versione 2 (p. 212).

AWS CLI versione 2 è disponibile per l'installazione solo come un programma di installazione inbundle. Anche se è possibile trovarlo nei programmi di gestione dei pacchetti, si tratta di pacchetti nonsupportati e non ufficiali non prodotti o gestiti da AWS. Si consiglia di installare l'AWS CLI solo da punti didistribuzione AWS ufficiali come documentato in questa guida. Per ulteriori informazioni, vedi Installazione,aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

AWS CLI versione 1AWS CLI versione 1 è l'AWS CLI originale e continuiamo a fornire il supporto. Tuttavia, le nuovecaratteristiche principali introdotte in AWS CLI versione 2 potrebbero non essere sottoposte al backport inAWS CLI versione 1. Per utilizzare queste caratteristiche, è necessario installare AWS CLI versione 2.

Utilizzo degli esempiAWS CLIGli esempi di AWS Command Line Interface (AWS CLI) in questa guida sono formattati utilizzando leseguenti convenzioni:

• Prompt Il prompt dei comandi utilizza il prompt di Linux e viene visualizzato come (–).$ Per i comandispecifici di Windows, C:\> viene utilizzato come prompt. Non includere il prompt quando digiti i comandi.

2

Page 8: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDocumentazione e risorse aggiuntive

• Directory – Quando i comandi devono essere eseguiti da una directory specifica, il nome della directoryviene visualizzato prima del simbolo del prompt.

• Input utente: il testo del comando da immettere nella riga di comando viene formattato come userinput.

• Testo sostituibile Il testo variabile, inclusi i nomi delle risorse scelte o – generato dai servizi IDs che ènecessario includere nei comandi, è formattato comeAWS replaceable text(Editor di Lumberyard).Nei comandi su più righe o nei comandi in cui è richiesto input da tastiera specifico, i comandi da tastierapossono anche essere mostrati come testo sostituibile.

• Output – L'output restituito dai servizi AWS viene mostrato sotto l'input utente e viene formattato comecomputer output.

Il seguente esempio di comando aws configure illustra input utente, testo sostituibile e output:

1. Immettere aws configure nella riga di comando, quindi premere Invio.2. L'AWS CLI genera righe di testo che richiedono di immettere ulteriori informazioni.3. Inserisci tutte le chiavi di accesso consecutivamente e quindi premi Invio.4. Quindi, immetti un nome di regione AWS nel formato mostrato, premi Invio, quindi premi Invio per

l'ultima volta per ignorare l'impostazione del formato di output.5. Il comando Invio finale viene mostrato come testo sostituibile in quanto per quella riga non esiste alcun

input utente.6.

$ aws configureAWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]: us-west-2Default output format [None]: ENTER

L'esempio seguente mostra un semplice comando con l'output. Per usare questo esempio, immetti il testocompleto del comando (il testo evidenziato dopo la richiesta) e quindi premi Invio. Il nome del gruppo disicurezza, my-sgè sostituibile con il nome del gruppo di sicurezza desiderato. Il documento JSON, inclusele parentesi graffe, è l'output. Se si configura l'interfaccia a riga di comando per l'output in formato testo otabella, l'output viene formattato in modo diverso. JSON è il formato di output predefinito.

$ aws ec2 create-security-group --group-name my-sg --description "My security group"{ "GroupId": "sg-903004f8"}

Note

Gli argomenti che devono essere sostituiti (ad esempio AWS Access Key ID) e quelli che devonoessere sostituiti (ad esempio group name), vengono visualizzati come replaceable text initalics(Editor di Lumberyard). Se un argomento deve essere sostituito, viene annotato nel testoche descrive l'esempio.

Documentazione e risorse aggiuntiveDocumentazione e risorse diAWS CLIOltre a questa guida per l'utente, di seguito sono elencate altre risorse online preziose per AWS CLI.

3

Page 9: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteAltro AWS SDKs

• AWS CLI versione 1 Guida di riferimento di• AWS CLI versione 2 Guida di riferimento di• AWS CLIArchivio Puoi visualizzare e biforcare il codice sorgente per GitHub su .AWS CLIGitHub Unisciti

alla community di utenti su GitHub per fornire un feedback, richiedere caratteristiche e inviare il tuocontributo.

• Archivio di esempi di alias AWS CLI Puoi visualizzare e creare una fork di esempi di alias su AWSCLI.GitHub

• AWS CLI versione 1 Note sulle modifiche di• AWS CLI versione 2 Note sulle modifiche di• AWS CLI repository di esempi di codice

Altro AWS SDKsA seconda del caso d'uso, è possibile scegliere uno tra SDKs AWS o Strumenti AWS per PowerShell:

• Strumenti AWS per PowerShell• AWS SDK for Java• SDK AWS per .NET• AWS SDK for JavaScript• SDK AWS per Ruby• AWS SDK for Python (Boto)• SDK AWS per PHP• SDK AWS per Go• AWS Mobile SDK for iOS• AWS Mobile SDK per Android

4

Page 10: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteAWS CLI versione 2

Installazione, aggiornamento edisinstallazione diAWS CLI

(AWS Command Line Interface) è disponibile nella versione 1 e nella versione 2.AWS CLI Per ulterioriinformazioni su ciascuna versione, consulta Informazioni sulle versioni diAWS CLI (p. 2).

Per istruzioni su come installare, aggiornare e disinstallare AWS CLI, seleziona la tua versione:

Versioni• Installazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5)• Installazione, aggiornamento e disinstallazione diAWS CLI versione 1 (p. 24)

Installazione, aggiornamento e disinstallazionediAWS CLI versione 2

In questo argomento vengono forniti collegamenti a informazioni su come installare, aggiornare edisinstallare la versione 2 di AWS Command Line Interface (AWS CLI) sui sistemi operativi supportati.Per informazioni sulle ultime versioni di AWS CLI versione 2, consulta le AWS CLI versione 2note sullemodifiche di su GitHub.

Istruzioni di installazione di AWS CLI versione 2:• Utilizzo dell'immagine Docker AWS CLI versione 2 ufficiale (p. 5)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 2 su Linux (p. 10)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 2 sumacOS (p. 18)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 2 su Windows (p. 22)

Utilizzo dell'immagine Docker AWS CLI versione 2ufficialeIn questo argomento viene descritto come eseguire, controllare la versione e configurare AWS CLI versione2 nel Docker. Per ulteriori informazioni su come utilizzare Docker, consulta la documentazione di Docker.

Le immagini Docker ufficiali forniscono isolamento, portabilità e sicurezza supporti e gestiti direttamenteda AWS. Ciò consente di utilizzare l'AWS CLI versione 2 in un ambiente basato su container senza dovergestire autonomamente l'installazione.

Note

L'AWS CLI versione 2 è l'unico strumento supportato sull'immagine Docker AWS ufficiale.

Argomenti• Prerequisites (p. 6)• Esecuzione dell'immagine Docker AWS CLI versione 2 ufficiale (p. 6)• Utilizzo di versioni e tag specifici (p. 6)• Aggiornamento all'ultima immagine Docker (p. 7)• Condivisione di file host, credenziali, variabili di ambiente e configurazione (p. 7)

5

Page 11: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDocker

• Abbreviazione del comando Docker (p. 9)

PrerequisitesÈ necessario che Docker sia installato. Per istruzioni sull'installazione, consulta il sito Web Docker.

Per verificare l'installazione di Docker, eseguire il comando seguente e confermare l'esistenza di output.

$ docker --versionDocker version 19.03.1

Esecuzione dell'immagine Docker AWS CLI versione 2 ufficialeL'immagine Docker AWS CLI versione 2 ufficiale è ospitata su DockerHub nel repository amazon/aws-cli. La prima volta che si utilizza il comando docker run, l'immagine Docker più recente viene scaricatasul computer. Ogni successivo utilizzo del comando docker run viene eseguito dalla copia locale.

Per eseguire l'immagine Docker AWS CLI versione 2, utilizzare il comando docker run.

$ docker run --rm -it amazon/aws-cli command

Ecco come funziona il comando:

• docker run --rm --it amazon/aws-cli: equivalente dell'eseguibile aws. Ogni volta che eseguiquesto comando, Docker rende operativo un container dell'immagine amazon/aws-cli scaricata edesegue il comando aws. Per impostazione predefinita, l'immagine Docker utilizza l'ultima versione diAWS CLI versione 2.

Ad esempio, per chiamare il comando aws --version nel Docker, eseguire quanto segue.

$ docker run --rm -it amazon/aws-cli --versionaws-cli/2.0.47 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.0.0dev10

• --rm: specifica di ripulire il container al termine del comando.• -it – Specifica di aprire uno pseudo-TTY con stdin. Ciò consente di fornire input a AWS CLI versione

2 mentre è in esecuzione in un container, ad esempio, utilizzando i comandi aws configure e awshelp. Se esegui script, -it non è necessario. Se si verificano errori con gli script, ometti -it dallachiamata Docker.

Per ulteriori informazioni sul comando docker run, consulta la Guida di riferimento di Docker.

Utilizzo di versioni e tag specificiL'immagine Docker AWS CLI versione 2 ufficiale ha più versioni che è possibile utilizzare, a partire dallaversione 2.0.6. Per eseguire una versione specifica di AWS CLI versione 2, accodare il tag appropriatoal comando docker run. La prima volta che si utilizza il comando docker run con un tag, l'ultimaimmagine Docker per quel tag viene scaricata nel computer. Ogni successivo utilizzo del comando dockerrun con quel tag viene eseguito dalla copia locale.

È possibile utilizzare due tipi di tag:

• latest – Definisce l'ultima versione di AWS CLI versione 2 per l'immagine Docker. Si consiglia diutilizzare il tag latest quando si desidera l'ultima versione di AWS CLI versione 2. Tuttavia, non ci sonogaranzie di compatibilità con le versioni precedenti quando si fa affidamento su questo tag. Il tag latestviene utilizzato per impostazione predefinita nel comando docker run. Per utilizzare esplicitamente iltag latest, aggiungere il tag al nome dell'immagine del container.

6

Page 12: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDocker

$ docker run --rm -it amazon/aws-cli:latest command

• <major.minor.patch> – Definisce una versione specifica dell'AWS CLI versione 2 per l'immagineDocker. Se si prevede di utilizzare l'immagine Docker in produzione, si consiglia di utilizzare una versionespecifica di AWS CLI versione 2 per garantire la compatibilità con le versioni precedenti. Ad esempio, pereseguire la versione 2.0.6, aggiungere la versione al nome dell'immagine del container.

$ docker run --rm -it amazon/aws-cli:2.0.6 command

Aggiornamento all'ultima immagine DockerPoiché l'immagine Docker più recente viene scaricata nel computer solo la prima volta che si utilizzail comando docker run, è necessario estrarre manualmente un'immagine aggiornata. Per eseguiremanualmente l'aggiornamento alla versione più recente, ti consigliamo di estrarre l'immagine latest contag. Estraendo l'immagine Docker viene scaricata la versione più recente sul computer.

$ docker pull amazon/aws-cli:latest

Condivisione di file host, credenziali, variabili di ambiente econfigurazionePoiché AWS CLI versione 2 viene eseguita in un container, per impostazione predefinita l'interfaccia ariga di comando non può accedere al file system host, che include la configurazione e le credenziali. Percondividere il file system host, le credenziali e la configurazione nel container, montare la directory ~/.awsdel sistema host sul container /root/.aws con il flag -v per il comando docker run. Ciò consenteall'AWS CLI versione 2 in esecuzione nel container di individuare le informazioni sul file host.

Linux and macOS

$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli command

Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli command

Per ulteriori informazioni sul flag -v e sul montaggio, consulta la Guida di riferimento Docker.

Esempio 1: Fornire credenziali e configurazioneIn questo esempio, vengono fornite le credenziali host e la configurazione durante l'esecuzione delcomando s3 ls per elencare i bucket in Amazon Simple Storage Service (Amazon S3).

Linux and macOS

$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli s3 ls2020-03-25 00:30:48 aws-cli-docker-demo

Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli s3 ls2020-03-25 00:30:48 aws-cli-docker-demo

7

Page 13: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDocker

Puoi chiamare variabili di ambiente specifiche del sistema utilizzando il flag -e. Per usare una variabiledi ambiente, chiamala per nome.

Linux and macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls2020-03-25 00:30:48 aws-cli-docker-demo

Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls2020-03-25 00:30:48 aws-cli-docker-demo

Esempio 2: Download di un file Amazon S3 nel sistema hostPer alcuni comandi AWS CLI versione 2, è possibile leggere i file dal sistema host nel container o scriverefile dal container al sistema host.

Questo esempio illustra come scaricare l'oggetto S3 s3://aws-cli-docker-demo/hello nel filesystem locale montando la directory di lavoro corrente nella directory /aws del container. Scaricandol'oggetto hello nella directory /aws del container, il file viene salvato anche nella directory di lavorocorrente del sistema host.

Linux and macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .download: s3://aws-cli-docker-demo/hello to ./hello

Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .download: s3://aws-cli-docker-demo/hello to ./hello

Per verificare che il file scaricato esista nel file system locale, eseguire quanto segue.

Linux and macOS

$ cat helloHello from Docker!

Windows

$ type helloHello from Docker!

Esempio 3: Utilizzo della variabile di ambiente AWS_PROFILEPuoi chiamare variabili di ambiente specifiche del sistema utilizzando il flag -e. Chiama ogni variabile diambiente che desideri utilizzare. In questo esempio, vengono fornite le credenziali host, la configurazione eAWS_PROFILE Variabile di ambiente s3 ls quando si esegue il comando Amazon Simple Storage Serviceper elencare i bucket in Amazon S3 ().

8

Page 14: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDocker

Linux and macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls2020-03-25 00:30:48 aws-cli-docker-demo

Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls2020-03-25 00:30:48 aws-cli-docker-demo

Abbreviazione del comando DockerPer abbreviare il comando Docker aws, ti consigliamo di utilizzare la capacità del sistema operativo percreare un symbolic link (symlink) o alias in Linux e macOS o doskey in Windows. Per impostarel'alias aws, è possibile eseguire uno dei seguenti comandi.

• Per l'accesso di base ai comandi aws, eseguire le seguenti operazioni.Linux and macOS

$ alias aws='docker run --rm -it amazon/aws-cli'

Windows

C:\> doskey aws=docker run --rm -it amazon/aws-cli $*

• Per accedere al file system host e alle impostazioni di configurazione quando si utilizzano i comandi awseseguire le seguenti operazioni.Linux and macOS

$ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'

Windows

C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli $*

• Per assegnare una versione specifica da utilizzare nell'alias aws, aggiungere il tag di versione.Linux and macOS

$ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli:2.0.6'

Windows

C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli:2.0.6 $*

Dopo aver impostato l'alias, è possibile eseguire AWS CLI versione 2 dall'interno di un container Dockercome se fosse installata sul sistema host.

$ aws --version

9

Page 15: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

aws-cli/2.0.47 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.0.0dev10

Installazione, aggiornamento e disinstallazione di AWSCLI versione 2 su LinuxQuesta sezione descrive come installare, aggiornare e rimuovere AWS CLI versione 2 su Linux. AWS CLIversione 2 non ha dipendenze su altri pacchetti Python. Ha una copia autonoma e incorporata di Pythoninclusa nel programma di installazione.

Important

L'AWS CLI versioni 1 e 2 usa lo stesso nome del comando aws. Se sono state installate entrambele versioni, il computer utilizza la prima trovata nel percorso di ricerca. Se in precedenza erainstallata AWS CLI versione 1, si consiglia di eseguire una delle seguenti operazioni per utilizzareAWS CLI versione 2:

• Scelta consigliata – Disinstalla AWS CLI versione 1 e usa solo AWS CLI versione 2. Peristruzioni sulla disinstallazione, determinare il metodo utilizzato per l'installazione di AWS CLIversione 1 e seguire le istruzioni di disinstallazione appropriate in Installazione, aggiornamento edisinstallazione diAWS CLI versione 1 (p. 24)

• Utilizzare la capacità del sistema operativo di creare un collegamento simbolico (symlink) o aliascon un nome diverso per uno dei due comandi aws. Ad esempio, puoi usare un link simbolico oun alias su Linux e macOS o DOSKEY su Windows.

Per informazioni sull'interruzione delle modifiche tra la versione 1 e la versione 2, vedere Modificheimportanti: migrazione da AWS CLI versione 1 alla versione 2 (p. 212).

Argomenti• Prerequisiti per Linux (p. 10)• Installazione di AWS CLI versione 2 su Linux (p. 10)• Aggiornare AWS CLI versione 2 su Linux (p. 13)• Disinstallazione di AWS CLI versione 2 su Linux (p. 15)• Verificare l'integrità e l'autenticità dei file di installazione scaricati (p. 16)

Prerequisiti per Linux• È necessario estrarre o "decomprimere" il pacchetto scaricato. Se il sistema operativo non dispone del

comando unzip integrato, utilizzare un comando equivalente.• Il AWS CLI versione 2 utilizzi glibc, groff, e less. Questi sono inclusi per impostazione predefinita

nella maggior parte delle distribuzioni principali di Linux.• Supportiamo il AWS CLI versione 2 sulle versioni a 64 bit delle distribuzioni recenti di CentOS, Fedora,

Ubuntu, Amazon Linux 1, e Amazon Linux 2.• AWS CLI versione 2 è supportata su Linux ARM.• Poiché AWS non gestisce repository di terza parte, non possiamo garantire che contenga l'ultima

versione dell'AWS CLI.

Installazione di AWS CLI versione 2 su LinuxSegui queste fasi dalla riga di comando per installare AWS CLI su Linux.

10

Page 16: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

Le fasi vengono fornite in un unico gruppo facile da copiare e incollare a seconda se si utilizza Linux a 64bit o Linux ARM. Consulta le descrizioni di ogni riga nelle fasi seguenti.

Linux x86 (64-bit)

Per la versione più recente di AWS CLI, utilizzare il seguente blocco di comandi:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-x86_64-2.0.30.zip con il seguente comando:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.Linux ARM

Per la versione più recente di AWS CLI, utilizzare il seguente blocco di comandi:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-aarch64-2.0.30.zip con il seguente comando:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.

1. Scaricare il file di installazione in uno dei seguenti modi:

• Utilizzare il comando curl: l'opzione -o specifica il nome del file su cui viene scritto il pacchettoscaricato. Le opzioni sul seguente comando di esempio determinano la scrittura del file scaricatonella directory corrente con il nome locale awscliv2.zip.Linux x86 (64-bit)

Per la versione corrente del AWS CLI, utilizzare il comando seguente:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-x86_64-2.0.30.zip con il seguente comando:

11

Page 17: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.Linux ARM

Per la versione corrente del AWS CLI, utilizzare il comando seguente:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-aarch64-2.0.30.zip con il seguente comando:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o "awscliv2.zip"curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.• Download dall'URL – Per scaricare il programma di installazione con il browser, utilizzare una delle

seguenti opzioni URLs. Puoi verificare l'integrità e l'autenticità del file di installazione scaricato primadi estrarre (decomprimere) il pacchetto. Per ulteriori informazioni, consulta Verificare l'integrità el'autenticità dei file di installazione scaricati (p. 16).Linux x86 (64-bit)

Per la versione più recente di AWS CLI: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-x86_64-2.0.30.zip con il seguente url: https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.Linux ARM

Per la versione più recente di AWS CLI: https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-aarch64-2.0.30.zip con il seguente url https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.2. Decomprimi il programma di installazione. Se la distribuzione Linux non dispone di un comando unzip

integrato, utilizzare un comando equivalente per la decompressione. Il comando di esempio seguentedecomprime il pacchetto e crea una directory denominata aws sotto la directory corrente.

$ unzip awscliv2.zip

3. Esegui il programma di installazione. Il comando di installazione utilizza un file denominato installnella aws directory appena decompressa. Per impostazione predefinita, i file sono tutti installati in /

12

Page 18: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

usr/local/aws-clie viene creato un collegamento simbolico in /usr/local/bin. Il comandoinclude sudo per concedere autorizzazioni di scrittura a tali directory.

$ sudo ./aws/install

Puoi eseguire l’installazione senza sudo se specifichi le directory per le quali disponi già diautorizzazioni in scrittura. Utilizzare le seguenti istruzioni per il comando install per specificare ilpercorso di installazione:

• Assicurarsi che i percorsi forniti ai parametri -i e -b non contengano nomi di volume o directorycontenenti caratteri di spazio o altri caratteri di spazio vuoto. Se c'è uno spazio, l'installazione nonriesce.

• --install-dir o -i: questa opzione specifica la directory in cui copiare tutti i file.

Il valore predefinito è /usr/local/aws-cli.• --bin-dir o -b: questa opzione specifica che il programma principale aws nella directory

di installazione è simbolicamente collegato al file aws nel percorso specificato. È necessariodisporre delle autorizzazioni di scrittura nella directory specificata. La creazione di un collegamentosimbolico a una directory già presente nel percorso elimina la necessità di aggiungere la directory diinstallazione alla variabile $PATH dell'utente.

Il valore predefinito è /usr/local/bin.

$ sudo ./aws/install -i /usr/local/aws-cli -b /usr/local/bin

4. Conferma l'installazione.

$ aws --versionaws-cli/2.0.47 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.0.0

Aggiornare AWS CLI versione 2 su LinuxPer aggiornare la copia di AWS CLI versione 2, dalla riga di comando di Linux, attenersi alla seguenteprocedura.

1. Scaricare il file di installazione in uno dei seguenti modi:

Utilizzando il comando curl: le opzioni sul seguente comando di esempio determinano la scrittura delfile scaricato nella directory corrente con il nome locale awscliv2.zip.

L'opzione -o specifica il nome del file su cui viene scritto il pacchetto scaricato. In questo esempio, ilfile viene scritto su awscliv2.zip nella directory corrente.

Linux x86 (64-bit)

Per la versione più recente di AWS CLI, utilizzare il seguente blocco di comandi:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-x86_64-2.0.30.zip con il seguente comando:

13

Page 19: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.Linux ARM

Per la versione più recente di AWS CLI, utilizzare il seguente blocco di comandi:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-aarch64-2.0.30.zip con il seguente comando:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o "awscliv2.zip"

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.

Download dall'URL – Per scaricare il programma di installazione utilizzando il browser, utilizzare unadelle seguenti opzioni URLs. È possibile verificare l'integrità e l'autenticità del file di installazionedopo averlo scaricato. Per ulteriori informazioni, consulta Verificare l'integrità e l'autenticità dei file diinstallazione scaricati (p. 16) prima di decomprimere il pacchetto.

Linux x86 (64-bit)

Per la versione più recente di AWS CLI: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip

Per una versione specifica del AWS CLI: Aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-x86_64-2.0.30.zip con il seguente collegamento https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip. Per un elenco delle versioni, consulta la AWS CLI versione 2 registrodelle modifiche il GitHub.

Linux ARM

Per la versione più recente di AWS CLI: https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip

Per una versione specifica del AWS CLI: Aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-aarch64-2.0.30.zip con il seguente collegamento: https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip. Per un elenco delle versioni, consulta la AWS CLI versione 2 registrodelle modifiche il GitHub.

2. Decomprimi il programma di installazione. Se la distribuzione Linux non dispone di un comando unzipintegrato, utilizzare un comando equivalente per l'installazione. Il comando di esempio seguentedecomprime il pacchetto e crea una directory denominata aws sotto la directory corrente.

$ unzip awscliv2.zip

3. Per assicurarsi che l'aggiornamento venga installato nella stessa posizione di AWS CLI versione 2corrente, individuare il collegamento simbolico e la directory di installazione esistenti.

14

Page 20: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

• Usare il comando which per individuare il collegamento simbolico. Questo ti fornisce il percorso dautilizzare con il parametro --bin-dir.

$ which aws/usr/local/bin/aws

• Utilizzare il comando ls per individuare la directory a cui punta il collegamento simbolico. Questo tifornisce il percorso da utilizzare con il parametro --install-dir.

$ ls -l /usr/local/bin/awslrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws

4. Utilizzare il collegamento simbolico e le informazioni del programma di installazione per creare ilcomando install con il parametro --update.

$ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update

5. Conferma l'installazione.

$ aws --versionaws-cli/2.0.47 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.0.0

Disinstallazione di AWS CLI versione 2 su LinuxPer disinstallare AWS CLI versione 2, eseguire i seguenti comandi.

1. Individuare il collegamento simbolico e i percorsi di installazione.

• Usare il comando which per individuare il collegamento simbolico. Questo mostra il percorsoutilizzato con il parametro --bin-dir.

$ which aws/usr/local/bin/aws

• Utilizzare il comando ls per individuare la directory a cui punta il collegamento simbolico. Questofornisce il percorso utilizzato con il parametro --install-dir.

$ ls -l /usr/local/bin/awslrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws

2. Eliminare i due collegamenti simbolici nella directory --bin-dir. Se l'account utente disponedell'autorizzazione di scrittura in queste directory, non è necessario utilizzare sudo.

$ sudo rm /usr/local/bin/aws$ sudo rm /usr/local/bin/aws_completer

3. Eliminare la directory --install-dir. Se l'account utente dispone dell'autorizzazione di scrittura inquesta directory, non è necessario utilizzare sudo.

$ sudo rm -rf /usr/local/aws-cli

15

Page 21: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

Verificare l'integrità e l'autenticità dei file di installazione scaricatiI file .zip del pacchetto di installazione di AWS CLI versione 2 sono firmati crittograficamente mediantele firme PGP. Puoi utilizzare le fasi seguenti per verificare le firme tramite lo strumento GnuPG. Se i filesono in qualche modo danneggiati o alterati, questa verifica non va a buon fine e l'installazione deve esserearrestata.

L'esempio seguente presuppone che il pacchetto di installazione sia stato scaricato e salvato localmentecome awscliv2.zip. Se l'hai denominato, sostituiscilo nelle fasi seguenti.

Per convalidare i file utilizzando la firma PGP

1. Scaricare e installare il comando gpg utilizzando il programma di gestione dei pacchetti. Per ulterioriinformazioni su GnuPG, consulta il sito Web GnuPG.

2. Per creare il file della chiave pubblica, creare un file di testo e incollare il testo seguente.

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUGZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzxPqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5GTfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYzgbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grkC6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWOlrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPGfYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywGEEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkXXDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQABtCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4WIQT7Xbd/1cEYuAURraimMQrMRnJHXAUCXYKvtQIbAwUJB4TOAAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCmMQrMRnJHXJIXEAChLUIkg80uPUkGjE3jejvQSA1aWuAMyzy6fdpdlRUz6M6nmsUhOExjVIvibEJpzK5mhuSZ4lb0vJ2ZUPgCv4zs2nBd7BGJMxKiWgBReGvTdqZ0SzyYH4PYCJSE732x/Fw9hfnh1dMTXNcrQXzwOmmFNNegG0Oxau+VnpcR5Kz3smiTrIwZbRudo1ijhCYPQ7t5CMp9kjC6bObvy1hSIg2xNbMAN/DoikebAl36uA6Y/Uczjj3GxZW4ZWeFirMidKbtqvUz2y0UFszobjiBSqZZHCreC34Bhw9bFNpuWC/0SrXgohdsc6vK50pDGdV5kM2qo9tMQ/izsAwTh/d/GzZv8H4lV9eOtEis+EpR497PaxKKh9tJf0N6Q1YLRHof5xePZtOIlS3gfvsH5hXA3HJ9yIxb8T0HQYmVr3aIUes20i6meI3fuV36VFupwfrTKaL7VXnsrK2fq5cRvyJLNzXucg0WAjPFRrAGLzY7nP1xeg1a0aeP+pdsqjqlPJom8OCWc1+6DWbg0jsC74WoesAqgBItODMBrsal1y/q+bPzpsnWjzHV8+1/EtZmSc8ZUGSJOPkfC7hObnfkl18h+1QtKTjZme4dH17gsBJr+opwJw/Zio2LMjQBOqlm3K1A4zFTh7wBC7He6KPQea1p2XAMgtvATtNeYLZATHZKTJyiqA===vYOk-----END PGP PUBLIC KEY BLOCK-----

Per riferimento, di seguito sono riportati i dettagli della chiave pubblica.

Key ID: A6310ACC4672Type: RSASize: 4096/4096Created: 2019-09-18Expires: 2023-09-17User ID: AWS CLI Team <[email protected]>Key fingerprint: FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C

3. Importare AWS CLI chiave pubblica con il comando seguente, sostituzione public-key-file-namecon il nome del file della chiave pubblica creata.

$ gpg --import public-key-file-name

16

Page 22: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

gpg: /home/username/.gnupg/trustdb.gpg: trustdb createdgpg: key A6310ACC4672475C: public key "AWS CLI Team <[email protected]>" importedgpg: Total number processed: 1gpg: imported: 1

4. Scarica il file della firma AWS CLI per il pacchetto scaricato. Ha lo stesso percorso e nome del .zipfile a cui corrisponde, ma ha l'estensione .sig. Negli esempi seguenti, lo salviamo nella directorycorrente come file denominato awscliv2.sig.

Linux x86 (64-bit)

Per la versione più recente di AWS CLI, utilizzare il seguente blocco di comandi:

$ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip.sig

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-x86_64-2.0.30.zip.sig con il seguente comando:

$ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip.sig

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.Linux ARM

Per la versione più recente di AWS CLI, utilizzare il seguente blocco di comandi:

$ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip.sig

Per una versione specifica del AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il nome file per la versione 2.0.30 sarebbe awscli-exe-linux-aarch64-2.0.30.zip.sig con il seguente comando:

$ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip.sig

Per un elenco delle versioni, consulta la AWS CLI versione 2 registro delle modifiche il GitHub.5. Verifica la firma, passando entrambi i nomi file .sig e .zip scaricati come parametri del comando

gpg.

$ gpg --verify awscliv2.sig awscliv2.zip

L'output visualizzato dovrebbe essere simile al seguente:

gpg: Signature made Mon Nov 4 19:00:01 2019 PSTgpg: using RSA key FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475Cgpg: Good signature from "AWS CLI Team <[email protected]>" [unknown]gpg: WARNING: This key is not certified with a trusted signature!gpg: There is no indication that the signature belongs to the owner.Primary key fingerprint: FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C

17

Page 23: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

Important

L'avviso nell'output è previsto e non indica un problema. Si verifica perché non esiste unacatena di trust tra la chiave PGP personale (se una è disponibile) e la chiave PGP AWS CLI.Per ulteriori informazioni, consulta Web of trust.

Installazione, aggiornamento e disinstallazione di AWSCLI versione 2 sumacOSIn questo argomento viene descritto come installare, aggiornare e rimuovere AWS CLI versione 2 sumacOS.

Important

L'AWS CLI versioni 1 e 2 usa lo stesso nome del comando aws. Se sono state installate entrambele versioni, il computer utilizza la prima trovata nel percorso di ricerca. Se in precedenza erainstallata AWS CLI versione 1, si consiglia di eseguire una delle seguenti operazioni per utilizzareAWS CLI versione 2:

• Scelta consigliata – Disinstalla AWS CLI versione 1 e usa solo AWS CLI versione 2. Peristruzioni sulla disinstallazione, determinare il metodo utilizzato per l'installazione di AWS CLIversione 1 e seguire le istruzioni di disinstallazione appropriate in Installazione, aggiornamento edisinstallazione diAWS CLI versione 1 (p. 24)

• Utilizzare la capacità del sistema operativo di creare un collegamento simbolico (symlink) o aliascon un nome diverso per uno dei due comandi aws. Ad esempio, puoi usare un link simbolico oun alias su Linux e macOS o DOSKEY su Windows.

Per informazioni sull'interruzione delle modifiche tra la versione 1 e la versione 2, vedere Modificheimportanti: migrazione da AWS CLI versione 1 alla versione 2 (p. 212).

Argomenti• Prerequisites (p. 18)• Installazione e aggiornamento di AWS CLI versione 2 utilizzando l'interfaccia utente

dimacOS (p. 18)• Installazione e aggiornamento di AWS CLI versione 2 tramite la riga di comandomacOS (p. 19)• Verifica dell'installazione (p. 22)• Disinstallazione di AWS CLI versione 2 (p. 22)

Prerequisites• Supportiamo AWS CLI versione 2 sulle versioni supportate da Apple di macOS a 64 bit.• Poiché AWS non gestisce repository di terza parte, non possiamo garantire che contenga l'ultima

versione dell'AWS CLI.

Installazione e aggiornamento di AWS CLI versione 2 utilizzandol'interfaccia utente dimacOSLa procedura seguente mostra come installare o aggiornare la versione più recente dell'AWS CLI versione2 utilizzando l'interfaccia utente macOS standard e il browser. Se si esegue l'aggiornamento alla versionepiù recente, utilizzare lo stesso metodo di installazione utilizzato per la versione corrente.

18

Page 24: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

1. Nel browser, scaricare il file macOS pkg:

• Per la versione più recente di AWS CLI:https://awscli.amazonaws.com/AWSCLIV2.pkg• Per una versione specifica di AWS CLI: Aggiungi un trattino e il numero di versione al nome file.

Per questo esempio il filename per la versione 2.0.30 sarebbe AWSCLIV2-2.0.30.pkg con ilseguente collegamento https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg. Per un elenco diversioni, consulta il changelogAWS CLI versione 2 su .GitHub

2. Fare doppio clic sul file scaricato per avviare il programma di installazione.3. Seguire le istruzioni a video. È possibile scegliere di installare AWS CLI versione 2 nei seguenti modi:

• Per tutti gli utenti sul computer (richiede sudo)• È possibile installare in qualsiasi cartella o scegliere la cartella predefinita consigliata /usr/local/aws-cli.

• Il programma di installazione crea automaticamente un collegamento simbolico /usr/local/bin/aws che collega il programma principale nella cartella di installazione scelta.

• Solo per l'utente corrente (non richiede sudo)• È possibile installare in qualsiasi cartella per cui si dispone dell'autorizzazione in scrittura.• A causa delle autorizzazioni utente standard, al termine del programma di installazione, è

necessario creare manualmente un file di collegamento simbolico nel proprio $PATH che puntaai programma aws e aws_completer utilizzando i seguenti comandi al prompt dei comandi.Se $PATH include una cartella in cui è possibile scrivere, eseguire il comando seguente senzasudo se si specifica tale cartella come percorso di destinazione. Se non si dispone di una cartellascrivibile nel $PATH, è necessario utilizzare sudo nei comandi per ottenere le autorizzazioni perscrivere nella cartella di destinazione specificata. La posizione predefinita di un collegamentosimbolico è /usr/local/bin/.

$ sudo ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws$ sudo ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer

Note

È possibile visualizzare i log di debug dell'installazione premendo CMD+L in qualsiasimomento nel programma di installazione. Verrà aperto un riquadro di log che consentedi filtrare e salvare il log. Il file di log viene salvato automaticamente in /var/log/install.log.

4. Per verificare che AWS CLI versione 2 sia installata, attenersi alla procedura descritta in Verificadell'installazione (p. 22).

Installazione e aggiornamento di AWS CLI versione 2 tramite lariga di comandomacOSÈ possibile scaricare, installare e aggiornare dalla riga di comando. Se si esegue l'aggiornamento allaversione più recente, utilizzare lo stesso metodo di installazione utilizzato nella versione corrente. Èpossibile installare AWS CLI versione 2 in uno dei seguenti modi:

• Per tutti gli utenti (p. 20): richiede sudo• Solo per l'utente corrente (p. 20): potrebbe richiedere che sudo debba creare un collegamento

simbolico in una cartella nella variabile $PATH.

19

Page 25: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

Per installare e aggiornare per tutti gli utenti utilizzando la riga di comandomacOS

Se disponi delle autorizzazioni sudo, è possibile effettuare l'installazione di AWS CLI versione 2 per tutti gliutenti sul computer.

Forniamo le fasi in un gruppo facile da copiare e incollare. Consulta le descrizioni di ogni riga nelle fasiseguenti.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"$ sudo installer -pkg AWSCLIV2.pkg -target /

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nome file. Perquesto esempio il filename per la versione 2.0.30 sarebbe AWSCLIV2-2.0.30.pkg con il seguentecomando:

$ curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o "AWSCLIV2.pkg"$ sudo installer -pkg AWSCLIV2.pkg -target /

Per un elenco di versioni, consulta il changelogAWS CLI versione 2 su .GitHub

1. Scaricare il file utilizzando il comando curl. L'opzione -o specifica il nome del file su cui viene scritto ilpacchetto scaricato. In questo esempio, il file viene scritto in AWSCLIV2.pkg nella cartella corrente.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nome file. Perquesto esempio il filename per la versione 2.0.30 sarebbe AWSCLIV2-2.0.30.pkg con il seguentecomando:

$ curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o "AWSCLIV2.pkg"

Per un elenco delle versioni, consulta il changelog AWS CLI versione 2 su GitHub.2. Eseguire il programma macOS installer standard, specificando come origine il file .pkg scaricato.

Utilizzare il parametro -pkg per specificare il nome del pacchetto da installare e il parametro -target / per indicare l'unità in cui installare il pacchetto. I file vengono installati in /usr/local/aws-cli e viene creato automaticamente un collegamento simbolico in /usr/local/bin. Ènecessario includere sudo nel comando per concedere autorizzazioni di scrittura a tali cartelle.

$ sudo installer -pkg ./AWSCLIV2.pkg -target /

Al termine dell'installazione, i log di debug vengono scritti in /var/log/install.log.3. Per verificare l'installazione di AWS CLI versione 2, attenersi alla procedura descritta in Verifica

dell'installazione (p. 22).

Per installare e aggiornare solo per l'utente corrente utilizzando la riga di comandomacOS

1. Per specificare la cartella in cui è installato AWS CLI, è necessario creare un file XML. Questo fileè in formato XML, simile al seguente esempio. Lasciare tutti i valori come mostrato, sostituendo ilpercorso /Users/myusername nella riga 9 con il percorso della cartella nella quale si desiderainstallare AWS CLI versione 2. La cartella deve già esistere o il comando non riesce. Questo esempio

20

Page 26: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

di XML specifica che il programma di installazione sta installando l'AWS CLI nella cartella /Users/myusername, dove crea una cartella denominata aws-cli.

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <array> <dict> <key>choiceAttribute</key> <string>customLocation</string> <key>attributeSetting</key> <string>/Users/myusername</string> <key>choiceIdentifier</key> <string>default</string> </dict> </array></plist>

2. Scaricare il programma di installazione pkg utilizzando il comando curl. L'opzione -o specificail nome del file su cui viene scritto il pacchetto scaricato. In questo esempio, il file viene scritto inAWSCLIV2.pkg nella cartella corrente.

3. Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nome file. Perquesto esempio il filename per la versione 2.0.30 sarebbe AWSCLIV2-2.0.30.pkg con il seguentecomando:

$ curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o "AWSCLIV2.pkg"

Per un elenco di versioni, consulta il changelogAWS CLI versione 2 su .GitHub4. Eseguire il programma macOS installer standard con le seguenti opzioni:

• Specificare il nome del pacchetto da installare utilizzando il parametro -pkg.• Specificare un'installazione solo per l'utente corrente impostando il parametro --targetCurrentUserHomeDirectory.

• Specificare il percorso (relativo della cartella corrente) e il nome del file XML creato nel parametro--applyChoiceChangesXML.

Nell'esempio seguente l'AWS CLI viene installata nella cartella /Users/myusername/aws-cli.

$ installer -pkg AWSCLIV2.pkg \ -target CurrentUserHomeDirectory \ -applyChoiceChangesXML choices.xml

5. Poiché le autorizzazioni utente standard in genere non consentono la scrittura nelle cartelle in $PATH,il programma di installazione in questa modalità non tenta di aggiungere i collegamenti simbolici aiprogrammi aws e aws_completer. Affinché l'AWS CLI funzioni correttamente, è necessario crearemanualmente i collegamenti simbolici al termine del programma di installazione. Se $PATH include unacartella in cui è possibile scrivere e si specifica la cartella come percorso di destinazione, è possibileeseguire il comando seguente senza sudo. Se non si dispone di una cartella scrivibile nel $PATH, ènecessario utilizzare sudo per le autorizzazioni di scrittura nella cartella di destinazione specificata.

$ sudo ln -s /folder/installed/aws-cli/aws /folder/in/your/PATH/aws

21

Page 27: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteWindows

$ sudo ln -s /folder/installed/aws-cli/aws_completer /folder/in/your/PATH/aws_completer

Al termine dell'installazione, i log di debug vengono scritti in /var/log/install.log.6. Per verificare l'installazione di AWS CLI versione 2, attenersi alla procedura descritta in Verifica

dell'installazione (p. 22).

Verifica dell'installazionePer verificare che la shell possa trovare ed eseguire il comando aws in $PATH, utilizzare i seguenticomandi.

$ which aws/usr/local/bin/aws $ aws --versionaws-cli/2.0.47 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0

Disinstallazione di AWS CLI versione 2Per disinstallare la AWS CLI versione 2, esegui i seguenti comandi, sostituendo i percorsi utilizzati perl'installazione.

1. Trova la cartella contenente i collegamenti simbolici del programma principale e al programma dicompletamento.

$ which aws/usr/local/bin/aws

2. Utilizzando queste informazioni, eseguire il comando seguente per trovare la cartella di installazione acui puntano i collegamenti simbolici.

$ ls -l /usr/local/bin/awslrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-cli/aws

3. Eliminazione dei due collegamenti simbolici nella prima cartella. Se l'account utente disponedell'autorizzazione di scrittura in queste cartelle, non è necessario utilizzare sudo.

$ sudo rm /usr/local/bin/aws$ sudo rm /usr/local/bin/aws_completer

4. Eliminazione della cartella di installazione principale. Utilizza sudo per ottenere l'accesso in scritturaalla cartella /usr/local.

$ sudo rm -rf /usr/local/aws-cli

Installazione, aggiornamento e disinstallazione di AWSCLI versione 2 su WindowsIn questa sezione viene descritto come installare, aggiornare e rimuovere l'AWS CLI versione 2 suWindows.

22

Page 28: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteWindows

Important

L'AWS CLI versioni 1 e 2 usa lo stesso nome del comando aws. Se sono state installate entrambele versioni, il computer utilizza la prima trovata nel percorso di ricerca. Se in precedenza erainstallata AWS CLI versione 1, si consiglia di eseguire una delle seguenti operazioni per utilizzareAWS CLI versione 2:

• Scelta consigliata – Disinstalla AWS CLI versione 1 e usa solo AWS CLI versione 2. Peristruzioni sulla disinstallazione, determinare il metodo utilizzato per l'installazione di AWS CLIversione 1 e seguire le istruzioni di disinstallazione appropriate in Installazione, aggiornamento edisinstallazione diAWS CLI versione 1 (p. 24)

• Utilizzare la capacità del sistema operativo di creare un collegamento simbolico (symlink) o aliascon un nome diverso per uno dei due comandi aws. Ad esempio, puoi usare un link simbolico oun alias su Linux e macOS o DOSKEY su Windows.

Per informazioni sull'interruzione delle modifiche tra la versione 1 e la versione 2, vedere Modificheimportanti: migrazione da AWS CLI versione 1 alla versione 2 (p. 212).

Argomenti• Prerequisites (p. 23)• Installare o aggiornare AWS CLI versione 2 su Windows utilizzando il programma di installazione

MSI (p. 23)• Disinstallazione di AWS CLI versione 2 da Windows (p. 24)

PrerequisitesPrima di installare o aggiornare AWS CLI versione 2 su Windows, assicurarsi di disporre di quanto segue:

• Una versione a 64 bit di Windows XP o versioni successive.• Diritti di amministratore per installare il software

Installare o aggiornare AWS CLI versione 2 su Windowsutilizzando il programma di installazione MSI1. Scarica il programma di installazione MSI di AWS CLI per Windows (a 64 bit):

• Per la versione più recente di AWS CLI:https://awscli.amazonaws.com/AWSCLIV2.msi• Per una versione specifica di AWS CLI: Aggiungere un trattino e il numero di versione al nome file.

Per questo esempio il filename per la versione 2.0.30 sarebbe AWSCLIV2-2.0.30.msi conil seguente link https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi. Per un elenco di versioni,consulta il changelogAWS CLI versione 2 su .GitHub

Per aggiornare l'installazione corrente di AWS CLI versione 2 su Windows, scarica un nuovoprogramma di installazione ogni volta che esegui l'aggiornamento per sovrascrivere le versioniprecedenti. AWS CLI viene aggiornato regolarmente. Per vedere quando è stata rilasciata la versionepiù recente, consulta AWS CLI versione 2 changelog su GitHub.

2. Esegui il programma di installazione MSI scaricato e segui le istruzioni sullo schermo. Perimpostazione predefinita, la AWS CLI viene installata su C:\Program Files\Amazon\AWSCLIV2.

3. Per confermare l'installazione, aprire il menu Start, ricercare cmd per aprire una finestra dei prompt deicomandi e al prompt dei comandi utilizzare il comando aws --version.

23

Page 29: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteAWS CLI versione 1

Quando digiti un comando, non includere il simbolo del prompt (C:\>). Il simbolo è incluso neglielenchi di programma per differenziare i comandi digitati dall'utente dall'output restituito dall'AWS CLI.Nella parte rimanente di questa guida viene utilizzato il simbolo del prompt generico, $, salvo nei casiin cui il comando sia specifico di Windows. Per ulteriori informazioni su come formattare gli esempi dicodice, consulta Utilizzo degli esempiAWS CLI (p. 2).

C:\> aws --versionaws-cli/2.0.47 Python/3.7.4 Windows/10 botocore/2.0.0

Se Windows non è in grado di trovare il programma, potrebbe essere necessario chiudere e riaprire lafinestra del prompt dei comandi per aggiornare il percorso o aggiungere manualmente la directory diinstallazione alla variabile di ambiente PATH (p. 41).

Disinstallazione di AWS CLI versione 2 da Windows1. Aprire Programmi e caratteristiche eseguendo una delle seguenti operazioni:

• Aprire il Pannello di controllo e scegliere Programmi e caratteristiche.• Aprire un prompt dei comandi e digitare quindi il comando seguente.

C:\> appwiz.cpl

2. Seleziona la voce denominata AWS Command Line Interface e quindi scegli Uninstall (Disinstalla) peravviare il programma di disinstallazione.

3. Confermare che si desidera disinstallare l'AWS CLI.

Installazione, aggiornamento e disinstallazionediAWS CLI versione 1

In questo argomento vengono forniti collegamenti a informazioni su come installare la versione 1 di AWSCommand Line Interface (AWS CLI). Per informazioni sulle ultime versioni di AWS CLI versione 1, consultale AWS CLI versione 1note sulle modifiche di su GitHub.

Consigliamo di utilizzare invece AWS CLI versione 2. Per informazioni su come installare la versione 2,consulta Installazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Istruzioni di installazione di AWS CLI versione 1:• Installare, aggiornare e disinstallare il AWS CLI versione 1 su Amazon Linux (p. 24)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 1 su Linux (p. 26)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 1 sumacOS (p. 33)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 1 su Windows (p. 39)• Installare e aggiornare il AWS CLI versione 1 in un ambiente virtuale (p. 42)

Installare, aggiornare e disinstallare il AWS CLIversione 1 su Amazon LinuxIl AWS CLI versione 1 è preinstallato su Amazon Linux e Amazon Linux 2. Controlla la versioneattualmente installata utilizzando il comando seguente.

24

Page 30: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteAmazon Linux

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

Sezioni• Prerequisites (p. 25)• Installare o aggiornare il AWS CLI versione 1 su Amazon Linux usando pip (p. 25)• Disinstallazione dell'AWS CLI versione 1 utilizzando pip (p. 26)

PrerequisitesDevi avere Python 2 versione 2.7 o successiva o Python 3 versione 3.4 o successiva installato. Peristruzioni sull'installazione, vedere la Scaricare Python a Python Guida principiante.

Note

Per poter utilizzare AWS CLI versione 1 con Python versioni 2.6 e 3.3, è necessario installare unaversione precedente alla 1.17 di AWS CLI versione 1. Per ulteriori informazioni su questa modifica,consultare l’annuncio della definizione di obsoleto in questo post di blog.

Installare o aggiornare il AWS CLI versione 1 su Amazon Linuxusando pipPer installare la versione più recente di AWS CLI versione 1 per l'utente corrente, attenersi alle istruzioniriportate di seguito.

1. Si consiglia di utilizzare Python versione 3 o successiva che si utilizza pip3. Uso pip3 installper installare o aggiornare l'ultima versione del AWS CLI versione 1. Se si esegue il comando da aAmbiente virtuale Python (venv), non è necessario utilizzare il --user.

$ pip3 install --upgrade --user awscli

2. Assicurarsi che la cartella contenga aws fa parte del tuo PATH variabile.

a. Individua lo script del profilo della shell nella cartella utente. Se non hai la certezza di quale sia latua shell, esegui echo $SHELL.

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – .bash_profile, .profile, o .bash_login• Zsh – .zshrc• Tcsh – .tcshrc, .cshrc o .login

b. Aggiungi un comando di esportazione al termine dello script del profilo simile a quello dell'esempioseguente.

export PATH=$HOME/.local/bin:$PATH

Questo comando inserisce il percorso, $HOME/.local/bin in questo esempio, nella parteanteriore del $PATHvariabile.

c. Ricarica il profilo nella sessione corrente per rendere effettive tali modifiche.

$ source ~/.bash_profile

25

Page 31: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

3. Per verificare di aver eseguito la nuova versione, utilizzare il aws --version comando.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

Disinstallazione dell'AWS CLI versione 1 utilizzando pipSe devi disinstallare l'AWS CLI, usa pip uninstall.

$ pip3 uninstall awscli

Installazione, aggiornamento e disinstallazione di AWSCLI versione 1 su LinuxÈ possibile installare AWS Command Line Interface (AWS CLI) versione 1 e le relative dipendenze sullamaggior parte delle distribuzioni Linux utilizzando il gestore di pacchetti pip o il programma di installazionein bundle.

Sebbene il pacchetto awscli sia disponibile nei repository per altri gestori di pacchetti come apt e yum,questi non sono prodotti, gestiti o supportati da AWS. Si consiglia di installare l'AWS CLI solo da punti didistribuzione AWS ufficiali come documentato in questa guida.

Sezioni• Prerequisites (p. 26)• Installazione e disinstallazione di AWS CLI versione 1 su Linux utilizzando il programma di installazione

in bundle (p. 26)• Installazione e disinstallazione di AWS CLI versione 1 utilizzando pip (p. 30)

PrerequisitesÈ necessaria l'installazione di Python 2 versione 2.7 o successiva o Python 3 versione 3.4 o successiva.Per istruzioni sull'installazione, consulta la pagina del download di Python nel manuale Beginner GuidediPython.

Note

Per poter utilizzare AWS CLI versione 1 con Python versioni 2.6 e 3.3, è necessario installare unaversione precedente alla 1.17 di AWS CLI versione 1. Per ulteriori informazioni su questa modifica,consultare l’annuncio della definizione di obsoleto in questo post di blog.

Installazione e disinstallazione di AWS CLI versione 1 su Linuxutilizzando il programma di installazione in bundleIn Linux o macOS puoi utilizzare il programma di installazione in bundle per installare la versione 1dell'AWS CLI. Il programma di installazione in bundle include tutte le dipendenze e può essere utilizzatooffline.

Note

Non supporta l'installazione in percorsi che contengono spazi.

Argomenti

26

Page 32: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

• Installazione di AWS CLI versione 1 mediante il programma di installazione in bundle consudo (p. 27)

• Installazione di AWS CLI versione 1 senza il programma di installazione in bundle sudo (p. 28)• Disinstallazione del programma di installazione in bundle di AWS CLI versione 1 (p. 30)

Installazione di AWS CLI versione 1 mediante il programma di installazione inbundle con sudoLa procedura seguente consente di installare AWS CLI versione 1 dalla riga di comando su qualsiasi builddi Linux o macOS.

Qui di seguito è riportato un riepilogo dei comandi di installazione con le spiegazioni che puoi tagliare eincollare per eseguirli come un singolo set di comandi.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zipsudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nome file. Perquesto esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con ilseguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zipsudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Segui queste fasi dalla riga di comando per installare AWS CLI versione 1 utilizzando il programma diinstallazione in bundle.

Per installare AWS CLI versione 1 mediante il programma di installazione in bundle

1. Scaricare il programma di installazione in bundle AWS CLI versione 1 utilizzando uno dei seguentimetodi.

• Download con il comando curl.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione alnome file. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con il seguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"

• Scarica utilizzando il collegamento diretto.

Per la versione più recente di AWS CLI:https://s3.amazonaws.com/aws-cli/awscli-bundle.zip

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-exe-linux-aarch64-2.0.30.zip generando il seguente URL https://s3.amazonaws.com/aws-cli/awscli-bundle-2.0.30.zip

27

Page 33: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

2. Estrarre i file dal pacchetto. Se non disponi di unzip per l'estrazione dei file, usa il programma digestione dei pacchetti integrato della distribuzione Linux per eseguire l'installazione.

$ unzip awscli-bundle.zip

3. Esegui il programma di installazione. Il programma di installazione installa l'AWS CLI in /usr/local/aws e crea il link simbolico aws nella directory /usr/local/bin. Utilizzando l'opzione -b per creareun link simbolico, si elimina la necessità di specificare la directory di installazione nella variabile $PATHdell'utente. Questo dovrebbe consentire a tutti gli utenti di richiamare l'AWS CLI digitando aws daqualsiasi directory.

$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Per default, lo script di installazione viene eseguito con la versione di Python di default del sistema.Se è installata una versione alternativa di Python e si intende utilizzare questa versione per installarel'AWS CLI, eseguire lo script del programma di installazione con tale versione dal percorso assolutodell'eseguibile di Python, come segue.

$ sudo /usr/local/bin/python3.7 awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

4. Verifica che l'AWS CLI sia installata correttamente.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

Se si verifica un errore, consulta Risoluzione degli errori AWS CLI (p. 204).

Installazione di AWS CLI versione 1 senza il programma di installazione in bundlesudo

Se non disponi delle autorizzazioni sudo o desideri installare AWS CLI solo per l'utente corrente, puoiutilizzare una versione modificata dei comandi precedenti. I primi due comandi sono gli stessi.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zip./awscli-bundle/install -b ~/bin/aws

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nome file. Perquesto esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con ilseguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zip./awscli-bundle/install -b ~/bin/aws

Per installare AWS CLI versione 1 per l'utente corrente

1. Scaricare il programma di installazione in bundle AWS CLI versione 1 in uno dei seguenti modi.

• Download con il comando curl.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

28

Page 34: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione alnome file. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con il seguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"

• Scarica utilizzando il collegamento diretto.

Per la versione più recente di AWS CLI:https://s3.amazonaws.com/aws-cli/awscli-bundle.zip

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-exe-linux-aarch64-2.0.30.zip generando il seguente URL https://s3.amazonaws.com/aws-cli/awscli-bundle-2.0.30.zip

2. Estrarre i file dal pacchetto utilizzando unzip. Se non disponi di unzip, usa il programma di gestionedei pacchetti integrato della distribuzione Linux per installarlo.

$ unzip awscli-bundle.zip

3. Esegui il programma di installazione. Il programma di installazione installa l'AWS CLI in /usr/local/aws e crea il link simbolico aws nella directory /usr/local/bin. L'ultimo comando utilizzail parametro -b per specificare la cartella in cui il programma di installazione posiziona il file dicollegamento simbolico aws. È necessario disporre delle autorizzazioni di scrittura nella cartellaspecificata.

$ ./awscli-bundle/install -b ~/bin/aws

Questo consente di installare AWS CLI nella posizione predefinita (~/.local/lib/aws) e di creareun collegamento simbolico (symlink) in ~/bin/aws. Assicurati che ~/bin si trovi nella variabile diambiente PATH per il funzionamento del collegamento simbolico.

$ echo $PATH | grep ~/bin // See if $PATH contains ~/bin (output will be empty if it doesn't)$ export PATH=~/bin:$PATH // Add ~/bin to $PATH if necessary

4. Assicurarsi che la directory di cui AWS CLI versione 1 fa parte sia parte della variabile PATH.

a. Trova lo script del profilo della tua shell nella cartella utente. Se non hai la certezza di quale sia latua shell, esegui echo $SHELL.

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – – .bash_profile, .profile o.bash_login• Zsh – .zshrc• Tcsh – .tcshrc, .cshrc o .login

b. Aggiungi un comando di esportazione al termine dello script del profilo simile a quello dell'esempioseguente.

export PATH=~/.local/bin:$PATH

29

Page 35: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

Questo comando inserisce il percorso, ~/.local/bin in questo esempio, all'inizio della variabilePATH corrente.

c. Ricarica il profilo nella sessione corrente per rendere effettive tali modifiche.

$ source ~/.bash_profile

5. Verifica che l'AWS CLI sia installata correttamente.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

Se si verifica un errore, consulta Risoluzione degli errori AWS CLI (p. 204).

Disinstallazione del programma di installazione in bundle di AWS CLI versione 1

Il programma di installazione in bundle non inserisce nulla al di fuori della directory di installazione, aeccezione del link simbolico opzionale, pertanto per effettuare la disinstallazione è sufficiente eliminarequesti due elementi.

$ sudo rm -rf /usr/local/aws$ sudo rm /usr/local/bin/aws

Installazione e disinstallazione di AWS CLI versione 1 utilizzandopipArgomenti

• Installazione pip. (p. 30)• Installazione e aggiornamento dell'AWS CLI versione 1 utilizzando pip (p. 31)• Aggiunta dell'eseguibile AWS CLI versione 1 al percorso della riga di comando (p. 32)• Disinstallazione dell'AWS CLI utilizzando pip (p. 32)

Installazione pip.

Se non disponi già di pip installato, puoi installarlo utilizzando lo script fornito da Python PackagingAuthority. Esegui pip --version per vedere se la versione di Linux di cui disponi già include Python epip. Se disponi di Python versione 3 o successiva installato, ti consigliamo di utilizzare il comando pip3.

1. Utilizza il comando curl per scaricare lo script di installazione. Il comando seguente utilizza ilparametro -O (lettera maiuscola O) per specificare che il file scaricato deve essere archiviato nelladirectory corrente utilizzando lo stesso nome che ha sull'host remoto.

$ curl -O https://bootstrap.pypa.io/get-pip.py

2. Esegui lo script con il comando python o python3 per scaricare e installare la versione più recente dipip e gli altri pacchetti di supporto necessari. Quando includi l'opzione --user, lo script installa pipnel percorso ~/.local/bin.

$ python3 get-pip.py --user

3. Assicurati che la directoy che contiene pip faccia parte della variabile PATH.

30

Page 36: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

a. Trova lo script del profilo della tua shell nella cartella utente. Se non hai la certezza di quale sia latua shell, esegui echo $SHELL.

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – – .bash_profile, .profile o.bash_login• Zsh – .zshrc• Tcsh – .tcshrc, .cshrc o .login

b. Aggiungi un comando di esportazione al termine dello script del profilo simile a quello dell'esempioseguente.

export PATH=~/.local/bin:$PATH

Questo comando inserisce il percorso, ~/.local/bin in questo esempio, all'inizio della variabilePATH corrente.

c. Ricarica il profilo nella sessione corrente per rendere effettive tali modifiche.

$ source ~/.bash_profile

4. Per verificare che pip o pip3 sia installato correttamente, eseguire il comando seguente.

$ pip3 --versionpip 19.2.3 from ~/.local/lib/python3.7/site-packages (python 3.7)

Installazione e aggiornamento dell'AWS CLI versione 1 utilizzando pip

1. Utilizzare il comando pip o pip3 per installare o aggiornare l'AWS CLI. Se disponi di Python versione3 o successiva, ti consigliamo di utilizzare il comando pip3. da --user, pip installa AWS CLI in~/.local/bin.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ pip3 install awscli --upgrade --user

Per una versione specifica di AWS CLI, aggiungere un simbolo "minore di" < e il numero di versioneal nome file. Per questo esempio il filename per la versione 1.16.312 sarebbe <1.16.312 checomporta il comando seguente:

$ pip3 install awscli<1.16.312 --upgrade --user

2. Verifica che l'AWS CLI sia installata correttamente.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

Se si verifica un errore, consulta Risoluzione degli errori AWS CLI (p. 204).

31

Page 37: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteLinux

Aggiunta dell'eseguibile AWS CLI versione 1 al percorso della riga di comando

Dopo avere eseguito l'installazione con pip, potrebbe essere necessario aggiungere l'eseguibile aws allavariabile di ambiente PATH del sistema operativo in uso.

Puoi verificare in quale cartella pip ha installato AWS CLI eseguendo il comando seguente.

$ which aws/home/username/.local/bin/aws

Per fare riferimento, puoi utilizzare ~/.local/bin/ perché /home/username corrisponde a ~ in Linux.

Se hai omesso l'opzione --user e pertanto non hai eseguito l'installazione in modalità utente, l'eseguibilepotrebbe essere nella cartella bin dell'installazione Python. Se non consci il percorso di installazione diPython, esegui questo comando.

$ which python/usr/local/bin/python

L'output potrebbe essere il percorso di un link simbolico e non dell'eseguibile vero e proprio. Esegui ls -al per vedere a cosa punta.

$ ls -al /usr/local/bin/python/usr/local/bin/python -> ~/.local/Python/3.6/bin/python3.6

pip installa i programmi nella stessa cartella che contiene l'applicazione Python. Aggiungi questa cartellaalla variabile PATH.

Per modificare il tuo PATH variabile

1. Individua lo script del profilo della shell nella cartella utente. Se non hai la certezza di quale sia la tuashell, esegui echo $SHELL.

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – .bash_profile, .profile, o .bash_login• Zsh – .zshrc• Tcsh – .tcshrc, .cshrc, o .login

2. Aggiungi un comando di esportazione allo script del tuo profilo.

export PATH=~/.local/bin:$PATH

Questo comando aggiunge un percorso, ~/.local/bin in questo esempio, alla corrente PATHvariabile.

3. Carica il profilo aggiornato nella sessione corrente.

$ source ~/.bash_profile

Disinstallazione dell'AWS CLI utilizzando pip

Se devi disinstallare l'AWS CLI, utilizza pip uninstall.

32

Page 38: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

$ pip3 uninstall awscli

Installazione, aggiornamento e disinstallazione di AWSCLI versione 1 sumacOSPuoi installare AWS Command Line Interface (AWS CLI) versione 1 e le relative dipendenze su macOSutilizzando il programma di installazione in bundle o pip.

Sezioni• Prerequisites (p. 33)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 1 su macOS utilizzando il

programma di installazione in bundle (p. 33)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 1 tramite pip (p. 37)

PrerequisitesPrima di poter installare AWS CLI versione 1 su macOS, assicurati di aver installato Python 2 versione 2.7o successiva o Python 3 versione 3.4 o successiva. Per istruzioni sull'installazione, consulta la pagina deldownload di Python nel manuale Beginner Guidedi Python.

Note

Per poter utilizzare AWS CLI versione 1 con Python versioni 2.6 e 3.3, è necessario installare unaversione precedente alla 1.17 di AWS CLI versione 1. Per ulteriori informazioni su questa modifica,consultare l’annuncio della definizione di obsoleto in questo post di blog.

Installazione, aggiornamento e disinstallazione di AWS CLIversione 1 su macOS utilizzando il programma di installazione inbundleIn Linux o macOS puoi utilizzare il programma di installazione in bundle per installare la versione 1 di AWSCommand Line Interface (AWS CLI). Il programma di installazione in bundle include tutte le dipendenze epuò essere utilizzato offline.

Non supporta l'installazione in percorsi che contengono spazi.

Argomenti• Installazione di AWS CLI versione 1 mediante il programma di installazione in bundle con

sudo (p. 33)• Installazione di AWS CLI versione 1 senza il programma di installazione in bundle sudo (p. 35)• Disinstallazione del programma di installazione in bundle di AWS CLI versione 1 (p. 37)

Installazione di AWS CLI versione 1 mediante il programma di installazione inbundle con sudo

La procedura seguente consente di installare AWS CLI versione 1 dalla riga di comando su qualsiasi builddi macOS.

Il seguente è un riepilogo dei comandi di installazione che puoi tagliare e incollare per eseguirli come unsingolo set di comandi.

33

Page 39: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zipsudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nome file. Perquesto esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con ilseguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zipsudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Per installare AWS CLI versione 1 mediante il programma di installazione in bundle

1. Scaricare il programma di installazione in bundle AWS CLI versione 1 in uno dei seguenti modi:

• Download con il comando curl.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione alnome file. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con il seguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"

• Scarica utilizzando il collegamento diretto.

Per la versione più recente di AWS CLI:https://s3.amazonaws.com/aws-cli/awscli-bundle.zip

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-exe-linux-aarch64-2.0.30.zip generando il seguente URL https://s3.amazonaws.com/aws-cli/awscli-bundle-2.0.30.zip

2. Estrazione (decompressione) dei file dal pacchetto. Se non disponi di unzip, usa il programma digestione dei pacchetti integrato della distribuzione macOs per installarlo.

$ unzip awscli-bundle.zip

3. Esegui il programma di installazione. Il programma di installazione installa l'AWS CLI in /usr/local/aws e crea il link simbolico aws nella cartella /usr/local/bin. Utilizzando l'opzione -b per creareun link simbolico, si elimina la necessità di specificare la cartella di installazione nella variabile $PATHdell'utente. Questo dovrebbe consentire a tutti gli utenti di richiamare l'AWS CLI digitando aws daqualsiasi directory.

$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Per default, lo script di installazione viene eseguito con la versione di Python di default del sistema. Seè installata una versione alternativa di Python e si intende utilizzare questa per installare l'AWS CLI,eseguire lo script del programma di installazione con tale versione dal percorso assoluto dell'eseguibiledi Python, come segue.

34

Page 40: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

$ sudo /usr/local/bin/python3.7 awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

4. Verifica che l'AWS CLI sia installata correttamente.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

Se si verifica un errore, consulta Risoluzione degli errori AWS CLI (p. 204).

Installazione di AWS CLI versione 1 senza il programma di installazione in bundlesudo

Se non disponi delle autorizzazioni sudo o desideri installare AWS CLI solo per l'utente corrente, puoiutilizzare una versione modificata dei comandi precedenti. I primi due comandi sono gli stessi.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zip./awscli-bundle/install -b ~/bin/aws

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nome file. Perquesto esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con ilseguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"unzip awscli-bundle.zip./awscli-bundle/install -b ~/bin/aws

Per installare AWS CLI versione 1 per l'utente corrente

1. Scaricare il programma di installazione in bundle AWS CLI versione 1 utilizzando uno dei seguentimetodi:

• Download con il comando curl.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione alnome file. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-bundle-1.16.312.zip con il seguente comando:

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"

• Scarica utilizzando il collegamento diretto.

Per la versione più recente di AWS CLI:https://s3.amazonaws.com/aws-cli/awscli-bundle.zip

Per una versione specifica di AWS CLI, aggiungere un trattino e il numero di versione al nomefile. Per questo esempio il filename per la versione 1.16.312 sarebbe awscli-exe-linux-

35

Page 41: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

aarch64-2.0.30.zip generando il seguente URL https://s3.amazonaws.com/aws-cli/awscli-bundle-2.0.30.zip

2. Estrarre i file dal pacchetto. Se non disponi di unzip, usa il programma di gestione dei pacchettiintegrato della distribuzione Linux per eseguire l'installazione.

$ unzip awscli-bundle.zip

3. Esegui il programma di installazione. Il programma di installazione installa l'AWS CLI in /usr/local/aws e crea il link simbolico aws nella directory /usr/local/bin. L'ultimo comando utilizzail parametro -b per specificare la cartella in cui il programma di installazione posiziona il file dicollegamento simbolico aws. È necessario disporre delle autorizzazioni di scrittura nella directoryspecificata.

$ ./awscli-bundle/install -b ~/bin/aws

Questo consente di installare AWS CLI nella posizione predefinita (~/.local/lib/aws) e di creareun collegamento simbolico (symlink) in ~/bin/aws. Assicurati che ~/bin si trovi nella variabile diambiente $PATH per il funzionamento del collegamento simbolico.

$ echo $PATH | grep ~/bin // See if $PATH contains ~/bin (output will be empty if it doesn't)$ export PATH=~/bin:$PATH // Add ~/bin to $PATH if necessary

4. Assicurarsi che la cartella in cui è installata AWS CLI versione 1 sia parte della variabile $PATH.

a. Trova lo script del profilo della tua shell nella cartella utente. Se non hai la certezza di quale sia latua shell, esegui echo $SHELL.

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – – .bash_profile, .profile o.bash_login• Zsh – .zshrc• Tcsh – .tcshrc, .cshrc o .login

b. Aggiungi un comando di esportazione al termine dello script del profilo simile a quello dell'esempioseguente.

export PATH=~/.local/bin:$PATH

Questo comando inserisce il percorso, ~/.local/bin in questo esempio, all'inizio della variabilePATH corrente.

c. Ricarica il profilo nella sessione corrente per rendere effettive tali modifiche.

$ source ~/.bash_profile

5. Verifica che l'AWS CLI sia installata correttamente.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

Se si verifica un errore, consulta Risoluzione degli errori AWS CLI (p. 204).

36

Page 42: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

Disinstallazione del programma di installazione in bundle di AWS CLI versione 1

Il programma di installazione in bundle inserisce tutto all'interno della directory di installazione tranne ilcollegamento simbolico opzionale, quindi per disinstallare, è sufficiente eliminare quei due elementi.

$ sudo rm -rf /usr/local/aws$ sudo rm /usr/local/bin/aws

Installazione, aggiornamento e disinstallazione di AWS CLIversione 1 tramite pipÈ possibile utilizzare pip direttamente per installare AWS CLI.

Argomenti• Installazione pip. (p. 37)• Installazione e aggiornamento dell'AWS CLI utilizzando pip (p. 37)• Aggiungere l'eseguibile AWS CLI versione 1 al percorso della riga di comandomacOS (p. 38)• Disinstallazione dell'AWS CLI utilizzando pip (p. 39)

Installazione pip.

Se non disponi già di pip installato, puoi installarlo utilizzando lo script fornito da Python PackagingAuthority. Esegui pip --version per vedere se la versione di Linux di cui disponi già include Python epip. Se disponi di Python versione 3 o successiva installato, ti consigliamo di utilizzare il comando pip3.

1. Utilizza il comando curl per scaricare lo script di installazione. Il comando seguente utilizza ilparametro -O (lettera maiuscola O) per specificare che il file scaricato deve essere archiviato nellacartella corrente utilizzando lo stesso nome che ha sull'host remoto.

$ curl -O https://bootstrap.pypa.io/get-pip.py

2. Esegui lo script con il comando python o python3 per scaricare e installare la versione più recente dipip e gli altri pacchetti di supporto necessari. Quando includi l'opzione --user, lo script installa pipnel percorso ~/.local/bin.

$ python3 get-pip.py --user

Installazione e aggiornamento dell'AWS CLI utilizzando pip

1. Utilizzare il comando pip o pip3 per installare AWS CLI. Se disponi di Python versione 3 successiva,ti consigliamo di utilizzare il comando pip3.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

$ pip3 install awscli --upgrade --user

Per una versione specifica di AWS CLI, aggiungere un simbolo "minore di" < e il numero di versioneal nome file. Per questo esempio il filename per la versione 1.16.312 sarebbe <1.16.312 checomporta il comando seguente:

$ pip3 install awscli<1.16.312 --upgrade --user

37

Page 43: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentemacOS

2. Verifica che l'AWS CLI sia installata correttamente.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Darwin/18.7.0 botocore/1.13

Se il programma non è presente, aggiungilo al percorso della riga di comando (p. 38).

Aggiungere l'eseguibile AWS CLI versione 1 al percorso della riga dicomandomacOS

Dopo avere eseguito l'installazione con pip, può essere necessario aggiungere il programma aws allavariabile di ambiente PATH del sistema operativo in uso. La posizione del programma dipende dal percorsodi installazione di Python.

Example AWS CLI percorso di installazione - macOS con Python 3.6 e pip (modalità utente)

~/Library/Python/3.7/bin

Sostituisci la versione di Python di cui disponi con la versione dell'esempio precedente.

Se non conosci il percorso di installazione di Python, esegui which python.

$ which python/usr/local/bin/python

L'output potrebbe essere il percorso a un link simbolico, non il programma effettivo. Esegui ls -al pervedere a cosa punta.

$ ls -al /usr/local/bin/python~/Library/Python/3.7/bin/python3.7

pip installa i programmi nella stessa cartella che contiene l'applicazione Python. Aggiungi questa cartellaalla variabile PATH.

Per modificare il tuo PATH variabile

1. Individua lo script del profilo della shell nella cartella utente. Se non hai la certezza di quale sia la tuashell, esegui echo $SHELL.

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – .bash_profile, .profile, o .bash_login• Zsh – .zshrc• Tcsh – .tcshrc, .cshrc, o .login

2. Aggiungi un comando di esportazione allo script del tuo profilo.

export PATH=~/.local/bin:$PATH

Questo comando aggiunge un percorso, ~/.local/bin in questo esempio, alla corrente PATHvariabile.

3. Carica il profilo aggiornato nella sessione corrente.

38

Page 44: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteWindows

$ source ~/.bash_profile

Disinstallazione dell'AWS CLI utilizzando pipSe devi disinstallare l'AWS CLI, utilizza pip uninstall.

$ pip3 uninstall awscli

Installazione, aggiornamento e disinstallazione di AWSCLI versione 1 su WindowsPuoi installare la versione 1 di AWS Command Line Interface (AWS CLI) su Windows utilizzando unprogramma di installazione autonomo (scelta consigliata) oppure pip, ovvero un programma di gestionedei pacchetti per Python.

Quando digiti un comando, non includere il simbolo del prompt (C:\>). Il simbolo è incluso negli elenchidi programma per differenziare i comandi digitati dall'utente dall'output restituito dall'interfaccia a riga dicomando. Nella parte rimanente di questa guida viene utilizzato il simbolo del prompt generico, $, salvo neicasi in cui il comando sia specifico di Windows.

Argomenti• Installazione, aggiornamento e disinstallazione di AWS CLI versione 1 utilizzando il programma di

installazione MSI (p. 39)• Installazione, aggiornamento e disinstallazione di AWS CLI versione 1 mediante Python e pip su

Windows (p. 40)• Aggiunta dell'eseguibile AWS CLI versione 1 al percorso della riga di comando (p. 41)

Installazione, aggiornamento e disinstallazione di AWS CLIversione 1 utilizzando il programma di installazione MSIL'AWS CLI versione 1 è supportata in Windows XP o versioni successive. Per gli utenti Windows, ilpacchetto di installazione MSI offre un modo familiare e conveniente per installare AWS CLI versione 1senza includere altri prerequisiti.

Installazione e aggiornamento di AWS CLI versione 1 utilizzando il programma diinstallazione MSIControlla la pagina Releases (Rilasci) su GitHub per vedere quando è stata rilasciata la versione piùrecente. Quando vengono rilasciati gli aggiornamenti, è necessario ripetere il processo di installazione perottenere la versione più recente di AWS CLI versione 1.

1. Scaricare il programma di installazione MSI appropriato.

• Programma di installazione MSI dell'AWS CLI per Windows (64 bit): https://s3.amazonaws.com/aws-cli/AWSCLI64PY3.msi

• Programma di installazione MSI dell'AWS CLI per Windows (32 bit): https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi

• File di configurazione combinato dell'AWS CLI per Windows: https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe (include i programmi di installazione MSI a 32 bit e a 64 bit e installaautomaticamente la versione corretta)

39

Page 45: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteWindows

2. Esegui il programma di installazione MSI scaricato o il file di installazione.3. Seguire le istruzioni a video. Per impostazione predefinita, AWS CLI versione 1 viene installata in C:

\Program Files\Amazon\AWSCLI (versione a 64 bit) o C:\Program Files (x86)\Amazon\AWSCLI (versione a 32 bit).

4. Per confermare l'installazione, utilizza il comando aws --version al prompt dei comandi (apri ilmenu Start e cerca cmd per avviare il prompt dei comandi).

C:\> aws --versionaws-cli/1.18.134 Python/3.7.4 Windows/10 botocore/1.13

Se Windows non è in grado di trovare il programma, potrebbe essere necessario chiudere e riaprire ilprompt dei comandi per aggiornare il percorso o aggiungere manualmente la directory di installazionealla variabile di ambiente PATH (p. 41).

Disinstallazione di AWS CLI versione 1

Per utilizzare le seguenti istruzioni di disinstallazione, è necessario aver installato AWS CLI versione 1 conil file di installazione o di configurazione MSI.

1. Aprire Programmi e caratteristiche eseguendo una delle seguenti operazioni:

• Aprire il Pannello di controllo e scegliere Programmi e caratteristiche.• Aprire un prompt dei comandi e inserire il comando seguente.

C:\> appwiz.cpl

2. Seleziona la voce denominata AWS Command Line Interface e quindi scegli Uninstall (Disinstalla) peravviare il programma di disinstallazione.

3. Confermare che si desidera disinstallare l'AWS CLI.

Installazione, aggiornamento e disinstallazione di AWS CLIversione 1 mediante Python e pip su WindowsPython Software Foundation offre programmi di installazione per Windows che includono pip.

Prerequisites

È necessaria l'installazione di Python 2 versione 2.7 o successiva o Python 3 versione 3.4 o successiva.Per istruzioni sull'installazione, consulta la pagina del download di Python nel manuale Beginner GuidediPython.

Note

Per poter utilizzare AWS CLI versione 1 con Python versioni 2.6 e 3.3, è necessario installare unaversione precedente alla 1.17 di AWS CLI versione 1. Per ulteriori informazioni su questa modifica,consultare l’annuncio della definizione di obsoleto in questo post di blog.

Installazione e aggiornamento dell'AWS CLI versione 1 utilizzando pip

1. Per installare AWS CLI versione 1, utilizzare il comando pip3 (se si utilizza Python versione 3 osuccessiva) o il comando pip.

Per la versione più recente di AWS CLI, utilizza il seguente blocco di comandi:

40

Page 46: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteWindows

C:\> pip3 install awscli --upgrade --user

Per una versione specifica di AWS CLI, aggiungere un simbolo "minore di" < e il numero di versione alnome file. Per questo esempio il filename per la versione 1.16.312 sarebbe <1.16.312 generando ilseguente comando:

C:\> pip3 install awscli<1.16.312 --upgrade --user

2. Verifica che l'AWS CLI versione 1 sia installata correttamente. Se non c'è risposta, consulta la sezioneAggiunta dell'eseguibile AWS CLI versione 1 al percorso della riga di comando (p. 41).

C:\> aws --versionaws-cli/1.18.134 Python/3.7.4 Windows/10 botocore/1.13

Disinstallazione dell'AWS CLI versione 1 utilizzando pipSe hai installato AWS CLI versione 1 utilizzando pip, devi disinstallare anche utilizzando pip. Se utilizziPython versione 3 o successiva, ti consigliamo di utilizzare il comando pip3.

C:\> pip3 uninstall awscli

Potrebbe essere necessario riavviare la finestra del prompt dei comandi o il computer per rimuovere tutti ifile.

Aggiunta dell'eseguibile AWS CLI versione 1 al percorso dellariga di comandoDopo avere installato AWS CLI versione 1 con pip, aggiungi il programma aws alla variabile di ambientePATH del sistema operativo in uso. Con un'installazione MSI, questa operazione dovrebbe avvenireautomaticamente. Ma se il comando aws non viene eseguito dopo l'installazione, potrebbe esserenecessario impostarlo manualmente.

1. Utilizzare il comando where per trovare la posizione del file aws. Per impostazione predefinita, ilcomando where mostra la posizione di un programma specificato nel PATH del sistema.

C:\> where aws

I percorsi che appaiono dipendono dalla piattaforma e dal metodo utilizzato per installare l'AWS CLI. Inomi delle cartelle che includono i numeri di versione possono variare. Questi esempi riflettono l'uso diPython versione 3.7. Sostituire la versione con il numero di versione che si sta utilizzando, in base allenecessità. I percorsi tipici includono quanto segue:

• Python 3 e pip3 – C:\Program Files\Python37\Scripts\• Python 3 e pip3 --opzione utente nelle versioni precedenti di Windows – %USERPROFILE%\AppData\Local\Programs\Python\Python37\Scripts

• Python 3 e pip3 --opzione utente in Windows 10 – %USERPROFILE%\AppData\Roaming\Python\Python37\Scripts

• Programma di installazione MSI (a 64 bit) – C:\Program Files\Amazon\AWSCLI\bin• Programma di installazione MSI (a 32 bit) – C:\Program Files (x86)\Amazon\AWSCLI\bin

Attenersi alla seguente procedura se viene restituito un percorso di file.

41

Page 47: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVirtualenv

A file path is returned

C:\> where awsC:\Program Files\Amazon\AWSCLI\bin\aws.exe

Puoi trovare la posizione di installazione del programma aws con il comando seguente.

C:\> where c:\ awsC:\Program Files\Python37\Scripts\aws

A file path is NOT returned

Se il comando where restituisce il seguente errore, non è nel PATH del sistema e non è possibileeseguirlo digitandone il nome.

C:\> where c:\ awsINFO: Could not find files for the given pattern(s).

In questo caso, eseguire il comando where con il parametro /R path per specificare di ricercarein tutte le cartelle, quindi aggiungere il percorso manualmente. Utilizzare la riga di comando oEsplora file per scoprire dove è installato sul computer.

C:\> where /R c:\ awsc:\Program Files\Amazon\AWSCLI\bin\aws.exec:\Program Files\Amazon\AWSCLI\bincompat\aws.cmdc:\Program Files\Amazon\AWSCLI\runtime\Scripts\awsc:\Program Files\Amazon\AWSCLI\runtime\Scripts\aws.cmd...

2. Premere il tasto Windows e immettere environment variables.3. Seleziona Edit environment variables for your account (Modifica variabili di ambiente per l'account).4. Seleziona PATH (PERCORSO), quindi Edit (Modifica).5. Aggiungere il percorso trovato nel campo Valore della variabile, ad esempio, C:\Program Files

\Amazon\AWSCLI\bin\aws.exe.6. Fai clic su OK due volte per applicare le nuove impostazioni.7. Chiudi tutte le richieste di comando in esecuzione e riapri la finestra del prompt dei comandi.

Installare e aggiornare il AWS CLI versione 1 in unambiente virtualeÈ possibile evitare conflitti con la versione dei requisiti pip installando la versione 1 del AWS CommandLine Interface (AWS CLI) in un ambiente virtuale.

Argomenti:• Prerequisites (p. 42)• Installazione e aggiornamento di AWS CLI versione 1 in un ambiente virtuale (p. 43)

Prerequisites• Python 2 versione 2.7 o successiva o Python 3 versione 3.4 o successiva. Per istruzioni sull'installazione,

vedere la Scaricare Python a Python Guida principiante.

42

Page 48: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVirtualenv

Note

Per poter utilizzare AWS CLI versione 1 con Python versioni 2.6 e 3.3, è necessario installareuna versione precedente alla 1.17 di AWS CLI versione 1. Per ulteriori informazioni su questamodifica, consultare l’annuncio della definizione di obsoleto in questo post di blog.

• pipÈ installato pip3 o .

Installazione e aggiornamento di AWS CLI versione 1 in unambiente virtuale1. Installa virtualenv usando pip.

$ pip install --user virtualenv

2. Creare un ambiente virtuale e assegnargli un nome.

$ virtualenv ~/cli-ve

In alternativa, è possibile utilizzare l'opzione -p per specificare una versione di Python diversa daquella di default.

$ virtualenv -p /usr/bin/python37 ~/cli-ve

3. Attivare il nuovo ambiente virtuale.

Linux o macOS

$ source ~/cli-ve/bin/activate

Windows:

$ %USERPROFILE%\cli-ve\Scripts\activate

Il prompt cambia per mostrare che l'ambiente virtuale è attivo:

(cli-ve)~$

4. Installazione o aggiornamento di AWS CLI versione 1 nel proprio ambiente virtuale.

(cli-ve)~$ pip install --upgrade awscli

5. Verifica che l'AWS CLI versione 1 sia installata correttamente.

$ aws --versionaws-cli/1.18.134 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

6. È possibile utilizzare il comando deactivate per chiudere l'ambiente virtuale. Quando avvii unanuova sessione, devi attivare nuovamente l'ambiente.

43

Page 49: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteNozioni di base sulla configurazione

Configurazione di AWS CLIIn questa sezione viene illustrato come configurare le impostazioni che l'AWS Command Line Interface(AWS CLI) utilizza per interagire con AWS. Queste includono le credenziali di sicurezza, il formato di outputpredefinito e la regione AWS predefinita.

Note

AWS richiede che tutte le richieste in entrata siano firmate crittograficamente. AWS CLI lo fa perte La "firma" include un timestamp/data. Pertanto, è necessario assicurarsi che la data e l'ora delcomputer siano impostate correttamente. In caso contrario, e se la data/ora nella firma è troppodistante dalla data/ora riconosciuta dal servizio AWS, AWS rifiuta la richiesta.

Argomenti• Nozioni di base sulla configurazione (p. 44)• Impostazioni del file di configurazione e delle credenziali (p. 48)• Profili denominati (p. 61)• Configurazione di AWS CLI per utilizzare AWS Single Sign-On (p. 62)• Variabili di ambiente per configurare l'AWS CLI. (p. 68)• Opzioni della riga di comando (p. 72)• Completamento dei comandi (p. 75)• AWS CLI nuovi tentativi (p. 78)• Credenziali di approvvigionamento con un processo esterno (p. 82)• Utilizzo delle credenziali per i metadati dell'istanzaAmazon EC2 (p. 83)• Utilizzo di un proxy HTTP (p. 85)• Utilizzo di un ruolo IAM nell'AWS CLI (p. 86)

Nozioni di base sulla configurazioneIn questa sezione viene illustrato come configurare velocemente le impostazioni di base che l'AWSCommand Line Interface (AWS CLI) utilizza per interagire con AWS. Queste includono le credenziali disicurezza, il formato di output predefinito e la regione AWS predefinita.

Note

AWS richiede che tutte le richieste in entrata siano firmate crittograficamente. AWS CLI lo fa perte La "firma" include un timestamp/data. Pertanto, è necessario assicurarsi che la data e l'ora delcomputer siano impostate correttamente. In caso contrario, e se la data/ora nella firma è troppodistante dalla data/ora riconosciuta dal servizio AWS, AWS rifiuta la richiesta.

Argomenti• Configurazione rapida con aws configure (p. 45)• ID chiave di accesso e Secret Access Key (p. 45)• Region (p. 46)• Formato di output (p. 46)• Profiles (p. 47)

44

Page 50: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione rapida con aws configure

• Impostazioni di configurazione e precedenza (p. 47)

Configurazione rapida con aws configurePer l'uso generale, il comando aws configure è il metodo più veloce per configurare l'installazionedell'AWS CLI. Quando digiti questo comando, nell'AWS CLI viene richiesto di immettere quattroinformazioni:

• ID chiave di accesso (p. 45)• Chiave di accesso segreta (p. 45)• AWS Region (Regione) (p. 46)• Formato di output (p. 46)

L'AWS CLI archivia queste informazioni in un profilo (una raccolta di impostazioni) denominato defaultnel file credentials. Per impostazione predefinita, le informazioni in questo profilo vengono utilizzatequando esegui un comando AWS CLI che non specifica esplicitamente un profilo da utilizzare. Perulteriori informazioni sul file credentials, consulta Impostazioni del file di configurazione e dellecredenziali (p. 48)

L'esempio seguente illustra i valori di esempio. Sostituirli con i propri valori come descritto nelle sezioniseguenti.

$ aws configureAWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]: us-west-2Default output format [None]: json

ID chiave di accesso e Secret Access KeyLe chiavi di accesso sono composte da un ID chiave di accesso e una chiave di accesso segreta, chevengono utilizzate per firmare le richieste a livello di programmazione che fai ad AWS. Se non hai le chiavidi accesso, puoi crearle dalla Console di gestione AWS. Come best practice, non utilizzare le chiavi diaccesso Utente root dell'account AWS per nessuna attività in cui non sia necessario. Invece, crea un nuovoutente IAM amministratore con chiavi di accesso per te.

L'unico momento in cui puoi visualizzare o scaricare la chiave di accesso segreta è quando crei le chiavi enon puoi recuperarle successivamente. Tuttavia, puoi creare nuove chiavi di accesso in qualsiasi momento.Devi inoltre disporre delle autorizzazioni per effettuare le operazioni IAM richieste. Per ulteriori informazioni,consulta Autorizzazioni necessarie per accedere alle risorse IAM nella Guida per l'utente di IAM.

Per creare chiavi di accesso per un utente IAM

1. Accedi alla Console di gestione AWS e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

2. Nel riquadro di navigazione, scegliere Users (Utenti).3. Selezionare il nome dell'utente per cui occorre creare le chiavi di accesso e selezionare la scheda

Security credentials (Credenziali di sicurezza).4. Nella sezione Access keys (Chiavi di accesso), fare clic su Create access key (Crea chiave di

accesso).5. Per visualizzare la nuova coppia di chiavi di accesso, scegliere Show (Mostra). Non sarà possibile

accedere nuovamente alla chiave di accesso segreta dopo la chiusura di questa finestra di dialogo. Lecredenziali saranno simili a quanto segue:

45

Page 51: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteRegion

• ID chiave di accesso: AKIAIOSFODNN7EXAMPLE• Chiave di accesso segreta: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

6. Per scaricare la coppia di chiavi, selezionare Download .csv file (Scarica file .csv). Conservare le chiaviin un posto sicuro. Non sarà possibile accedere nuovamente alla chiave di accesso segreta dopo lachiusura di questa finestra di dialogo.

Mantieni la riservatezza delle chiavi per proteggere l'account AWS e non inviarle mai via e-mail. Noncondividerle all'esterno dell'organizzazione, anche se ricevi una richiesta che sembra provenire daAWS o Amazon.com. Nessuno che rappresenta legittimamente Amazon richiederà mai la tua chiavesegreta.

7. Dopo aver scaricato il file .csv, selezionare Close (Chiudi). Quando si crea una chiave diaccesso, la coppia di chiavi è attiva per impostazione predefinita ed è possibile utilizzare la coppiaimmediatamente.

Argomenti correlati

• Cos'è IAM? nella Guida per l'utente di IAM.• Credenziali di sicurezza AWS in AWS General Reference

RegionDefault region name identifica la regione AWS ai cui server si desidera inviare le richieste perimpostazione predefinita. Questa è tipicamente la regione più vicina per l'utente, ma può essere qualsiasiregione. Ad esempio, puoi digitare us-west-2 per utilizzare Stati Uniti occidentali (Oregon). Questa èla regione a cui verranno inviate tutte le richieste successive, se non specificato altrimenti in un singolocomando.

Note

Durante l'utilizzo di AWS CLI, occorre specificare una regione AWS, in modo esplicito oimpostando una regione predefinita. Per un elenco delle regioni disponibili, consulta Regioni edendpoint. Gli identificatori della regione utilizzati da AWS CLI sono gli stessi nomi che vedi inConsole di gestione AWS URLs ed endpoint del servizio.

Formato di outputDefault output format specifica la modalità di formattazione dei risultati. Il valore può essere unoqualsiasi dei valori nell'elenco seguente. Se non si specifica un formato di output, json viene utilizzatocome impostazione predefinita.

• json (p. 119): l'output è formattato come una stringa JSON.• yaml (p. 120): l'output è formattato come una stringa YAML. (Disponibile solo nella AWS CLI versione

2.)• yaml-stream (p. 120) – L' output viene trasmesso in streaming e formattato come stringa YAML. Lo

streaming consente una gestione più rapida dei tipi di dati di grandi dimensioni. (Disponibile solo nellaAWS CLI versione 2.)

• text (p. 121): l'output è formattato come più righe di valori di stringa separati da tabulazioni. Ciò puòessere utile per passare l'output a un processore di testi, come grep, sed o awk.

• table (p. 124): l'output è formattato come una tabella utilizzando i caratteri +|- per formare i bordidelle celle. In genere presenta le informazioni in un formato comprensibile molto più semplice da leggererispetto ad altri, ma non altrettanto utile a livello programmatico.

46

Page 52: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteProfiles

ProfilesUna raccolta di impostazioni è chiamata profilo. Per impostazione predefinita, l'AWS CLI utilizza il profilodefault. Puoi creare e utilizzare profili denominati aggiuntivi con credenziali e impostazioni variabilispecificando l'opzione --profile e assegnando un nome.

L'esempio seguente crea un profilo denominato produser.

$ aws configure --profile produserAWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLEAWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEYDefault region name [None]: us-east-1Default output format [None]: text

Puoi specificare un --profile profilename e utilizzare le credenziali e le impostazioni archiviate conquel nome.

$ aws s3 ls --profile produser

Per aggiornare queste impostazioni, esegui nuovamente aws configure (con o senza il parametro --profile, a seconda del profilo che desideri aggiornare) e immetti i nuovi valori a seconda delle necessità.Le sezioni successive contengono ulteriori informazioni sui file creati da aws configure, impostazioniaggiuntive e profili denominati.

Per ulteriori informazioni sui profili denominati, consulta Profili denominati (p. 61).

Impostazioni di configurazione e precedenzaL'AWS CLI utilizza le credenziali e le impostazioni di configurazione situate in più posizioni, ad esempio levariabili di ambiente del sistema o dell'utente, i file di configurazione AWS locali o dichiarati esplicitamentesulla riga di comando come un parametro. Alcune posizioni hanno la precedenza su altre. Le credenziali ele impostazioni di configurazione AWS CLI hanno la precedenza nell'ordine seguente:

1. Opzioni della riga di comando (p. 72) – Sovrascrive le impostazioni in qualsiasi altra posizione. Puoispecificare --region, --output e --profile come parametri sulla riga di comando.

2. Variabili di ambiente (p. 68) – Puoi archiviare i valori nelle variabili di ambiente del sistema.3. File delle credenziali dell'interfaccia a riga di comando (p. 48) I file e – vengono aggiornati

quando esegui il comando credentials.configaws configure Il file credentials si trova in~/.aws/credentials su Linux o macOS o in C:\Users\USERNAME\.aws\credentials suWindows. Questo file può contenere i dettagli delle credenziali per il profilo default ed eventuali profilidenominati.

4. File di configurazione dell'interfaccia a riga di comando (p. 48) I file e – vengono aggiornati quandoesegui il comando credentials.configaws configure Il file config si trova in ~/.aws/configsu Linux o macOS o in C:\Users\USERNAME\.aws\config su Windows. Questo file contiene leimpostazioni di configurazione per il profilo predefinito e gli eventuali profili denominati.

5. Credenziali di container – Puoi associare un ruolo IAM a ciascuna delle definizioni di attività AmazonElastic Container Service (Amazon ECS). Le credenziali temporanee per tale ruolo sono quindidisponibili per i contenitori dell'attività. Per ulteriori informazioni, consulta Ruoli IAM per le attività nellaAmazon Elastic Container Service Developer Guide.

6. Credenziali del profilo dell'istanza – Puoi associare un ruolo IAM a ciascuna delle istanze Amazon ElasticCompute Cloud (Amazon EC2). Le credenziali temporanee per tale ruolo sono quindi disponibili peril codice in esecuzione nell'istanza. Le credenziali vengono distribuite tramite il servizio di metadatiAmazon EC2. Per ulteriori informazioni, consulta Ruoli IAM per Amazon EC2 nella Guida per l'utente diAmazon EC2 per le istanze Linux e la sezione relativa all'utilizzo dei profili delle istanze nella Guida perl'utente di IAM.

47

Page 53: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni del file di configurazione e delle credenziali

Impostazioni del file di configurazione e dellecredenziali

Puoi salvare le impostazioni di configurazione e le credenziali utilizzate di frequente nei file gestiti da AWSCLI.

I file sono divisi in profiles. Per impostazione predefinita, l'interfaccia a riga di comando utilizza leimpostazioni disponibili nel profilo denominato default. Per utilizzare impostazioni alternative, puoicreare profili aggiuntivi e farvi riferimento. Per ulteriori informazioni sui profili denominati, consulta Profilidenominati (p. 61).

Puoi sostituire una singola impostazione configurando una delle variabili di ambiente supportateoppure utilizzando un parametro della riga di comando. Per ulteriori informazioni sulla precedenza delleimpostazioni di configurazione, consulta Impostazioni di configurazione e precedenza (p. 47).

Argomenti• Dove vengono archiviate le impostazioni di configurazione? (p. 48)• Impostazione e visualizzazione delle impostazioni di configurazione (p. 49)• Impostazioni supportate del file config (p. 50)

Dove vengono archiviate le impostazioni diconfigurazione?AWS CLI archivia le informazioni relative alle credenziali riservate specificate con aws configure in unfile locale denominato credentials che si trova in una cartella denominata .aws nella home directory. Lealtre opzioni di configurazione meno riservate specificate con aws configure vengono archiviate in unfile locale denominato config che è archiviato nella cartella .aws della home directory.

Archiviazione delle credenziali nel file di configurazione

Puoi mantenere tutte le impostazioni del profilo in un unico file in quanto l'AWS CLI può leggerele credenziali dal file config. Se in entrambi i file sono presenti credenziali per un profilo checondivide lo stesso nome, le chiavi nel file delle credenziali hanno la precedenza.Questi file vengono inoltre utilizzati da vari Software Development Kit (SDK). Se oltre all'SDKsutilizzi una delle AWS CLI, conferma se le credenziali devono essere archiviate nei rispettivi file.

La posizione della home directory varia in base al sistema operativo, ma viene definita utilizzandole variabili di ambiente %UserProfile% in Windows e $HOME o ~ (tilde) nei sistemi basati su Unix.Puoi specificare una posizione non predefinita per il file config impostando la variabile di ambienteAWS_CONFIG_FILE su un altro percorso locale. Per informazioni dettagliate, consulta Variabili di ambienteper configurare l'AWS CLI. (p. 68).

Ad esempio, i file generati dall'interfaccia a riga di comando per un profilo predefinito configurato con awsconfigure sono simili al quanto segue.

~/.aws/credentials

[default]aws_access_key_id=AKIAIOSFODNN7EXAMPLEaws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

~/.aws/config

48

Page 54: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazione e visualizzazione

delle impostazioni di configurazione

[default]region=us-west-2output=json

Per esempi di file con più profili denominati, consulta Profili denominati (p. 61).

Quando utilizzi un profilo condiviso che specifica un ruolo AWS Identity and Access Management (IAM),l'AWS CLI chiama l'operazione AWS STS AssumeRole per recuperare le credenziali temporanee. Questecredenziali vengono quindi archiviate (in ~/.aws/cli/cache). I comandi dell'AWS CLI successiviutilizzano le credenziali temporanee memorizzate nella cache finché non scadono e a quel punto l'AWS CLIaggiorna automaticamente le credenziali.

Impostazione e visualizzazione delle impostazioni diconfigurazioneEsistono diversi modi per visualizzare e impostare le impostazioni di configurazione nei file.

Credenziali e file di configurazione

Visualizza e modifica le impostazioni modificando direttamente i file config e credentials inun editor di testo. Per ulteriori informazioni, consulta Dove vengono archiviate le impostazioni diconfigurazione? (p. 48)

Per rimuovere un'impostazione, elimina l'impostazione corrispondente nei file config ecredentials.

aws configure

Esegui questo comando per impostare e visualizzare rapidamente le credenziali, la regione e il formatodi output. L'esempio seguente illustra i valori di esempio.

$ aws configureAWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]: us-west-2Default output format [None]: json

Per ulteriori informazioni, consulta Configurazione rapida con aws configure (p. 45)aws configure set

È possibile configurare le credenziali o le impostazioni di configurazione utilizzando aws configureset. Specifica il profilo che desideri visualizzare o modificare con l'impostazione --profile.

Ad esempio, il comando seguente configura l'impostazione region nel profilo denominato integ.

$ aws configure set region us-west-2 --profile integ

Per rimuovere un'impostazione, utilizza una stringa vuota come valore oppure elimina manualmentel'impostazione nei file config e credentials in un editor di testo.

$ aws configure set cli_pager "" --profile integ

aws configure get

Puoi recuperare le credenziali o le impostazioni di configurazione impostate utilizzando awsconfigure get. Specifica il profilo che desideri visualizzare o modificare con l'impostazione --profile.

49

Page 55: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

Ad esempio, il comando seguente recupera l'impostazione region nel profilo denominato integ.

$ aws configure get region --profile integus-west-2

Se l'output è vuoto, l'impostazione non è configurata esplicitamente e viene utilizzato il valorepredefinito.

aws configure import

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Importa le credenziali CSV generate dalla console Web AWS. Viene importato un file CSV con il nomedel profilo corrispondente al nome utente IAM.

$ aws configure import –csv file://credentials.csv

aws configure list

Per elencare tutti i dati di configurazione, utilizza il comando aws configure list. Questocomando visualizza il nome AWS CLI di tutte le impostazioni configurate, i relativi valori e da dove èstata recuperata la configurazione.

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None Noneaccess_key ****************ABCD shared-credentials-file secret_key ****************ABCD shared-credentials-file region us-west-2 env AWS_DEFAULT_REGION

aws configure list-profiles

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Per elencare tutti i nomi del profilo, utilizzare il comando aws configure list-profiles.

$ aws configure list-profilesdefaulttest

Impostazioni supportate del file configArgomenti

• Impostazioni globali (p. 51)• Impostazioni dei comandi S3 personalizzati (p. 58)

Le seguenti impostazioni sono supportate nel file config. Vengono utilizzati i valori elencati nel profilospecificato (o nel profilo predefinito), a meno che non vengano sostituiti grazie alla presenza di una

50

Page 56: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

variabile di ambiente con lo stesso nome o di un'opzione della riga di comando con lo stesso nome.Per ulteriori informazioni sulle impostazioni di ordine che hanno la precedenza, consulta Impostazioni diconfigurazione e precedenza (p. 47)

Impostazioni globaliapi_versions

Alcuni servizi AWS mantengono più versioni dell'API al fine di supportare la compatibilità con leversioni precedenti. Per impostazione predefinita, i comandi CLI utilizzano l'ultima versione APIdisponibile. Puoi specificare una versione API da utilizzare per un profilo, includendo l'impostazioneapi_versions nel file config.

Si tratta di un'impostazione "nidificata", seguita da una o più righe rientrate, ciascuna delle qualiidentifica un servizio AWS e la versione API da utilizzare. Consulta la documentazione di ciascunservizio per conoscere le versioni API disponibili.

L'esempio seguente mostra come specificare una versione API per due servizi AWS. Queste versioniAPI vengono utilizzate solo per i comandi eseguiti nel profilo che contiene queste impostazioni.

api_versions = ec2 = 2015-03-01 cloudfront = 2015-09-017

Questa impostazione non dispone di una variabile di ambiente o di un parametro della riga di comandoequivalente.

aws_access_key_id (p. 45)

Specifica la chiave di accesso AWS utilizzata come parte delle credenziali per autenticare la richiestadi comando. Sebbene tale impostazione possa essere archiviata nel file config, ti consigliamo diarchiviarla nel file credentials.

Può essere sostituita dalla variabile di ambiente AWS_ACCESS_KEY_ID. Non è possibile specificarel'ID chiave di accesso come un'opzione della riga di comando.

aws_access_key_id = 123456789012

aws_secret_access_key (p. 45)

Specifica la chiave segreta AWS utilizzata come parte delle credenziali per autenticare la richiestadi comando. Sebbene tale impostazione possa essere archiviata nel file config, ti consigliamo diarchiviarla nel file credentials.

Può essere sostituita dalla variabile di ambiente AWS_SECRET_ACCESS_KEY. Non è possibilespecificare la chiave di accesso segreta come un'opzione della riga di comando.

aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

aws_session_token

Specifica un token di sessione AWS. È richiesto un token di sessione solo se si specificanomanualmente credenziali di sicurezza temporanee. Sebbene tale impostazione possa esserearchiviata nel file config, ti consigliamo di archiviarla nel file credentials.

Può essere sostituita dalla variabile di ambiente AWS_SESSION_TOKEN. Non è possibile specificare iltoken di sessione come un'opzione della riga di comando.

51

Page 57: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

ca_bundle

Specifica un bundle di certificati CA (file con estensione .pem) utilizzato per verificare i certificati SSL.

Può essere sostituita dalla variabile di ambiente AWS_CA_BUNDLE o dall'opzione della riga di comando--ca-bundle.

ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem

che_cli_auto_prompt

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Abilita il prompt automatico per AWS CLI versione 2. È possibile utilizzare due impostazioni:• on utilizza la modalità di prompt automatico completa ogni volta che tenti di eseguire un comandoaws. Questo include la pressione di INVIO dopo un comando completo o un comando incompleto.

cli_auto_prompt = on

• on-partial utilizza la modalità di prompt automatico parziale. Se un comando è incompleto o nonpuò essere eseguito a causa di errori di convalida lato client, viene utilizzato il prompt automatico.Questa modalità è particolarmente utile se si dispone di script preesistenti, runbook o se si desideraessere invitati automaticamente per i comandi con cui non si ha familiarità anziché su richiesta perogni comando.

cli_auto_prompt = on-partial

Puoi ignorare questa impostazione utilizzando la variabile di ambienteaws_cli_auto_prompt (p. 69) o i parametri della riga di comando --cli-auto-prompt (p. 72) e --no-cli-auto-prompt (p. 73).

Per informazioni sulla funzionalità di prompt automatico di AWS CLI versione 2, consulta Impostazionedi AWS CLI in modo che richieda i comandi (p. 115).

cli_binary_format

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Specificare come AWS CLI versione 2 interpreta i parametri di input binari. Può essere uno deiseguenti valori:• base64 – questo è il valore predefinito. Un parametro di input digitato come oggetto binario di grandi

dimensioni (BLOB) accetta una stringa con codifica base64. Per passare il contenuto binario vero,inserire il contenuto in un file e fornire il percorso e il nome del file con il prefisso fileb:// comevalore del parametro. Per passare il testo codificato in base 64 contenuto in un file, specificare ilpercorso e il nome del file con il prefisso file:// come valore del parametro.

52

Page 58: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

• raw-in-base64-out – Fornisce compatibilità con il comportamento AWS CLI versione 1 in cui i valoribinari devono essere passati letteralmente.

Questa voce non dispone di una variabile di ambiente equivalente. È possibile specificare il valore suun singolo comando utilizzando il parametro --cli-binary-format raw-in-base64-out.

cli_binary_format = raw-in-base64-out

Se si fa riferimento a un valore binario in un file utilizzando la notazione del prefisso fileb://, AWSCLI aspetta sempre che il file contenga contenuto binario non elaborato e non tenta di convertire ilvalore.

Se si fa riferimento a un valore binario in un file utilizzando la notazione del prefisso file://, il fileviene gestito da AWS CLI in base all'impostazione cli_binary_format corrente. Se il valore di taleimpostazione è base64 (il valore predefinito quando non è impostato in modo esplicito), l'interfacciadella riga di comando prevede che il file contenga testo con codifica Base64. Se il valore di taleimpostazione è raw-in-base64-out, l'interfaccia della riga di comando prevede che il file contengacontenuto binario non elaborato.

cli_follow_urlparam

Questa caratteristica è disponibile solo nella AWS CLI versione 1.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 1. Non è disponibilese si esegue AWS CLI versione 2.

Specifica se l'interfaccia a riga di comando tenta di seguire i collegamenti URL nei parametri della rigadi comando che iniziano con http:// o https://. Quando abilitato, il contenuto recuperato vieneutilizzato come valore del parametro anziché come URL.• true – Questo è il valore predefinito. Se specificato, vengono recuperati i parametri di stringa

che iniziano con http:// o https:// e i contenuti scaricati vengono utilizzati come valore diparametro per il comando.

• false – se specificato la CLI non considera i valori della stringa di parametro che iniziano conhttp:// o https:// in modo diverso rispetto alle altre stringhe.

Questa voce non dispone di una variabile di ambiente o di un'opzione della riga di comandoequivalente.

cli_follow_urlparam = false

cli_pager

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Specifica il programma pager utilizzato per l'output. Per impostazione predefinita, AWS CLI versione 2restituisce tutto l'output attraverso il programma pager predefinito del sistema operativo.

Può essere sostituita dalla variabile di ambiente AWS_PAGER.

cli_pager=less

Per disabilitare l'uso di un programma di paging esterno, imposta la variabile su una stringa vuota,come mostrato nel seguente esempio.

53

Page 59: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

cli_pager=

cli_timestamp_format

Specifica il formato dei valori di timestamp inclusi nell'output. Puoi specificare uno dei seguenti valori:• iso8601: il valore predefinito per AWS CLI versione 2. Se specificato, l'AWS CLI riformatta tutti i

timestamp in base a ISO 8601.• wire: il valore predefinito per AWS CLI versione 1. Se specificato l'AWS CLI visualizza tutti i valori di

timestamp esattamente come ricevuto nella risposta alla query HTTP.

Questa voce non dispone di una variabile di ambiente o di un'opzione della riga di comandoequivalente.

cli_timestamp_format = iso8601

credential_process (p. 82)

Specifica un comando esterno eseguito dall'interfaccia a riga di comando per generare o recuperarele credenziali di autenticazione da utilizzare per questo comando. Il comando deve restituire lecredenziali in un formato specifico. Per ulteriori informazioni sull'utilizzo di questa impostazione,consulta Credenziali di approvvigionamento con un processo esterno (p. 82).

Questa voce non dispone di una variabile di ambiente o di un'opzione della riga di comandoequivalente.

credential_process = /opt/bin/awscreds-retriever --username susan

credential_source (p. 86)

Utilizzato all'interno di istanze Amazon EC2 o container EC2 per specificare dove l'AWS CLI puòtrovare le credenziali da utilizzare per assumere il ruolo specificato con il parametro role_arn. Non èpossibile specificare sia source_profile sia credential_source nello stesso profilo.

Questo parametro può avere uno dei seguenti tre valori:• Ambiente: specifica che l'AWS CLI deve recuperare le credenziali di origine dalle variabili di

ambiente.• Ec2InstanceMetadata – Specifica che AWS CLI deve utilizzare il ruolo IAM collegato al profilo

dell'istanza EC2 per ottenere le credenziali di origine.• EcsContainer – Specifica che AWS CLI deve utilizzare il ruolo IAM collegato al container ECS come

credenziali di origine.

credential_source = Ec2InstanceMetadata

duration_seconds

Specifica la durata massima della sessione del ruolo, in secondi. Questo valore può variare da 900secondi (15 minuti) fino alla durata massima della sessione per il ruolo (massimo 43200 minuti). Sitratta di un parametro facoltativo e, per impostazione predefinita, il valore è impostato su 3600 secondi.

external_id (p. 90)

Specifica un identificatore univoco che viene utilizzato da terze parti per assumere un ruolo negliaccount dei relativi clienti. Questo è mappato al parametro ExternalId nell'operazione AssumeRole.Questo parametro è necessario solo se la policy di attendibilità per il ruolo specifica un valore perExternalId. Per ulteriori informazioni, consulta Come utilizzare un gateway esterno quando siconcede a una terza parte l'accesso alle proprie risorse AWS nella Guida per l'utente di IAM.

54

Page 60: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

max_attempts (tentativi_max) (p. 78)

Specifica un valore di un numero massimo di tentativi che il gestore di tentativi AWS CLI utilizza, in cuila chiamata iniziale viene conteggiata per il valore max_attempts fornito.

Puoi sostituire questo valore utilizzando la variabile di ambiente AWS_MAX_ATTEMPTS.

max_attempts = 3

mfa_serial (p. 88)

Il numero di identificazione del dispositivo MFA da utilizzare durante l'assunzione di un ruolo. Èobbligatorio specificare questo valore se la policy di attendibilità del ruolo assunto include unacondizione che richiede l'autenticazione MFA. Il valore può essere un numero di serie per undispositivo hardware (ad esempio GAHT12345678) o un Amazon Resource Name (ARN) per undispositivo MFA virtuale (ad esempio arn:aws:iam::123456789012:mfa/user).

output (p. 46)

Specifica il formato di output predefinito per i comandi richiesti utilizzando questo profilo. Puoispecificare uno qualsiasi dei valori seguenti:• json (p. 119): l'output è formattato come una stringa JSON.• yaml (p. 120): l'output è formattato come una stringa YAML. (Disponibile solo nella AWS CLI

versione 2.)• yaml-stream (p. 120) – L' output viene trasmesso in streaming e formattato come stringa YAML.

Lo streaming consente una gestione più rapida dei tipi di dati di grandi dimensioni. (Disponibile solonella AWS CLI versione 2.)

• text (p. 121): l'output è formattato come più righe di valori di stringa separati da tabulazioni. Ciòpuò essere utile per passare l'output a un processore di testi, come grep, sed o awk.

• table (p. 124): l'output è formattato come una tabella utilizzando i caratteri +|- per formare i bordidelle celle. In genere presenta le informazioni in un formato comprensibile molto più semplice daleggere rispetto ad altri, ma non altrettanto utile a livello programmatico.

Può essere sostituita dalla variabile di ambiente AWS_DEFAULT_OUTPUT o dall'opzione della riga dicomando --output.

output = table

parameter_validation

Specifica se il client dell'AWS CLI tenta di convalidare i parametri prima di inviarli all'endpoint delservizio AWS.• true – Questo è il valore predefinito. Se specificato, l'interfaccia a riga di comando esegue la

convalida locale dei parametri della riga di comando.• false: se specificato, l'interfaccia a riga di comando non convalida i parametri della riga di comando

prima di inviarli all'endpoint del servizio AWS.

Questa voce non dispone di una variabile di ambiente o di un'opzione della riga di comandoequivalente.

parameter_validation = false

region (p. 46)

Specifica la regione AWS predefinita a cui inviare le richieste per i comandi richiesti tramite questoprofilo.

55

Page 61: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

• Puoi specificare i codici di regione disponibili per il servizio scelto, come elencato in Regioni edendpoint AWS in Riferimenti generali di Amazon Web Services.

• aws_global consente di specificare l'endpoint globale per i servizi che supportano un endpointglobale oltre agli endpoint regionali, ad esempio AWS Security Token Service (AWS STS) e AmazonSimple Storage Service (Amazon S3).

È possibile sovrascrivere questo valore utilizzando la variabile di ambiente AWS_DEFAULT_REGION ol'opzione della riga di comando --region.

region = us-west-2

retry_mode (p. 78)

Specifica la modalità di ripetizione utilizzata da AWS CLI. Sono disponibili tre modalità di ripetizione:legacy (impostazione predefinita), standard e adattiva. Per ulteriori informazioni sui tentativi, consultareAWS CLI nuovi tentativi (p. 78).

Puoi sostituire questo valore utilizzando la variabile di ambiente AWS_RETRY_MODE.

retry_mode = standard

role_arn (p. 86)

Specifica l'Amazon Resource Name (ARN) di un ruolo IAM che desideri utilizzare per eseguire icomandi dell'AWS CLI. Puoi anche specificare uno dei seguenti parametri per identificare le credenzialiche dispongono dell'autorizzazione per assumere questo ruolo:• source_profile• credential_source

role_arn = arn:aws:iam::123456789012:role/role-name

role_session_name (p. 90)

Specifica il nome da associare alla sessione del ruolo. Questo valore viene fornito alparametro RoleSessionName quando AWS CLI chiama l'operazione AssumeRole e diventaparte dell'ARN utente del ruolo assunto: – arn:aws:sts::123456789012:assumed-role/role_name/role_session_name . Si tratta di un parametro facoltativo. Se non fornisciquesto valore, viene automaticamente generato un nome della sessione. Questo nome vienevisualizzato nei log di AWS CloudTrail per le voci associate a questa sessione.

role_session_name = maria_garcia_role

source_profile (p. 86)

Specifica un profilo denominato con credenziali a lungo termine che l'AWS CLI può utilizzareper assumere un ruolo specificato con il parametro role_arn. Non è possibile specificare siasource_profile sia credential_source nello stesso profilo.

source_profile = production-profile

sso_account_id (p. 62) (Disponibile solo nella AWS CLI versione 2.)

L'ID account AWS che contiene il ruolo IAM con l'autorizzazione che si desidera concedere all'utenteAWS SSO associato.

Questa impostazione non dispone di una variabile di ambiente o opzione della riga di comando.

56

Page 62: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

sso_account_id = 123456789012

sso_region (p. 62) (Disponibile solo nella AWS CLI versione 2.)

Specifica la regione AWS geografica che contiene l'host del portale AWS SSO. Questa è separata epuò essere una regione diversa rispetto al parametro region predefinito della CLI.

Questa impostazione non dispone di una variabile di ambiente o opzione della riga di comando.

aws_sso_region = us_west-2

sso_role_name (p. 62) (Disponibile solo nella AWS CLI versione 2.)

Specifica il nome descrittivo del ruolo IAM che definisce le autorizzazioni dell'utente quando si utilizzaquesto profilo.

Questa impostazione non dispone di una variabile di ambiente o opzione della riga di comando.

sso_role_name = ReadAccess

sso_start_url (p. 62) (Disponibile solo nella AWS CLI versione 2.)

Specifica l'URL che punta al portale utente AWS SSO dell'organizzazione. AWS CLI utilizza questoURL per stabilire una sessione con il servizio AWS SSO per autenticare i suoi utenti.

Questa impostazione non dispone di una variabile di ambiente o opzione della riga di comando.

sso_start_url = https://my-sso-portal.awsapps.com/start

sts_regional_endpoints

Specificare il modo in cui AWS CLI determina l'endpoint del servizio AWS utilizzato dal client AWS CLIper comunicare con AWS Security Token Service (AWS STS).• Il valore predefinito per AWS CLI versione 1 è legacy.• Il valore predefinito per AWS CLI versione 2 è regional.

È possibile specificare uno dei due valori:• legacy – Utilizza l'endpoint STS globale, sts.amazonaws.com, per le seguenti regioni AWS:ap-northeast-1, ap-south-1, ap-southeast-1, ap-southeast-2, aws-global, ca-central-1, eu-central-1, eu-north-1, eu-west-1, eu-west-2, eu-west-3, sa-east-1, us-east-1, us-east-2, us-west-1 e us-west-2. Tutte le altre regioni utilizzanoautomaticamente il rispettivo endpoint regionale.

• regional – AWS CLI utilizza sempre l’endpoint AWS STS per la regione attualmente configurata.Ad esempio, se il client è configurato per usare us-west-2, tutte le chiamate a AWS STS vengonoeffettuate all'endpoint regionale sts.us-west-2.amazonaws.com anziché all'endpoint globalests.amazonaws.com. Per inviare una richiesta all'endpoint globale mentre questa impostazione èabilitata, è possibile impostare l'area geografica su aws-global.

Questa impostazione può essere sovrascritta utilizzando la variabile di ambienteAWS_STS_REGIONAL_ENDPOINTS. Non è possibile impostare questo valore come parametro dellariga di comando.

57

Page 63: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

web_identity_token_file (p. 90)

Specifica il percorso di un file che contiene un token di accesso OAuth 2.0 o un token ID diconnessione OpenID fornito da un provider di identità. L'AWS CLI carica il contenuto di questo file e lopassa come argomento WebIdentityToken all'operazione AssumeRoleWithWebIdentity.

tcp_keepalive

Specifica se il client AWS CLI utilizza pacchetti keep-alive TCP.

Questa voce non dispone di una variabile di ambiente o di un'opzione della riga di comandoequivalente.

tcp_keepalive = false

Impostazioni dei comandi S3 personalizzatiAmazon S3 supporta diverse impostazioni che consentono di configurare il modo in cui l'AWS CLI eseguele operazioni Amazon S3. Alcune si applicano a tutti i comandi S3 in entrambi gli spazi dei nomi s3api es3. Altri sono specifici per i comandi S3 "personalizzati" che eseguono l'astrazione di operazioni comuni eche prevedono più di una mappatura uno-a-uno a un'operazione API. I comandi di trasferimento aws s3cp, sync, mv e rm dispongono di impostazioni aggiuntive che puoi utilizzare per controllare i trasferimentiS3.

Tutte queste opzioni possono essere configurate specificando l'impostazione nidificata s3 nel file config.A ogni impostazione viene quindi applicato il rientro nella riga.

Note

Queste impostazioni sono completamente facoltative. Dovresti essere in grado di utilizzare icomandi di trasferimento aws s3 senza configurare tali impostazioni, le quali vengono resedisponibili per consentirti di ottenere prestazioni ottimizzate o prendere in considerazionel'ambiente specifico in cui esegui questi comandi aws s3.

Le impostazioni seguenti si applicano a qualsiasi comando S3 negli spazi dei nomi s3 o s3api.

addressing_style

Specifica quale stile di indirizzamento utilizzare. Controlla se il nome del bucket è nell'hostname o inuna parte dell'URL. I valori validi sono: path , virtual e auto. Il valore predefinito è auto.

Sono disponibili due stili di costruzione di un endpoint S3. Il primo è denominatovirtual e include il nome del bucket come parte del nome host. Ad esempio: –https://bucketname.s3.amazonaws.com . In alternativa, con lo stile path, si tratta il nome delbucket come un percorso nell'URI, ad esempio https://s3.amazonaws.com/bucketname. Ilvalore predefinito nell'interfaccia a riga di comando è di utilizzare auto, che tenta di utilizzare lo stilevirtual laddove possibile, ma passerà allo stile path quando richiesto. Se non è compatibile con ilDNS, il nome del bucket non può ad esempio essere parte del nome host e deve trovarsi nel percorso.Con auto, l'interfaccia a riga di comando rileverà la condizione e passerà automaticamente allo stilepath. Se imposti lo stile di indirizzamento su path, dovrai accertarti che la regione AWS configuratainAWS CLI corrisponda alla regione del bucket.

payload_signing_enabled

Specifica se applicare la firma SHA256 ai payload sigv4. Per impostazione predefinita, è disabilitataper i caricamenti in streaming (UploadPart e PutObject) quando si usa HTTPS. Per impostazionepredefinita, è configurata su false per i caricamenti in streaming (UploadPart e PutObject), masolo se è presente ContentMD5 (generato per impostazione predefinita) e l'endpoint utilizza HTTPS.

Se impostata su true, le richieste S3 ricevono un'ulteriore convalida dei contenuti sotto forma di unchecksum SHA256, calcolato automaticamente e incluso nella firma di richiesta. Se impostata su

58

Page 64: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

false, il checksum non viene calcolato. Può essere utile disabilitare questa impostazione per ridurre ilsovraccarico in termini di prestazioni dovuto al calcolo del checksum.

use_dualstack_endpoint

Utilizza il doppio endpoint Amazon S3 / IPv4 IPv6 per tutti i comandi s3 e s3api. Il valore predefinito èfalse. Questa impostazione e l'impostazione use_accelerate_endpoint si escludono a vicenda.

Se impostato su true, AWS CLI indirizza tutte le richieste Amazon S3 all'endpoint IPv4 / IPv6 doppioper la regione configurata.

use_accelerate_endpoint

Utilizza l'endpoint di accelerazione Amazon S3 per tutti i comandi s3 e s3api. Il valore predefinito èfalse. Questa impostazione e l'impostazione use_dualstack_endpoint si escludono a vicenda.

Se impostato su true, AWS CLI indirizza tutte le richieste Amazon S3 all'endpoint S3 Acceleratein s3-accelerate.amazonaws.com. Per utilizzare questo endpoint, devi abilitare l'utilizzodi S3 Accelerate per il bucket. Tutte le richieste vengono inviate utilizzando lo stile virtualedi indirizzamento al bucket: – my-bucket.s3-accelerate.amazonaws.com . Eventualirichieste ListBuckets, CreateBucket e DeleteBucket non vengono inviate all'endpointdi accelerazione S3 in quanto tale endpoint non supporta tali operazioni. Questo comportamentopuò essere configurato anche se il parametro --endpoint-url è impostato su https://s3-accelerate.amazonaws.com o http://s3-accelerate.amazonaws.com per qualsiasicomando s3 o s3api.

Le impostazioni seguenti si applicano solo ai comandi nel set di comandi dello spazio dei nomi s3:

max_bandwidth

Specifica la larghezza di banda massima che può essere utilizzata per il caricamento e il download deidati da e verso Amazon S3. Il valore predefinito è senza limiti.

Questa impostazione limita la larghezza di banda massima che i comandi S3 possono utilizzare pertrasferire i dati da e verso Amazon S3. Tale valore viene applicato solo ai caricamenti e ai download,non alle operazioni di copia o eliminazione. Il valore viene espresso in byte al secondo. Il valore puòessere specificato come segue:• Come un intero, 1048576 imposta ad esempio l'utilizzo massimo della larghezza di banda su 1 MB

al secondo.• Come un intero seguito da un suffisso di velocità, Puoi specificare i suffissi di velocità utilizzando:KB/s, MB/s o GB/s. Ad esempio, 300KB/s, 10MB/s.

In generale, ti consigliamo di provare innanzitutto a ridurre il consumo di larghezza di banda riducendomax_concurrent_requests. Se ciò non è sufficiente per limitare il consumo di larghezza dibanda in modo adeguato alla velocità desiderata, puoi utilizzare l'impostazione max_bandwidth perlimitarlo ulteriormente. Ciò accade perché max_concurrent_requests controlla il numero di threadattualmente in esecuzione. Se invece prima si abbassa max_bandwidth ma si lascia un'impostazionemax_concurrent_requests alta, ciò può comportare che i thread debbano attendere inutilmente.Ciò può portare a un consumo eccessivo di risorse e a timeout di connessione.

max_concurrent_requests

Specifica il numero massimo di richieste simultanee. Il valore predefinito è 10.

I comandi di trasferimento aws s3 sono a più thread. In qualsiasi momento, possono essereeseguite più richieste Amazon S3. Quando, ad esempio, utilizzi il comando aws s3 cp localdirs3://bucket/ --recursive per caricare i file in un bucket S3, l'AWS CLI può caricare ifile localdir/file1, localdir/file2 e localdir/file3 in parallelo. L'impostazionemax_concurrent_requests specifica il numero massimo di operazioni di trasferimento chepossono essere eseguite nello stesso momento.

59

Page 65: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpostazioni supportate del file config

Potrebbe essere necessario modificare questo valore per vari motivi:• Riduzione del valore – In alcuni ambienti il valore predefinito di 10 richieste simultanee può

sovraccaricare un sistema. Questo può causare un timeout di connessione o una riduzione dellavelocità di risposta del sistema. Se si riduce questo valore, i comandi di trasferimento S3 utilizzanoun numero minore di risorse. Il completamento dei trasferimenti S3 può tuttavia richiedere più tempo.La riduzione di questo valore potrebbe essere necessaria se utilizzi uno strumento per limitare lalarghezza di banda.

• Aumento del valore – In alcuni scenari potrebbe essere necessario che i trasferimenti S3 venganocompletati il più rapidamente possibile, utilizzando la quantità di larghezza di banda di retenecessaria. In questo scenario, il numero predefinito di richieste simultanee potrebbe non esseresufficiente per utilizzare tutta la larghezza di banda di rete disponibile. L'aumento di questo valorepuò migliorare il tempo necessario per completare un trasferimento S3.

max_queue_size

Specifica il numero massimo di attività nella coda. Il valore predefinito è 1000.

utilizza internamente un modello in cui accoda le attività AWS CLI che vengono quindi eseguite daiconsumatori, i cui numeri sono limitati da Amazon S3.max_concurrent_requests Un'attività vienegeneralmente mappata a una singola operazione S3. Ad esempio, un'attività potrebbe essere unPutObjectTask, un GetObjectTask o un UploadPartTask. La velocità con cui le attività vengonoaggiunte alla coda può essere molto più veloce rispetto a quella con cui i consumatori terminano leattività. Per evitare la crescita illimitata, esiste un limite specifico per la dimensione della coda delleattività. Questa impostazione consente di modificare il valore del numero massimo.

In generale, non è necessario modificare questa impostazione, che corrisponde anche al numerodi attività che l'interfaccia a riga di comando riconosce come da eseguire. Ciò significa che perimpostazione predefinita l'interfaccia a riga di comando (CLI) è in grado di visualizzare solo 1000attività. Se si aumenta questo valore, l'interfaccia a riga di comando è in grado di conoscere piùrapidamente il numero totale di attività necessarie, presupponendo che la velocità di accodamento siapiù rapida di quella di completamento delle attività. Il compromesso è che un valore max_queue_sizemaggiore richiede più memoria.

multipart_chunksize

Specifica la dimensione dei blocchi che l'AWS CLI utilizza per i trasferimenti in più parti dei singoli file.Il valore predefinito è 8 MB, con un minimo di 5 MB.

Quando un trasferimento di file supera il valore multipart_threshold, l'interfaccia a riga dicomando divide il file in blocchi di queste dimensioni. Questo valore può essere specificato utilizzandola stessa sintassi di multipart_threshold, come numero di byte sotto forma di intero o utilizzandouna dimensione e un suffisso.

multipart_threshold

Specifica la soglia della dimensione utilizzata dall'AWS CLI per i trasferimenti in più parti dei singoli file.Il valore predefinito è 8 MB.

Durante il caricamento, il download o la copia di un file, i comandi S3 diventano operazioni in più partise il file supera questa dimensione. Puoi specificare questo valore in uno dei due modi seguenti:• Dimensione dei file in byte. Ad esempio, 1048576.• Dimensione dei file con un suffisso per la dimensione. Puoi utilizzare KB, MB, GB o TB. Ad esempio:10MB – 1GB.

Note

S3 può imporre vincoli per i valori validi che possono essere utilizzati per operazioni in piùparti. Per ulteriori informazioni, consulta la documentazione del caricamento in più parti S3nella Guida per lo sviluppatore di Amazon Simple Storage Service.

60

Page 66: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteProfili denominati

Queste impostazioni vengono tutte configurate in una chiave s3 di livello superiore nel file config, comemostrato nell'esempio seguente per il profilo development:

[profile development]s3 = max_concurrent_requests = 20 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 50MB/s use_accelerate_endpoint = true addressing_style = path

Profili denominatiUn profilo denominato è una raccolta di impostazioni e credenziali che puoi applicare a un comando AWSCLI. Quando specifichi un profilo per eseguire un comando, le impostazioni e le credenziali vengonoutilizzate per eseguire il comando. Puoi specificare un profilo che è "predefinito" e viene utilizzato quandoa nessun profilo viene fatto riferimento esplicitamente. Altri profili hanno nomi che è possibile specificarecome parametro della riga di comando per i singoli comandi. In alternativa, puoi specificare un profilo in unavariabile di ambiente (AWS_PROFILE) (p. 68) che sostituisce essenzialmente il profilo predefinito per icomandi eseguiti in quella sessione.

AWS CLI supporta l'utilizzo di più profili denominati archiviati nei file config e credentials. Puoiconfigurare profili aggiuntivi utilizzando aws configure con l'opzione --profile o aggiungendo voci aifile config e credentials.

L'esempio seguente mostra un file credentials con due profili. Il primo [default] viene utilizzato quandoesegui un comando CLI senza alcun profilo. Il secondo viene utilizzato quando esegui un comando CLI conil parametro --profile user1.

~/.aws/credentials (Linux e Mac) o %USERPROFILE%\.aws\credentials (Windows)

[default]aws_access_key_id=AKIAIOSFODNN7EXAMPLEaws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user1]aws_access_key_id=AKIAI44QH8DHBEXAMPLEaws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

Ogni profilo utilizza credenziali diverse, forse di due utenti IAM diversi, e può specificare anche regioniAWS e formati di output differenti.

~/.aws/config (Linux e Mac) o %USERPROFILE%\.aws\config (Windows)

[default]region=us-west-2output=json

[profile user1]region=us-east-1output=text

Important

Il file credentials utilizza un formato di denominazione diverso dal file config dell'interfacciaa riga di comando per i profili denominati. Includi il prefisso "profile" solo quando configuri un

61

Page 67: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo dei profili con l'AWS CLI

profilo denominato nel file config. Non utilizzare la parola profile durante la creazione di unavoce nel file credentials.

Utilizzo dei profili con l'AWS CLIPer usare un profilo denominato, aggiungi l'opzione --profile profile-name al comando. L'esempioseguente elenca tutte le istanze Amazon EC2 che utilizzano le credenziali e le impostazioni definite nelprofilo user1 dei file di esempio precedenti.

$ aws ec2 describe-instances --profile user1

Per utilizzare un profilo denominato per più comandi, puoi evitare di specificare il profilo in ogni comandoimpostando la variabile di ambiente AWS_PROFILE nella riga di comando.

Linux o macOS

$ export AWS_PROFILE=user1

Windows

C:\> setx AWS_PROFILE user1

Se si utilizza set per impostare una variabile di ambiente, il valore utilizzato viene modificato fino altermine della sessione del prompt dei comandi corrente o finché non imposti la variabile su un valorediverso.

L'uso di setx per impostare una variabile di ambiente comporta la modifica del valore in tutte le shelldi comando create dopo l'esecuzione del comando. Non influisce su alcuna shell di comando già inesecuzione nel momento in cui si esegue il comando. Chiudere e riavviare la shell dei comandi pervisualizzare gli effetti della modifica.

L'impostazione della variabile di ambiente modifica il profilo di default fino al termine della sessionedella shell o finché non si imposta la variabile su un valore diverso. Puoi rendere le variabili di ambientepersistenti per le sessioni future inserendole nello script di avvio della shell. Per ulteriori informazioni, vediVariabili di ambiente per configurare l'AWS CLI. (p. 68).

Note

Se specifichi un profilo con --profile su un singolo comando, l'impostazione specificata nellavariabile di ambiente viene sostituita solo per quel comando.

Configurazione di AWS CLI per utilizzare AWSSingle Sign-On

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Se l'organizzazione utilizza AWS Single Sign-On (AWS SSO), gli utenti possono accedere a MicrosoftActive Directory o a una directory AWS SSO integrata o un altro iDP connesso a AWS SSO ed essere

62

Page 68: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione di un profilo

denominato per utilizzare AWS SSO

associati a un ruolo AWS Identity and Access Management (IAM) che consente di eseguire comandi AWSCLI. Indipendentemente da quale iDP usi, AWS SSO astrae quelle distinzioni e tutto funziona con l'AWSCLI come descritto di seguito. Ad esempio, è possibile connettere Microsoft Azure AD come descrittonell'articolo del blog La futura evoluzione di AWS Single Sign-On

Per ulteriori informazioni su AWS SSO, consulta Guida per l'utente di AWS Single Sign-On.

In questo argomento viene descritto come configurare l'AWS CLI per autenticare l'utente con AWS SSOper ottenere credenziali a breve termine per l'esecuzione di comandi AWS CLI. Include le seguenti sezioni:

• Configurazione di un profilo denominato per utilizzare AWS SSO (p. 63): come creare e configurareprofili che utilizzano AWS SSO per l'autenticazione e la mappatura a un ruolo IAM per autorizzazioniAWS.

• Utilizzo di un profilo denominato abilitato AWS SSO (p. 66): come effettuare l'accesso a AWS SSOdall'interfaccia della riga di comando e utilizzare le credenziali temporanee AWS fornite per eseguirecomandi AWS CLI.

Configurazione di un profilo denominato per utilizzareAWS SSOPuoi configurare uno o più profili denominati (p. 61) AWS CLI per utilizzare un ruolo da AWS SSO. Puoicreare e configurare più profili e configurare ciascuno di essi per utilizzare un portale utente AWS SSOdiverso o un ruolo definito da SSO.

Puoi configurare il profilo nei seguenti modi:

• Automaticamente (p. 63), usando il comando aws configure sso• Manualmente (p. 65), modificando il file .aws/config che memorizza i profili denominati.

Configurazione automaticaPuoi aggiungere un profilo abilitato AWS SSO a AWS CLI eseguendo il comando seguente, fornendo l'URLdi avvio AWS SSO e la regione AWS che ospita la directory AWS SSO.

$ aws configure ssoSSO start URL [None]: [None]: https://my-sso-portal.awsapps.com/startSSO region [None]:us-east-1

AWS CLI tenta di aprire il browser predefinito e di iniziare il processo di accesso per l'account AWS SSO.

SSO authorization page has automatically been opened in your default browser.Follow the instructions in the browser to complete this authorization request.

Se AWS CLI non è in grado di aprire il browser, viene visualizzato il seguente messaggio con le istruzionisu come avviare manualmente il processo di accesso.

Using a browser, open the following URL: https://my-sso-portal.awsapps.com/verify

and enter the following code:QCFK-N451

63

Page 69: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione di un profilo

denominato per utilizzare AWS SSO

AWS SSO utilizza il codice per associare la sessione AWS SSO alla sessione AWS CLI corrente. Lapagina del browser AWS SSO visualizza una richiesta di accesso con le credenziali dell'account AWSSSO. Ciò consente a AWS CLI (tramite le autorizzazioni associate all'account AWS SSO) di recuperare evisualizzare gli account e i ruoli AWS che l'utente è autorizzato a utilizzare con AWS SSO.

Successivamente, AWS CLI visualizza gli account AWS disponibili per l'utilizzo. Se sei autorizzato autilizzare un solo account, allora questo viene selezionato automaticamente da AWS CLI e la richiestaviene ignorata. Gli account AWS disponibili per l'utilizzo sono determinati dalla configurazione utente inAWS SSO.

There are 2 AWS accounts available to you.> DeveloperAccount, [email protected] (123456789011) ProductionAccount, [email protected] (123456789022)

Utilizza i tasti freccia per selezionare l'account che desideri utilizzare con questo profilo. Il carattere ">" sullasinistra punta alla scelta corrente. Premi INVIO per effettuare la selezione.

Quindi, AWS CLI conferma la scelta dell'account e visualizza i ruoli IAM disponibili nell'account selezionato.Se l'account selezionato elenca un solo ruolo, questo viene selezionato automaticamente da AWS CLI e larichiesta viene ignorata. I ruoli disponibili per l'utilizzo sono determinati dalla configurazione utente in AWSSSO.

Using the account ID 123456789011There are 2 roles available to you.> ReadOnly FullAccess

Come in precedenza, utilizza i tasti freccia per selezionare il ruolo IAM che desideri utilizzare con questoprofilo. Il carattere ">" sulla sinistra punta alla scelta corrente. Premi <INVIO> per effettuare la selezione.

AWS CLI conferma la selezione del ruolo.

Using the role name "ReadOnly"

Ora puoi completare la configurazione del profilo, specificando il formato di output predefinito (p. 55),la regione AWS predefinita (p. 55) a cui inviare i comandi e fornendo un nome per il profilo (p. 47)in modo da poter fare riferimento a questo profilo tra tutti quelli definiti nel computer locale. Nell'esempioseguente l'utente immette una regione predefinita, un formato di output predefinito e il nome del profilo. Inalternativa, puoi premere <ENTER> per selezionare i valori predefiniti visualizzati tra parentesi quadre. Ilnome profilo suggerito è il numero ID account seguito da un carattere di sottolineatura seguito dal nomeruolo.

CLI default client Region [None]: us-west-2<ENTER>CLI default output format [None]: json<ENTER>CLI profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>

Note

Se specifichi default come nome profilo, questo diventa il profilo utilizzato ogni volta che siesegue un comando AWS CLI senza specificare il nome del profilo.

Un messaggio finale descrive la configurazione del profilo completata.

Per utilizzare questo profilo, specifica il nome del profilo utilizzando --profile, come illustrato:

aws s3 ls --profile my-dev-profile

64

Page 70: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione di un profilo

denominato per utilizzare AWS SSO

Le voci di esempio precedenti restituirebbero un profilo denominato in ~/.aws/config il cui aspetto èsimile a quello dell'esempio seguente:

[profile my-dev-profile]sso_start_url = https://my-sso-portal.awsapps.com/startsso_region = us-east-1sso_account_id = 123456789011sso_role_name = readOnlyregion = us-west-2output = json

A questo punto, disponi di un profilo che puoi utilizzare per richiedere credenziali temporanee. Utilizza ilcomando aws sso login per richiedere e recuperare di fatto le credenziali temporanee necessarie pereseguire i comandi. Per istruzioni, consulta Utilizzo di un profilo denominato abilitato AWS SSO (p. 66).

Note

Puoi inoltre eseguire un comando AWS CLI utilizzando il profilo specificato. Se non hai giàeffettuato l'accesso al portale AWS SSO, il processo di accesso viene avviato automaticamente,proprio come se avessi eseguito manualmente il comando aws sso login.

Configurazione manualePer aggiungere manualmente il supporto AWS SSO a un profilo denominato, devi aggiungere le chiavi ei valori seguenti alla definizione del profilo nel file ~/.aws/config (Linux o macOS) o %USERPROFILE%/.aws/config (Windows).

sso_start_url

L'URL che punta al portale utente AWS SSO dell'organizzazione.

sso_start_url = https://my-sso-portal.awsapps.com/start

sso_region

La regione AWS che contiene l'host del portale AWS SSO. Questa è separata e può essere unaregione diversa rispetto al parametro region CLI predefinito.

sso_region = us-west-2

sso_account_id

L'ID account AWS che contiene il ruolo IAM che desideri utilizzare con questo profilo.

sso_account_id = 123456789011

sso_role_name

Il nome del ruolo IAM che definisce le autorizzazioni dell'utente quando si utilizza questo profilo.

sso_role_name = ReadAccess

La presenza di queste chiavi identifica questo profilo come uno che utilizza AWS SSO per autenticarel'utente.

65

Page 71: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo di un profilo denominato abilitato AWS SSO

Puoi anche includere qualsiasi altra chiave e valore valido nel file .aws/config, ad esempioregion, output o s3. Tuttavia, non è possibile includere valori correlati alle credenziali, ad esempiorole_arn (p. 56) o aws_secret_access_key (p. 51). In caso contrario, AWS CLI genera un errore.

Pertanto, l'aspetto di un profilo AWS SSO tipico in .aws/config potrebbe essere simile a quellodell'esempio seguente:

[profile my-dev-profile]sso_start_url = https://my-sso-portal.awsapps.com/startsso_region = us-east-1sso_account_id = 123456789011sso_role_name = readOnlyregion = us-west-2output = json

A questo punto, disponi di un profilo che puoi utilizzare per richiedere credenziali temporanee. Tuttavia, nonpuoi ancora eseguire un comando AWS CLI service. Innanzitutto, utilizza il comando aws sso login perrichiedere e recuperare effettivamente le credenziali temporanee necessarie per eseguire i comandi. Peristruzioni, consulta la sezione successiva, Utilizzo di un profilo denominato abilitato AWS SSO (p. 66).

Utilizzo di un profilo denominato abilitato AWS SSOIn questa sezione viene descritto come utilizzare il profilo AWS SSO creato nella sezione precedente.

Accedere e ottenere credenziali temporaneeDopo aver configurato automaticamente o manualmente un profilo denominato, è possibile richiamarlo perrichiedere credenziali temporanee da AWS. Prima di poter eseguire un comando del servizio AWS CLI,devi innanzitutto recuperare e memorizzare nella cache un set di credenziali temporanee. Per ottenerequeste credenziali temporanee, esegui il comando seguente.

$ aws sso login --profile my-dev-profile

AWS CLI apre il browser predefinito e verifica l'accesso AWS SSO.

SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request.Successully logged into Start URL: https://my-sso-portal.awsapps.com/start

Se non hai già effettuato l'accesso all'account AWS SSO, devi fornire il tuo nome utente e la passwordAWS SSO.

Se AWS CLI non è in grado di aprire il browser, ti viene chiesto di aprirlo e di immette il codice specificato.

$ aws sso login --profile my-dev-profileUsing a browser, open the following URL: https://my-sso-portal.awsapps.com/verify

and enter the following code:QCFK-N451

Dopo che AWS CLI apre il browser predefinito (o l'utente apre manualmente il browser preferito) allapagina specificata, immettere il codice fornito. La pagina Web richiede quindi di inserire le credenziali AWSSSO.

66

Page 72: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo di un profilo denominato abilitato AWS SSO

Le credenziali della sessione AWS SSO vengono memorizzate nella cache e includono un timestamp discadenza. Quando le credenziali scadono, AWS CLI richiede nuovamente di eseguire l'accesso a AWSSSO.

Se le credenziali AWS SSO sono valide, vengono utilizzate da AWS CLI per recuperare in modo sicuro lecredenziali temporanee AWS per il ruolo IAM specificato nel profilo.

Welcome, you have successfully signed-in to the AWS-CLI.

Esecuzione di un comando con il profilo abilitato AWS SSOPuoi utilizzare queste credenziali temporanee per richiamare un comando AWS CLI con il profilodenominato associato. Nell'esempio seguente viene mostrato che il comando è stato eseguito in un ruoloassunto che fa parte dell'account specificato.

$ aws sts get-caller-identity --profile my-dev-profile{ "UserId": "AROA12345678901234567:[email protected]", "Account": "123456789011", "Arn": "arn:aws:sts::123456789011:assumed-role/AWSPeregrine_readOnly_12321abc454d123/[email protected]"}

Se hai effettuato l'accesso a AWS SSO e le credenziali memorizzate nella cache non sono scadute, AWSCLI rinnova automaticamente le credenziali temporanee AWS scadute quando necessario. Tuttavia, se lecredenziali AWS SSO scadono, è necessario rinnovarle esplicitamente eseguendo nuovamente l'accessoall'account AWS SSO.

$ aws s3 ls --profile my-sso-profileYour short-term credentials have expired. Please sign-in to renew your credentialsSSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request.

Puoi creare più profili denominati abilitati AWS SSO ciascuno dei quali punta a un account o ruolo AWSdiverso. Puoi inoltre utilizzare il comando aws sso login su più profili alla volta. Se uno di essi condivide lostesso account utente AWS SSO, devi eseguire l'accesso a tale account utente AWS SSO solo una volta;tutti condividono quindi un singolo set di credenziali AWS SSO memorizzate nella cache.

# The following command retrieves temporary credentials for the AWS account and role # specified in one named profile. If you are not yet signed in to AWS SSO or your # cached credentials have expired, it opens your browser and prompts you for your # AWS SSO user name and password. It then retrieves AWS temporary credentials for# the IAM role associated with this profile.$ aws sso login --profile my-first-sso-profile

# The next command retrieves a different set of temporary credentials for the AWS # account and role specified in the second named profile. It does not overwrite or # in any way compromise the first profile's credentials. If this profile specifies the# same AWS SSO portal, then it uses the SSO credentials that you retrieved in the # previous command. The AWS CLI then retrieves AWS temporary credentials for the# IAM role associated with the second profile. You don't have to sign in to # AWS SSO again.$ aws sso login --profile my-second-sso-profile

# The following command lists the Amazon EC2 instances accessible to the role # identified in the first profile.$ aws ec2 describe-instances --profile my-first-sso-profile

# The following command lists the Amazon EC2 instances accessible to the role

67

Page 73: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVariabili di ambiente

# identified in the second profile.$ aws ec2 describe-instances --profile my-second-sso-profile

Disconnessione dalle sessioni AWS SSOQuando hai finito di utilizzare i profili abilitati AWS SSO, puoi scegliere di non fare nulla e lasciare scaderele credenziali temporanee AWS e le credenziali AWS SSO. Tuttavia, puoi anche scegliere di eseguireil comando seguente per eliminare immediatamente tutte le credenziali memorizzate nella cache nellacartella della cache delle credenziali SSO e tutte le credenziali temporanee AWS che erano basate sullecredenziali AWS SSO. Ciò rende tali credenziali non disponibili per l'utilizzo per qualsiasi comando futuro.

$ aws sso logoutSuccessfully signed out of all SSO profiles.

Se in seguito desideri eseguire comandi con uno dei profili abilitati AWS SSO, devi eseguire nuovamente ilcomando aws sso login (vedi la sezione precedente) e specificare il profilo da utilizzare.

Variabili di ambiente per configurare l'AWS CLI.Le variabili di ambiente offrono un altro modo per specificare le opzioni di configurazione e le credenziali epossono essere utili per la creazione di script o l'impostazione temporanea di un profilo denominato comeprofilo di default.

Note

Non è possibile specificare l'autenticazione AWS Single Sign-On (AWS SSO) utilizzando variabilidi ambiente. È invece necessario utilizzare un profilo denominato nel file di configurazionecondiviso .aws/config. Per ulteriori informazioni, consulta Configurazione di AWS CLI perutilizzare AWS Single Sign-On (p. 62).

Precedenza delle opzioni

• Se specifichi un'opzione utilizzando una delle variabili di ambiente descritte in questo argomento, questasostituisce qualsiasi valore caricato da un profilo nel file di configurazione.

• Se specifichi un'opzione utilizzando un parametro della riga di comando dell'interfaccia a riga dicomando, questa sostituisce qualsiasi valore della variabile di ambiente corrispondente o di un profilo nelfile di configurazione.

Per ulteriori informazioni sulla precedenza e su come l'AWS CLI determina le credenziali da utilizzare,consulta Impostazioni di configurazione e precedenza (p. 47).

Argomenti• Come impostare le variabili di ambiente (p. 68)• Variabili di ambiente AWS CLI supportate (p. 69)

Come impostare le variabili di ambienteL'esempio seguente mostra come configurare le variabili di ambiente per l'utente predefinito.

Linux o macOS

$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

68

Page 74: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVariabili di ambiente AWS CLI supportate

$ export AWS_DEFAULT_REGION=us-west-2

L'impostazione della variabile di ambiente modifica il valore utilizzato fino al termine della sessionedella shell o finché non imposti la variabile su un valore diverso. Puoi rendere le variabili persistenti perle sessioni future impostandole nello script di avvio della shell.

Windows Command Prompt

C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLEC:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYC:\> setx AWS_DEFAULT_REGION us-west-2

Se si utilizza set per impostare una variabile di ambiente, il valore utilizzato viene modificato fino altermine della sessione del prompt dei comandi corrente o finché non imposti la variabile su un valorediverso. Se si utilizza setx per impostare una variabile di ambiente, il valore utilizzato viene modificatonella sessione del prompt dei comandi corrente e in tutte le sessioni del prompt dei comandi createdopo l'esecuzione del comando. Ciò non ha alcun impatto su altre shell di comando già in esecuzionequando esegui il comando.

PowerShell

PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"

Se imposti una variabile di ambiente al prompt PowerShell come mostrato negli esempi precedenti,il valore viene salvato solo per la durata della sessione corrente. Per rendere l'impostazione dellavariabile di ambiente persistente in tutte le sessioni di PowerShell e del prompt dei comandi, archivialautilizzando l'applicazione System (Sistema) nel Control Panel (Pannello di controllo). In alternativa,puoi impostare la variabile per tutte le sessioni PowerShell future aggiungendola al profilo PowerShell.Consulta la documentazione di PowerShell per ulteriori informazioni sull'archiviazione delle variabili diambiente o sul loro salvataggio persistente nelle sessioni.

Variabili di ambiente AWS CLI supportateL'AWS CLI supporta le variabili di ambiente elencate di seguito.

AWS_ACCESS_KEY_ID

Specifica una chiave di accesso AWS associata a un utente o ruolo IAM.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profiloaws_access_key_id. Non puoi specificare l'ID chiave di accesso utilizzando un'opzione della riga dicomando.

AWS_CA_BUNDLE

Specifica il percorso di un bundle di certificati da utilizzare per la convalida dei certificati HTTPS.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profilo ca_bundle.Puoi sostituire questa variabile di ambiente utilizzando il parametro della riga di comando --ca-bundle.

AWS_CLI_AUTO_PROMPT

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

69

Page 75: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVariabili di ambiente AWS CLI supportate

Abilita il prompt automatico per AWS CLI versione 2. È possibile utilizzare due impostazioni:• on utilizza la modalità di prompt automatico completa ogni volta che tenti di eseguire un comandoaws. Questo include la pressione di INVIO dopo un comando completo o un comando incompleto.

aws_cli_auto_prompt=on

• on-partial utilizza la modalità di prompt automatico parziale. Se un comando è incompleto o nonpuò essere eseguito a causa di errori di convalida lato client, viene utilizzato il prompt automatico.Questa modalità è particolarmente utile se si dispone di script preesistenti, runbook o se si desideraessere invitati automaticamente per i comandi con cui non si ha familiarità anziché su richiesta perogni comando.

aws_cli_auto_prompt=on-partial

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profilocli_auto_prompt (p. 52). Puoi sostituire questa variabile di ambiente utilizzando i parametridella riga di comando --cli-auto-prompt (p. 72) e --no-cli-auto-prompt (p. 73).

Per informazioni sulla funzionalità di prompt automatico di AWS CLI versione 2, consulta Impostazionedi AWS CLI in modo che richieda i comandi (p. 115).

AWS_CLI_FILE_ENCODING

Solo AWS CLI versione 2 Specifica la codifica utilizzata per i file di testo. Per impostazione predefinita,la codifica corrisponde alle impostazioni locali. Per impostare una codifica diversa dalle impostazionilocali, utilizzare la variabile di ambiente aws_cli_file_encoding. Ad esempio, se si utilizzaWindows con la codifica predefinita CP1252, l'impostazione aws_cli_file_encoding=UTF-8imposta la CLI per aprire i file di testo utilizzando UTF-8.

AWS_CONFIG_FILE

Specifica la posizione del file utilizzato da AWS CLI per archiviare i profili di configurazione. Il percorsopredefinito è ~/.aws/config.

Non è possibile specificare questo valore in un'impostazione profilo denominato o utilizzando unparametro della riga di comando.

AWS_DEFAULT_OUTPUT (p. 46)

Specifica il formato di output (p. 118) da utilizzare.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profilo output.Puoi sostituire questa variabile di ambiente utilizzando il parametro della riga di comando --output.

AWS_DEFAULT_REGION (p. 46)

Specifica la regione AWS cui inviare la richiesta.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profilo region.Puoi sostituire questa variabile di ambiente utilizzando il parametro della riga di comando --region.

AWS_MAX_ATTEMPTS (p. 55)

Specifica un valore di massimo di tentativi di ripetizione utilizzati dal gestore di ripetizione AWS CLI,dove la chiamata iniziale viene conteggiata per il valore fornito. Per ulteriori informazioni sui tentativi,consultare AWS CLI nuovi tentativi (p. 78).

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione dei profilimax_attempts.

AWS_PAGER (p. 53)

Specifica il programma pager utilizzato per l'output. Per impostazione predefinita, AWS CLI versione 2restituisce tutto l'output attraverso il programma pager predefinito del sistema operativo.

70

Page 76: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVariabili di ambiente AWS CLI supportate

Per disabilitare l'uso di un programma di paging esterno, imposta la variabile su una stringa vuota.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profilo cli_pager.AWS_PROFILE (p. 61)

Specifica il nome del profilo CLI con le credenziali e le opzioni da utilizzare. Può essere il nome di unprofilo archiviato in un file credentials o config, oppure il valore default per utilizzare il profilo didefault.

Se definita, questa variabile di ambiente sostituisce il comportamento di utilizzo del profilo denominato[default] nel file di configurazione. Puoi sovrascrivere questa variabile di ambiente utilizzando ilparametro della riga di comando --profile.

AWS_RETRY_MODE (p. 56)

Specifica la modalità di ripetizione utilizzata da AWS CLI. Sono disponibili tre modalità di ripetizione:legacy (impostazione predefinita), standard e adattiva. Per ulteriori informazioni sui tentativi, consultareAWS CLI nuovi tentativi (p. 78).

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione dei profili retry_mode.AWS_ROLE_SESSION_NAME (p. 90)

Specifica un nome da associare alla sessione del ruolo. Questo valore viene visualizzato nei logCloudTrail per i comandi eseguiti dall'utente di questo profilo.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profilorole_session_name. Non è possibile specificare un nome di sessione del ruolo come parametrodella riga di comando.

AWS_SECRET_ACCESS_KEY

Specifica la chiave segreta associata alla chiave di accesso. Si tratta essenzialmente della "password"per la chiave di accesso.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profiloaws_secret_access_key. Non è possibile specificare l'ID chiave di accesso segreta come opzionedella riga di comando.

AWS_SESSION_TOKEN

Specifica il valore del token di sessione richiesto se si utilizzano credenziali di sicurezza temporaneerecuperate direttamente dalle operazioni AWS STS. Per ulteriori informazioni, consulta la sezioneOutput del comando assume-role nella AWS CLI Command Reference.

Se definita, questa variabile di ambiente sostituisce il valore per l'impostazione del profiloaws_session_token. Non è possibile specificare il token di sessione come opzione della riga dicomando.

AWS_SHARED_CREDENTIALS_FILE

Specifica la posizione del file utilizzato da AWS CLI per archiviare le chiavi di accesso. Il percorsopredefinito è ~/.aws/credentials.

Non è possibile specificare questo valore in un'impostazione profilo denominato o utilizzando unparametro della riga di comando.

AWS_STS_REGIONAL_ENDPOINTS (p. 57)

Specificare il modo in cui AWS CLI determina l'endpoint del servizio AWS utilizzato dal client AWS CLIper comunicare con AWS Security Token Service (AWS STS).• Il valore predefinito per AWS CLI versione 1 è legacy.

71

Page 77: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteOpzioni della riga di comando

• Il valore predefinito per AWS CLI versione 2 è regional.

È possibile specificare uno dei due valori:• legacy – Utilizza l'endpoint STS globale sts.amazonaws.com, per le seguenti regioni AWS:ap-northeast-1, ap-south-1, ap-southeast-1, ap-southeast-2, aws-global, ca-central-1, eu-central-1, eu-north-1, eu-west-1, eu-west-2, eu-west-3, sa-east-1, us-east-1, us-east-2, us-west-1 e us-west-2. Tutte le altre regioni utilizzanoautomaticamente il rispettivo endpoint regionale.

• regional – AWS CLI utilizza sempre l’endpoint AWS STS per la regione attualmente configurata.Ad esempio, se il client è configurato per usare us-west-2, tutte le chiamate a AWS STS vengonoeffettuate all'endpoint regionale sts.us-west-2.amazonaws.com anziché all'endpoint globalests.amazonaws.com. Per inviare una richiesta all'endpoint globale mentre questa impostazione èabilitata, è possibile impostare l'area geografica su aws-global.

Opzioni della riga di comandoPuoi utilizzare le seguenti opzioni della riga di comando per sostituire le impostazioni di configurazionepredefinite, qualsiasi impostazione del profilo corrispondente o l'impostazione della variabile di ambienteper quel singolo comando. Non puoi utilizzare le opzioni della riga di comando per specificare direttamentele credenziali, anche se puoi specificare il profilo da utilizzare. Ogni opzione che accetta un argomentorichiede uno spazio o un simbolo di uguale ("=") che separa l'argomento dal nome dell'opzione. Se il valoredell'argomento è una stringa che contiene uno spazio, occorre racchiudere l'argomento tra virgolette.

I tipi di argomento (ad esempio stringa, booleano) per ciascuna opzione della riga di comando sonodescritti in dettaglio in Specifica dei valori di parametro per AWS CLI (p. 99).

--ca-bundle <string>

Specificare il bundle di certificati CA (Certificate Authority, autorità di certificazione) da utilizzare per laverifica dei certificati SSL.

(-cli-auto-prompt)

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Abilita la modalità di prompt automatico per un singolo comando. Come mostrato negli esempiseguenti, puoi specificarlo in qualsiasi momento.

$ aws --cli-auto-prompt$ aws dynamodb --cli-auto-prompt$ aws dynamodb describe-table --cli-auto-prompt

Questa opzione sostituisce la variabile di ambiente aws_cli_auto_prompt (p. 69) el'impostazione del profilo cli_auto_prompt (p. 52).

Per informazioni sulla funzionalità di prompt automatico di AWS CLI versione 2, consulta Impostazionedi AWS CLI in modo che richieda i comandi (p. 115).

(-cli-connect-timeout) <integer>

Specifica il tempo di connessione socket massimo in secondi. Se il valore è impostato su zero (0),la connessione socket attende per un periodo di tempo indefinito (si blocca) e non si verifica alcuntimeout.

72

Page 78: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteOpzioni della riga di comando

--cli-read-timeout <integer>

Specifica il tempo di lettura del socket massimo in secondi. Se il valore è impostato su zero (0), lalettura del socket attende per un periodo di tempo indefinito (si blocca) e non si verifica alcun timeout.

--colore <string>

Specifica il supporto per l'output di colori. I valori validi sono on, off e auto. Il valore predefinito èauto.

--debug

Un interruttore booleano che abilita la registrazione di debug. Per impostazione predefinita, AWSCLI fornisce informazioni ripulite relative a qualsiasi esito positivo o negativo riguardo ai risultati delcomando nell'output del comando. L'opzione --debug fornisce i log di Python completi. Questoinclude ulteriori informazioni diagnostiche stderr sull'operazione del comando che possono essereutili durante la risoluzione dei problemi relativi al motivo per cui un comando fornisce risultati imprevisti.Per visualizzare facilmente i log di debug, ti consigliamo di inviare i log a un file per semplificare laricerca delle informazioni. A tale scopo, puoi utilizzare una delle seguenti opzioni.

Per inviare solo le informazioni di diagnostica di stderr, aggiungi 2> debug.txt dove debug.txtè il nome che desideri utilizzare per il file di debug:

$ aws servicename commandname options --debug 2> debug.txt

Per inviare sia l'output che le informazioni di diagnostica di stderr, aggiungere &> debug.txt dovedebug.txt è il nome che si desidera utilizzare per il file di debug:

$ aws servicename commandname options --debug &> debug.txt

--url endpoint <string>

Specifica l'URL a cui inviare la richiesta. Per la maggior parte dei comandi, AWS CLI determinaautomaticamente l'URL in base al servizio selezionato e alla regione AWS specificata. Tuttavia, alcunicomandi ti richiedono di specificare un URL specifico dell'account. Puoi anche configurare alcuniservizi AWS per eseguire l'hosting di un endpoint direttamente all'interno della VPC privata, chepotrebbe quindi dover essere specificata.

Per un elenco degli endpoint del servizio standard disponibili in ogni regione, consulta Regioni edendpoint AWS nella Riferimenti generali di Amazon Web Services.

--no-cli-auto-promptQuesta caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Disabilita la modalità di prompt automatico per un singolo comando.

$ aws dynamodb describe-table --table-name Table1 --no-cli-auto-prompt

Questa opzione sostituisce la variabile di ambiente aws_cli_auto_prompt (p. 69) el'impostazione del profilo cli_auto_prompt (p. 52).

Per informazioni sulla funzionalità di prompt automatico di AWS CLI versione 2, consulta Impostazionedi AWS CLI in modo che richieda i comandi (p. 115).

--no-cli-pager

Un interruttore booleano che disabilita utilizzando un pager per l'output del comando.

73

Page 79: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteOpzioni della riga di comando

--no-paginate

Un interruttore booleano che disabilita le chiamate multiple effettuate automaticamente da AWS CLIper ricevere tutti i risultati del comando che creano la paginazione dell'output. Questo significa cheviene visualizzata solo la prima pagina dell'output.

--no-sign-request

Un interruttore booleano che disabilita la firma delle richieste HTTP all'endpoint del servizio AWS. Inquesto modo si evita il caricamento delle credenziali.

--output <string>

Specifica il formato di output da utilizzare per questo comando. Puoi specificare uno qualsiasi dei valoriseguenti:• json (p. 119): l'output è formattato come una stringa JSON.• yaml (p. 120): l'output è formattato come una stringa YAML. (Disponibile solo nella AWS CLI

versione 2.)• yaml-stream (p. 120) – L' output viene trasmesso in streaming e formattato come stringa YAML.

Lo streaming consente una gestione più rapida dei tipi di dati di grandi dimensioni. (Disponibile solonella AWS CLI versione 2.)

• text (p. 121): l'output è formattato come più righe di valori di stringa separati da tabulazioni. Ciòpuò essere utile per passare l'output a un processore di testi, come grep, sed o awk.

• table (p. 124): l'output è formattato come una tabella utilizzando i caratteri +|- per formare i bordidelle celle. In genere presenta le informazioni in un formato comprensibile molto più semplice daleggere rispetto ad altri, ma non altrettanto utile a livello programmatico.

--profile <string>

Specifica il profilo denominato (p. 61) da utilizzare per questo comando. Per impostare profilidenominati aggiuntivi, puoi utilizzare il comando aws configure con l'opzione --profile.

$ aws configure --profile <profilename>

--query <string>

Specifica una query JMESPath da utilizzare per filtrare i dati di risposta. Per ulteriori informazioni, vediCome filtrare l'output con l'opzione --query (p. 125).

--region <string>

Specifica la regione AWS cui inviare questa richiesta AWS del comando. Per un elenco di tutte leregioni che puoi specificare, consulta Regioni ed endpoint AWS nella Riferimenti generali di AmazonWeb Services.

--versione

Un interruttore booleano che mostra la versione corrente del programma AWS CLI in esecuzione.

Usi comuni per le opzioni della riga di comando includono il controllo delle risorse in più regioni AWS e lamodifica del formato di output per maggiore leggibilità o facilità d'uso al momento della creazione di script.Ad esempio, se non sei sicuro della regione su cui l'istanza è in esecuzione, puoi eseguire il comandodescribe-instances su ciascuna regione finché la trovi, come illustrato di seguito.

$ aws ec2 describe-instances --output table --region us-east-1-------------------|DescribeInstances|+-----------------+$ aws ec2 describe-instances --output table --region us-west-1-------------------|DescribeInstances|

74

Page 80: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCompletamento dei comandi

+-----------------+$ aws ec2 describe-instances --output table --region us-west-2------------------------------------------------------------------------------| DescribeInstances |+----------------------------------------------------------------------------+|| Reservations |||+-------------------------------------+------------------------------------+||| OwnerId | 012345678901 |||| ReservationId | r-abcdefgh |||+-------------------------------------+------------------------------------+|||| Instances |||||+------------------------+-----------------------------------------------+||||| AmiLaunchIndex | 0 |||||| Architecture | x86_64 |||...

I tipi di argomento (ad esempio stringa, booleano) per ciascuna opzione della riga di comando sonodescritti in dettaglio in Specifica dei valori di parametro per AWS CLI (p. 99).

Completamento dei comandiIn sistemi come Unix, AWS Command Line Interface (AWS CLI) include una caratteristica dicompletamento dei comandi che consente di completare un comando digitato parzialmente utilizzandoil tasto Tab. Nella maggior parte dei sistemi, questa caratteristica non viene installata automaticamente,pertanto è necessario configurarla manualmente.

Per informazioni sulla funzionalità di prompt automatico di AWS CLI versione 2, consulta Impostazione diAWS CLI in modo che richieda i comandi (p. 115).

Argomenti• Come funziona (p. 75)• Configurazione del completamento dei comandi (p. 76)

Come funzionaQuando si immette parzialmente un comando, un parametro o un'opzione, la caratteristica dicompletamento dei comandi completa automaticamente il comando o visualizza un elenco suggerito dicomandi. Per richiedere il completamento del comando, inserire parzialmente un comando e premere Tab.

Negli esempi seguenti vengono illustrati diversi modi in cui è possibile utilizzare il completamento deicomandi:

• Immettere parzialmente un comando e premere Tab per visualizzare un elenco di comandi suggeriti.

$ aws dynamodb dTABdatapipeline deploy dlm dynamodb datasync devicefarm dms dynamodbstreamsdax directconnect docdb ddb discovery ds

• Immettere parzialmente un parametro e premere Tab per visualizzare un elenco di parametri suggeriti.

$ aws dynamodb db delete-table --TAB--ca-bundle --endpoint-url --profile --cli-connect-timeout --generate-cli-skeleton --query --cli-input-json --no-paginate --region

75

Page 81: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione del completamento dei comandi

--cli-read-timeout --no-sign-request --table-name --color --no-verify-ssl --version --debug --output

• Immettere un parametro e premere Tab per visualizzare un elenco di valori delle risorse suggeriti. Questafunzione è disponibile solo nella AWS CLI versione 2.

$ aws dynamodb db delete-table --table-name TABTable 1 Table 2 Table 3

Configurazione del completamento dei comandiPer configurare il completamento dei comandi, occorrono due informazioni: il nome della shell che si stautilizzando e la posizione dello script aws_completer.

Amazon Linux

Il completamento dei comandi viene configurato e abilitato automaticamente per impostazionepredefinita sulle istanze Amazon EC2 che eseguono Amazon Linux.

Sezioni• Identificazione della shell (p. 76)• Individuazione del programma di completamento AWS (p. 76)• Aggiunta della cartella del programma di completamento al percorso (p. 77)• Abilitazione del completamento dei comandi (p. 78)• Test di completamento dei comandi (p. 78)

Identificazione della shellPer identificare la shell in uso, è possibile utilizzare uno dei seguenti comandi.

echo $SHELL – Visualizza il nome del file di programma della shell. Generalmente corrisponde al nomedella shell in uso, a meno che non venga avviata un'altra shell dopo avere effettuato l'accesso.

$ echo $SHELL/bin/bash

ps – Visualizza i processi in esecuzione per l'utente corrente. Uno di questi è la shell.

$ ps PID TTY TIME CMD 2148 pts/1 00:00:00 bash 8756 pts/1 00:00:00 ps

Individuazione del programma di completamento AWSLa posizione del programma di completamento AWS può variare in base al metodo di installazioneutilizzato.

Programma di gestione dei pacchetti – Programmi come pip, yum, brew e apt-get generalmenteinstallano il programma di completamento AWS (o un link simbolico a esso) in un percorso standard. Inquesto caso, il comando which può individuare il programma di completamento per conto dell'utente.

Se hai utilizzato pip senza il comando --user, potrebbe essere visualizzato il percorso seguente.

76

Page 82: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione del completamento dei comandi

$ which aws_completer/usr/local/bin/aws_completer

Se è stato utilizzato il parametro --user nel comando di installazione pip, è in genere possibile trovare ilprogramma di completamento nella cartella local/bin sotto la cartella $HOME.

$ which aws_completer/home/username/.local/bin/aws_completer

Programma di installazione in bundle – Se hai utilizzato il programma di installazione in bundle per leistruzioni nella sezione precedente, il programma di completamento AWS si trova nella sottocartella bindella directory di installazione.

$ ls /usr/local/binactivateactivate.cshactivate.fishactivate_this.pyawsaws.cmdaws_completer...

Se non riesci a individuarlo, puoi usare find per cercare il programma di completamento AWS in tutto il filesystem.

$ find / -name aws_completer/usr/local/bin/aws_completer

Aggiunta della cartella del programma di completamento alpercorsoPer fare in modo che il programma di completamento (completer) di AWS funzioni correttamente, dovrai inprimo luogo aggiungerlo al percorso del tuo computer.

1. Trova lo script del profilo della tua shell nella cartella utente. Se non hai la certezza di quale sia la tuashell, esegui echo $SHELL.

$ ls -a ~/. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash– – .bash_profile, .profile o.bash_login• Zsh– .zshrc• Tcsh– .tcshrc, .cshrc o .login

2. Aggiungi un comando di esportazione al termine dello script del profilo simile a quello dell'esempioseguente. Replace (Sostituisci) /usr/local/bin con la cartella individuata nella sezione precedente.

export PATH=/usr/local/bin:$PATH

3. Ricarica il profilo nella sessione corrente per rendere effettive tali modifiche. Sostituisci .bash_profilecon il nome dello script della shell individuato nella prima sezione.

$ source ~/.bash_profile

77

Page 83: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteTentativi

Abilitazione del completamento dei comandiPer abilitare il completamento dei comandi, eseguire il comando per la shell in uso. Puoi aggiungereil comando al file RC della shell per eseguirlo ogni volta che apri una nuova shell. In ogni comando,sostituisci il percorso /usr/local/bin con quello trovato nel sistema nella sezione precedente.

• bash – Utilizza il comando complete integrato.

$ complete -C '/usr/local/bin/aws_completer' aws

Aggiungi il comando a ~/.bashrc per eseguirlo ogni volta che apri una nuova shell. Per accertarti cheil comando venga eseguito anche nelle shell di accesso, l'origine di ~/.bash_profile deve essere~/.bashrc.

• zsh: per eseguire il completamento dei comandi, è necessario eseguire bashcompinit aggiungendo laseguente riga di caricamento automatico alla fine dello script del profilo ~/.zshrc.

$ autoload bashcompinit && bashcompinit

Per abilitare il completamento dei comandi, utilizzare il comando integrato complete.

$ complete -C '/usr/local/bin/aws_completer' aws

Aggiungi il comando a ~/.zshrc per eseguirlo ogni volta che apri una nuova shell.• tcsh – Per definire il comportamento di completamento per tcsh, sono necessari un tipo e un modello

di parola.

> complete aws 'p/*/`aws_completer`/'

Aggiungi il comando a ~/.tschrc per eseguirlo ogni volta che apri una nuova shell.

Test di completamento dei comandiDopo avere abilitato il completamento dei comandi, immetti un comando parziale e premi il tasto Tab pervisualizzare i comandi disponibili.

$ aws sTABs3 ses sqs sts swfs3api sns storagegateway support

AWS CLI nuovi tentativiQuesto argomento descrive in che modo AWS CLI potrebbe vedere le chiamate ai servizi AWS non riuscitea causa di problemi imprevisti. Questi problemi possono verificarsi sul lato server o potrebbero non riuscirea causa della limitazione della frequenza del servizio AWS che stai tentando di chiamare. Questi tipi dierrori in genere non richiedono una gestione speciale e la chiamata viene automaticamente effettuata dinuovo, spesso dopo un breve periodo di attesa. L'AWS CLI offre molte funzionalità per aiutare a riprovarele chiamate client ai servizi AWS quando si verificano questi tipi di errori o eccezioni.

Argomenti• Modalità di ripetizione disponibili (p. 79)

78

Page 84: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteModalità di ripetizione disponibili

• Configurazione di una modalità di ripetizione (p. 80)• Visualizzazione dei log dei tentativi di ripetizione (p. 81)

Modalità di ripetizione disponibiliha più modalità per scegliere tra le opzioni a seconda della versione:AWS CLI

• Modalità di ripetizione legacy (p. 79)• Modalità di ripetizione standard (p. 79)• Modalità di ripetizione adattiva (p. 80)

Modalità di ripetizione legacyLa modalità legacy è la modalità predefinita utilizzata da AWS CLI versione 1. La modalità legacy utilizzaun gestore di nuovi tentativi meno recente con funzionalità limitate che include:

• Il valore predefinito 4 per il numero massimo di tentativi, effettuando un totale di 5 tentativi di chiamata.Questo valore può essere sovrascritto tramite il parametro di configurazione max_attempts.

• Riprova i tentativi per il seguente numero limitato di errori/eccezioni:• Errori socket/connessione generali:

• ConnectionError

• ConnectionClosedError

• ReadTimeoutError

• EndpointConnectionError

• Errori di throttling/limiti ed eccezioni lato servizio:• Throttling

• ThrottlingException

• ThrottledException

• RequestThrottledException

• ProvisionedThroughputExceededException

• Riprova a eseguire diversi codici di stato HTTP, inclusi 429, 500, 502, 503, 504 e 509.• Qualsiasi tentativo di ripetizione includerà un backoff esponenziale di un fattore di base di 2.

Modalità di ripetizione standardLa modalità standard è un set standard di regole di ripetizione dei tentativi in AWS SDKs con piùfunzionalità rispetto alla versione legacy. Questa modalità è l'impostazione predefinita per AWS CLIversione 2. La modalità Standard è stata creata per AWS CLI versione 2 ed è backport per AWS CLIversione 1. Le funzionalità della modalità Standard includono:

• Il valore predefinito 2 per il numero massimo di tentativi, effettuando un totale di 3 tentativi di chiamata.Questo valore può essere sovrascritto tramite il parametro di configurazione max_attempts.

• Riprova i tentativi per il seguente elenco esteso di errori/eccezioni:• Errori transitori/eccezioni

• RequestTimeout

• RequestTimeoutException

• PriorRequestNotComplete

• ConnectionError

79

Page 85: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione di una modalità di ripetizione

• HTTPClientError

• Errori di throttling/limiti ed eccezioni lato servizio:• Throttling

• ThrottlingException

• ThrottledException

• RequestThrottledException

• TooManyRequestsException

• ProvisionedThroughputExceededException

• TransactionInProgressException

• RequestLimitExceeded

• BandwidthLimitExceeded

• LimitExceededException

• RequestThrottled

• SlowDown

• EC2ThrottledException

• Riprova i tentativi sui codici di errore transitori non descrittivi. Nello specifico, questi codici di stato HTTP:500, 502, 503, 504.

• Qualsiasi tentativo di ripetizione includerà un backoff esponenziale di un fattore di base di 2 per un tempomassimo di backoff di 20 secondi.

Modalità di ripetizione adattivaWarning

La modalità adattiva è una modalità sperimentale ed è soggetta a modifiche, sia nellecaratteristiche che nel comportamento di .

La modalità di ripetizione adattiva è una modalità di ripetizione sperimentale che include tutte lecaratteristiche della modalità standard. Oltre alle caratteristiche della modalità standard, la modalitàadattiva introduce anche la limitazione della frequenza lato client mediante l'uso di un bucket tokene variabili di limitazione della frequenza che vengono aggiornate dinamicamente a ogni tentativo diripetizione. Questa modalità offre flessibilità nei nuovi tentativi lato client che si adatta alla risposta dellostato di errore/eccezione da un servizio AWS.

A ogni nuovo tentativo, la modalità adattiva modifica le variabili del limite di frequenza in base al codice dierrore, eccezione o stato HTTP presentato nella risposta del servizio AWS. Queste variabili di limitazionedella velocità vengono quindi utilizzate per calcolare una nuova velocità di chiamata per il client. Ognieccezione/errore o risposta HTTP non riuscita (fornita nell'elenco precedente) da un servizio AWS aggiornale variabili di limite della frequenza quando si verificano nuovi tentativi successivi, quando il bucket di tokenè esaurito o quando viene raggiunto il valore massimo configurato dei tentativi.

Configurazione di una modalità di ripetizioneinclude un'ampia gamma di configurazioni di nuovi tentativi e metodi di configurazione da consideraredurante la creazione dell'oggetto client.AWS CLI

Metodi di configurazione disponibiliIn AWS CLI, gli utenti possono configurare i nuovi tentativi nei modi seguenti:

• Variabili di ambiente

80

Page 86: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVisualizzazione dei log dei tentativi di ripetizione

• File di configurazioneAWS CLI

Gli utenti possono personalizzare le seguenti opzioni di ripetizione:

• Retry mode (Modalità nuovo tentativo): specifica la modalità di nuovo tentativo utilizzata da AWS CLI.Come descritto in precedenza, sono disponibili tre modalità per i nuovi tentativi: legacy, standard eadattivo. Il valore predefinito per AWS CLI versione 1 è legacy e per AWS CLI versione 2 è standard.

• Max attempts (Numero massimo di tentativi): specifica il valore massimo di tentativi che il gestore ditentativi utilizza, in cui la chiamata iniziale viene conteggiata rispetto al valore fornito.AWS CLI Il valorepredefinito è 5.

Definizione di una configurazione di ripetizione nelle variabili diambientePer definire la configurazione dei nuovi tentativi per AWS CLI, aggiorna le variabili di ambiente del sistemaoperativo in uso.

Le variabili di ambiente di ripetizione sono:

• AWS_RETRY_MODE

• AWS_MAX_ATTEMPTS

Per ulteriori informazioni sulle variabili di ambiente, consulta Variabili di ambiente per configurare l'AWSCLI. (p. 68).

Definizione di una configurazione di ripetizione nel file diconfigurazione AWS

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Per modificare la configurazione dei nuovi tentativi, aggiorna il file di configurazione AWS globale. Ilpercorso predefinito per il file di configurazione di AWS è ~ /.aws/config.

Di seguito è riportato un esempio di file AWS Config:

[default]retry_mode = standardmax_attempts = 6

Per ulteriori informazioni sui file di configurazione, consulta Impostazioni del file di configurazione e dellecredenziali (p. 48).

Visualizzazione dei log dei tentativi di ripetizioneutilizza la metodologia e la registrazione di nuovi tentativi di Boto3.AWS CLI Puoi utilizzare l'opzione --debug su qualsiasi comando per ricevere i log di debug. Per ulteriori informazioni su come utilizzarel'opzione --debug, consulta Opzioni della riga di comando (p. 72).

Se ricerchi "riprova" nei log di debug, troverai le informazioni sui nuovi tentativi necessarie. Le voci di logdel client per i nuovi tentativi dipendono dalla modalità di nuovi tentativi abilitata.

81

Page 87: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCredenziali di approvvigionamento con un processo esterno

Modalità legacy:

I messaggi di nuovo tentativo vengono generati da botocore.retryhandler. Vedrai uno dei tre messaggi:

• No retry needed

• Retry needed, action of: <action_name>

• Reached the maximum number of retry attempts: <attempt_number>

Modalità standard o adattiva:

I messaggi di nuovo tentativo vengono generati da botocore.retries.standard. Vedrai uno dei tre messaggi:

• No retrying request

• Retry needed, retrying request after delay of: <delay_value>

• Retry needed but retry quota reached, not retrying request

Per il file di definizione completa dei nuovi tentativi botocore, consulta _retry.json nel repository GitHubbotocore.

Credenziali di approvvigionamento con un processoesterno

Warning

Il seguente argomento illustra le credenziali di approvvigionamento da un processo esterno.Potrebbe insorgere un rischio per la sicurezza se il comando per generare le credenziali diventaaccessibile a utenti o processi non riconosciuti. Ti consigliamo di utilizzare le soluzioni alternativesicure e supportate offerte dall'AWS CLI e AWS per ridurre il rischio di compromettere le tuecredenziali. Assicurati di proteggere il file config e altri strumenti e file di supporto per evitare ladivulgazione.Assicurati che il tuo strumento delle credenziali personalizzate non scriva informazioni segrete inStdErr perché SDKs e CLI sono in grado di acquisire e registrare tali informazioni, esponendolepotenzialmente a utenti non autorizzati.

Se disponi di un metodo per generare o cercare le credenziali non direttamente supportato dall'AWS CLI,puoi fare in modo che venga utilizzato dall'interfaccia a riga di comando (CLI) configurando l'impostazionecredential_process nel file config.

Puoi ad esempio includere una voce simile al seguente file config.

[profile developer]credential_process = /opt/bin/awscreds-custom --username helen

Syntax

Per creare questa stringa in modo compatibile con qualsiasi sistema operativo, segui queste regole:

• Se il percorso o il nome del file contiene uno spazio, circondare il percorso completo e il nome del file convirgolette doppie (" "). Il percorso e il nome del file possono essere composti solo dai caratteri: A-Z a-z0-9 - _ . spazio

• Se un nome di parametro o un valore di parametro contiene uno spazio, circondare tale elemento convirgolette doppie (" "). È possibile racchiudere solo il nome o il valore, non la coppia.

82

Page 88: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo delle credenziali per i

metadati dell'istanzaAmazon EC2

• Non includere variabili di ambiente nelle stringhe. Ad esempio, non puoi includere $HOME o%USERPROFILE%.

• Non specificare la home directory come ~. È necessario specificare il percorso completo.

Esempio per Windows

credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"

Esempio per Linux o macOS

credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"

Output previsto dal programma Credentials

esegue il comando come specificato nel profilo, quindi legge i dati da AWS CLI.STDOUT Il comandospecificato deve generare in STDOUT output JSON che corrispondono alla sintassi seguente.

{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "ISO8601 timestamp when the credentials expire"}

Note

Al momento della redazione di questo documento, la chiave Version deve essere impostata su1. Questo valore potrebbe incrementare nel tempo con l'evolvere della struttura.

La chiave Expiration è un timestamp formattato ISO8601. Se la chiave Expiration non è presentenell'output dello strumento, l'interfaccia a riga di comando presuppone che le credenziali siano a lungotermine, non soggette ad aggiornamento. In caso contrario, le credenziali vengono considerate provvisoriee aggiornate automaticamente mediante una nuova esecuzione del comando credential_processprima della relativa scadenza.

Note

AWS CLI non esegue il caching delle credenziali dei processi esterni, come nel caso dellecredenziali di assunzione del ruolo. Se il caching è necessario, dovrai implementarlo nel processoesterno.

Il processo esterno può restituire un codice diverso da zero per indicare che si è verificato un erroredurante il recupero delle credenziali.

Utilizzo delle credenziali per i metadatidell'istanzaAmazon EC2

Quando esegui AWS CLI da un'istanza Amazon Elastic Compute Cloud (Amazon EC2), puoi semplificarela fornitura di credenziali ai comandi. Ogni istanza Amazon EC2 contiene metadati per i quali AWS CLIpuò eseguire direttamente una query delle credenziali temporanee. Quando un ruolo IAM viene associatoall'istanza, AWS CLI recupera in maniera automatica e sicura le credenziali dai metadati dell'istanza.

83

Page 89: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePrerequisites

PrerequisitesPer utilizzare le credenziali Amazon EC2 con AWS CLI, è necessario completare le seguenti fasi:

• Avviare l'istanza Amazon EC2 e verificare che AWS CLI sia già installato. Se l'AWS CLI non è installata,installa l'AWS CLI. Per ulteriori informazioni, vedi Installazione, aggiornamento e disinstallazione diAWSCLI (p. 5).

• Comprensione dei file di configurazione. Per ulteriori informazioni, vedi Impostazioni del file diconfigurazione e delle credenziali (p. 48).

• I profili denominati vengono compresi. Per ulteriori informazioni, vedi Profili denominati (p. 61).• Hai creato un ruolo AWS Identity and Access Management (IAM) che ha accesso alle risorse necessarie

e lo hai collegato all'istanza Amazon EC2 quando la avvii. Per ulteriori informazioni, consulta PolicyIAM per Amazon EC2 nella Guida per l'utente di Amazon EC2 per le istanze Linux e Concessionedell'accesso alle risorse Amazon EC2 nelle applicazioni in esecuzione su istanze AWS nella .Guida perl'utente di IAM

Configurazione di un profilo per i metadati diAmazonEC2Per specificare che si desidera utilizzare le credenziali disponibili nel profilo dell'istanza Amazon EC2 dihosting, utilizzare la sintassi seguente in in un profilo denominato nel file di configurazione. Per ulterioriistruzioni, consulta le fasi seguenti.

[profile profilename]role_arn = arn:aws:iam::123456789012:role/rolenamecredential_source = Ec2InstanceMetadataregion = region

1. Creare un profilo nel file di configurazione.

[profile profilename]

2. Aggiungi il ruolo arn IAM che ha accesso alle risorse necessarie.

role_arn = arn:aws:iam::123456789012:role/rolename

3. Specifica Ec2InstanceMetadata come origine delle credenziali.

credential_source = Ec2InstanceMetadata

4. Imposta la tua regione.

region = region

Esempio

L'esempio seguente presuppone l'utilizzo del kit ADRuolo marketing Ruolo us-west-2 e utilizza laregione Amazon EC2 in un profilo dell'istanza marketingadmin denominato .

[profile marketingadmin]role_arn = arn:aws:iam::123456789012:role/marketingadminrole

84

Page 90: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo di un proxy HTTP

credential_source = Ec2InstanceMetadataregion = us-west-2

Utilizzo di un proxy HTTPPer accedere ad AWS tramite i server proxy, puoi configurare le variabili di ambiente HTTP_PROXY eHTTPS_PROXY con i nomi di dominio DNS o gli indirizzi IP e i numeri di porta utilizzati dai server proxy.

Note

Gli esempi seguenti mostrano il nome della variabile di ambiente in lettere maiuscole. Tuttavia, sesi specifica una variabile due volte, una volta con lettere maiuscole e una con lettere minuscolequella con lettere minuscole ha la priorità. Ti consigliamo di definire ogni variabile solo una voltaper evitare confusione e un comportamento imprevisto.

Nell'esempio seguente viene illustrato come utilizzare l'indirizzo IP esplicito del proxy o un nome DNS cheviene risolto nell'indirizzo IP del proxy. Entrambi possono essere seguiti da due punti e dal numero di portaa cui devono essere inviate le query.

Linux o macOS

$ export HTTP_PROXY=http://10.15.20.25:1234$ export HTTP_PROXY=http://proxy.example.com:1234$ export HTTPS_PROXY=http://10.15.20.25:5678$ export HTTPS_PROXY=http://proxy.example.com:5678

Windows

C:\> setx HTTP_PROXY http://10.15.20.25:1234C:\> setx HTTP_PROXY http://proxy.example.com:1234C:\> setx HTTPS_PROXY http://10.15.20.25:5678C:\> setx HTTPS_PROXY http://proxy.example.com:5678

Autenticazione in un proxyL'AWS CLI supporta l'autenticazione di base HTTP. Specifica il nome utente e la password nell'URL delproxy come riportato di seguito.

Linux o macOS

$ export HTTP_PROXY=http://username:[email protected]:1234$ export HTTPS_PROXY=http://username:[email protected]:5678

Windows

C:\> setx HTTP_PROXY http://username:[email protected]:1234C:\> setx HTTPS_PROXY http://username:[email protected]:5678

Note

AWS CLI non supporta i proxy NTLM. Se utilizzi un proxy protocollo NTLM o Kerberos, puoiconnetterti tramite un proxy di autenticazione quale Cntlm.

85

Page 91: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo di un proxy per le istanze Amazon EC2

Utilizzo di un proxy per le istanze Amazon EC2Se configuri un proxy su un'istanza Amazon EC2 avviata con un ruolo IAM collegato, assicurati di esentarel'indirizzo utilizzato per accedere ai metadati dell'istanza. A questo scopo, imposta la variabile di ambienteNO_PROXY sull'indirizzo IP del servizio di metadati dell'istanza, 169.254.169.254. Questo indirizzo nonvaria.

Linux o macOS

$ export NO_PROXY=169.254.169.254

Windows

C:\> setx NO_PROXY 169.254.169.254

Utilizzo di un ruolo IAM nell'AWS CLIUn ruolo AWS Identity and Access Management (IAM) è uno strumento di autorizzazione che consente aun utente IAM di ottenere autorizzazioni aggiuntive (o differenti) o ottenere le autorizzazioni per eseguireoperazioni in un account AWS diverso.

Puoi configurare AWS Command Line Interface (AWS CLI) per l'utilizzo di un ruolo IAM definendo unprofilo per il ruolo nel file ~/.aws/config.

L'esempio seguente mostra un profilo del ruolo denominato marketingadmin. Se eseguicomandi con --profile marketingadmin (o lo specifichi con la variabile di ambienteAWS_PROFILE (p. 68)), l'interfaccia a riga di comando utilizza le credenziali definitein un profilo separato user1 per assumere il ruolo con l'Amazon Resource Name (ARN)arn:aws:iam::123456789012:role/marketingadminrole. Puoi eseguire qualsiasi operazioneconsentita dalle autorizzazioni assegnate a tale ruolo.

[profile marketingadmin]role_arn = arn:aws:iam::123456789012:role/marketingadminrolesource_profile = user1

Puoi specificare un elemento source_profile che punti a un profilo denominato separato contenentele credenziali utente IAM con l'autorizzazione per usare il ruolo. Nell'esempio precedente il profilomarketingadmin utilizza le credenziali del profilo user1. Quando specifichi che un comando AWSCLI è utilizzare il profilo marketingadmin, l'interfaccia a riga di comando cerca automaticamente lecredenziali per il profilo user1 collegato e le utilizza per richiedere le credenziali temporanee per il ruoloIAM specificato. L'interfaccia a riga di comando usa l'operazione sts:AssumeRole in background percompletare questa attività. Tali credenziali temporanee vengono quindi utilizzate per eseguire il comandoCLI richiesto. Al ruolo specificato devono essere collegate policy di autorizzazione IAM che consentonol'esecuzione del comando CLI richiesto.

Se desideri eseguire un comando CLI all'interno di un'istanza Amazon Elastic Compute Cloud (AmazonEC2) o un containerAmazon Elastic Container Service (Amazon ECS) o un container, puoi usare unruolo IAM associato al profilo dell'istanza o al container. Se non specifichi alcun profilo o non impostivariabili di ambiente, tale ruolo viene utilizzato direttamente. In questo modo, potrai evitare di archiviarechiavi di accesso di lunga durata nelle istanze. Puoi anche utilizzare i ruoli dell'istanza o del containersolo per ottenere le credenziali per un altro ruolo. A tale scopo, usa credential_source (anzichésource_profile) per specificare come trovare le credenziali. L'attributo credential_source supportai seguenti valori:

86

Page 92: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione e utilizzo di un ruolo

• Environment – recupera le credenziali di origine dalle variabili di ambiente.• Ec2InstanceMetadata – Utilizza il ruolo IAM collegato al profilo dell'istanza Amazon EC2.• EcsContainer – Utilizza il ruolo IAM collegato al container Amazon ECS.

L'esempio seguente mostra lo stesso ruolo marketingadminrole usato facendo riferimento a un profilodell'istanza Amazon EC2.

[profile marketingadmin]role_arn = arn:aws:iam::123456789012:role/marketingadminrolecredential_source = Ec2InstanceMetadata

Quando si richiama un ruolo, sono disponibili opzioni aggiuntive che è possibile richiedere, ad esempiol'utilizzo dell'autenticazione a più fattori e di un ID esterno (utilizzato da società terze per accedere allerisorse dei client). È inoltre possibile specificare nomi di sessione di ruolo univoci che possono esserecontrollati più facilmente nei log AWS CloudTrail.

Sezioni• Configurazione e utilizzo di un ruolo (p. 87)• Utilizzo dell'autenticazione a più fattori (p. 88)• Ruoli per più account e ID esterno (p. 90)• Specifica di un nome di sessione del ruolo per semplificare l'audit (p. 90)• Assunzione di un ruolo con un'identità Web (p. 90)• Cancellazione delle credenziali nella cache (p. 91)

Configurazione e utilizzo di un ruoloQuando esegui comandi utilizzando un profilo che specifica un ruolo IAM, AWS CLI usa le credenzialidel profilo di origine per chiamare AWS Security Token Service (AWS STS) e richiedere credenzialitemporanee per il ruolo specificato. L'utente nel profilo di origine deve disporre dell'autorizzazione perchiamare sts:assume-role per il ruolo nel profilo specificato. Il ruolo deve disporre di una relazione ditrust che consente all'utente nel profilo di origine di usare il ruolo. Il processo di recupero e quindi di utilizzodelle credenziali temporanee per un ruolo è spesso definito come assunzione del ruolo.

Puoi creare un ruolo in IAM con le autorizzazioni che gli utenti devono assumere seguendo la proceduradescritta nella sezione relativa alla creazione di un ruolo per delegare autorizzazioni a un utente IAMnella Guida per l'utente di AWS Identity and Access Management. Se il ruolo e l'utente IAM del profilo diorigine appartengono allo stesso account, puoi immettere il tuo ID account durante la configurazione dellarelazione di trust del ruolo.

Dopo aver creato il ruolo, modifica la relazione di trust per consentire all'utente IAM (o agli utentinell'account AWS) di assumerlo.

L'esempio seguente mostra una policy di trust che può essere collegata a un ruolo. La policy fa in modoche il ruolo possa essere assunto da qualsiasi utente IAM nell'account 123456789012, se l'amministratoredi tale account concede esplicitamente l'autorizzazione sts:assumerole all'utente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole"

87

Page 93: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo di MFA

} ]}

La policy di trust non concede attualmente autorizzazioni. L'amministratore dell'account deve delegarel'autorizzazione per assumere il ruolo a singoli utenti collegando una policy con le autorizzazioniappropriate. L'esempio seguente illustra una policy che puoi collegare a un utente IAM e che permetteall'utente di assumere solo il ruolo marketingadminrole. Per ulteriori informazioni su come concedere aun utente l'accesso per assumere un ruolo, consulta l'articolo relativo alla concessione di un autorizzazioniutente per cambiare ruoli nella Guida per l'utente di IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::123456789012:role/marketingadminrole" } ]}

Non è necessario che l'utente IAM disponga di ulteriori autorizzazioni per eseguire i comandi dell'interfacciaa riga di comando utilizzando il profilo del ruolo. Al contrario, le autorizzazioni per eseguire il comandoprovengono da quelle associate al ruolo. È possibile collegare le policy di autorizzazione al ruolo perspecificare quali azioni possono essere eseguite su risorse AWS specifiche. Per ulteriori informazioni sucome collegare le autorizzazioni a un ruolo, il cui funzionamento è del tutto identico a quello di un utenteIAM, consulta Modifica delle autorizzazioni per un utente IAM nella Guida per l'utente di IAM.

Ora che il profilo del ruolo, le autorizzazioni del ruolo, la relazione di trust del ruolo e le autorizzazioniutente sono configurate correttamente, puoi utilizzare il ruolo nella riga di comando richiamandol'opzione --profile. Ad esempio, il comando seguente chiama il comando Amazon S3 ls utilizzandole autorizzazioni collegate al ruolo marketingadmin come definito dall'esempio all'inizio di questoargomento.

$ aws s3 ls --profile marketingadmin

Per utilizzare il ruolo per diverse chiamate, puoi impostare la variabile di ambienteAWS_DEFAULT_PROFILE per la sessione corrente dalla riga di comando. Sebbene la variabile di ambientesia definita, non è necessario specificare l'opzione --profile su ogni comando.

Linux o macOS

$ export AWS_PROFILE=marketingadmin

Windows

C:\> setx AWS_PROFILE marketingadmin

Per ulteriori informazioni sulla configurazione di utenti e ruoli IAM, consulta le sezioni relative a utenti egruppi e ruoli nella Guida per l'utente di IAM.

Utilizzo dell'autenticazione a più fattoriPer una maggiore sicurezza, puoi richiedere agli utenti di fornire una chiave monouso generata da undispositivo di autenticazione a più fattori (MFA), da un dispositivo U2F o da un'app per dispositivi mobilidurante il tentativo di effettuare una chiamata utilizzando il profilo del ruolo.

88

Page 94: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo di MFA

In primo luogo, puoi scegliere di modificare la relazione di trust sul ruolo IAM per richiedere la MFA. Ciòimpedisce a chiunque di utilizzare il ruolo senza prima autenticarsi utilizzando MFA. Per un esempio,consulta la riga Condition nel seguente esempio. Questa policy consente all'utente IAM denominatoanika di assumere il ruolo collegato alla policy, ma solo se esegue l'autenticazione utilizzando MFA.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" }, "Action": "sts:AssumeRole", "Condition": { "Bool": { "aws:multifactorAuthPresent": true } } } ]}

Quindi, aggiungi una riga al profilo del ruolo che specifica l'ARN del dispositivo MFA dell'utente. Le seguentivoci di file config di esempio mostrano due profili dei ruoli che utilizzano entrambe le chiavi di accessoper l'utente IAM per richiedere credenziali temporanee per il ruolo anika.cli-role L'utente anikadispone delle autorizzazioni per assumere il ruolo, concesse dalla policy di attendibilità del ruolo.

[profile role-without-mfa]region = us-west-2role_arn= arn:aws:iam::128716708097:role/cli-rolesource_profile=cli-user

[profile role-with-mfa]region = us-west-2role_arn= arn:aws:iam::128716708097:role/cli-rolesource_profile = cli-usermfa_serial = arn:aws:iam::128716708097:mfa/cli-user

[profile anika]region = us-west-2output = json

L'impostazione mfa_serial può richiedere un ARN, come illustrato, o il numero di serie di un tokenhardware MFA.

Il primo profilo, role-without-mfa, non richiede MFA. Tuttavia, poiché la precedente policy di trust diesempio associata al ruolo richiede MFA, qualsiasi tentativo di eseguire un comando con questo profilo nonriesce.

$ aws iam list-users --profile role-without-mfa

An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied

Il secondo profilo role-with-mfa, identifica un dispositivo MFA da utilizzare. Quando l'utente tentadi eseguire un comando CLI con questo profilo, la CLI richiede all'utente di immettere la password unatantum (OTP, One-Time Password) fornita dal dispositivo MFA. Se l'autenticazione MFA ha esito positivo, ilcomando esegue l'operazione richiesta. La password monouso non viene visualizzata sullo schermo.

$ aws iam list-users --profile role-with-mfaEnter MFA code for arn:aws:iam::123456789012:mfa/cli-user:{ "Users": [ {

89

Page 95: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteRuoli per più account e ID esterno

...

Ruoli per più account e ID esternoPuoi abilitare gli utenti IAM in modo che assumano ruoli appartenenti ad account diversi configurando ilruolo come ruolo per più account. Durante la creazione del ruolo, imposta il tipo di ruolo su Another AWSaccount (Un altro account AWS), come descritto in Creazione di un ruolo per delegare le autorizzazioni aun utente IAM. Facoltativamente, seleziona Require MFA (Richiedi MFA). Require MFA (Richiedi MFA)configura la condizione appropriata nella relazione di trust, come descritto in Utilizzo dell'autenticazione apiù fattori (p. 88).

Se utilizzi un ID esterno per fornire ulteriore controllo su chi può usare un ruolo per diversi account, deviaggiungere il parametro external_id al profilo del ruolo. Ciò viene utilizzato in genere solo quando l'altroaccount è controllato da qualcuno esterno all'azienda o organizzazione.

[profile crossaccountrole]role_arn = arn:aws:iam::234567890123:role/SomeRolesource_profile = defaultmfa_serial = arn:aws:iam::123456789012:mfa/saanviexternal_id = 123456

Specifica di un nome di sessione del ruolo persemplificare l'auditQuando molti individui condividono un ruolo, l'audit diventa più difficile. Si supponga che tu voglia associareogni operazione richiamata alla persona che ha richiamato l'operazione. Tuttavia, quando la personautilizza un ruolo, l'assunzione del ruolo da parte dell'individuo è un'operazione distinta rispetto alla chiamatadi un'operazione ed è pertanto necessario correlare manualmente le due cose.

Puoi semplificare questa operazione specificando nomi univoci delle sessioni del ruolo quando gli utentiassumono un ruolo. A tale scopo, aggiungi un parametro role_session_name a ogni profilo denominatonel file config che specifica un ruolo. Il valore role_session_name viene passato all'operazioneAssumeRole e diventa parte dell'ARN della sessione del ruolo. Viene inoltre incluso nei log di AWSCloudTrail per tutte le operazioni registrate.

Ad esempio, puoi creare un profilo basato su ruoli come segue.

[profile namedsessionrole]role_arn = arn:aws:iam::234567890123:role/SomeRolesource_profile = defaultrole_session_name = Session_Maria_Garcia

Di conseguenza, la sessione del ruolo ha il seguente ARN.

arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia

Inoltre, tutti i log di AWS CloudTrail includono il nome della sessione del ruolo nelle informazioni acquisiteper ogni operazione.

Assunzione di un ruolo con un'identità WebPuoi configurare un profilo per indicare che l'AWS CLI deve assumere un ruolo utilizzando la federazionedelle identità Web e Open ID Connect (OIDC). Quando specifichi questa opzione in un profilo, l'AWS CLIeffettua automaticamente la chiamata AWS STS AssumeRoleWithWebIdentity corrispondente.

90

Page 96: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCancellazione delle credenziali nella cache

Note

Quando specifichi un profilo che utilizza un ruolo IAM, l'AWS CLI effettua le chiamate appropriateper recuperare le credenziali temporanee. Queste credenziali vengono archiviate in ~/.aws/cli/cache. I comandi AWS CLI successivi che specificano lo stesso profilo utilizzano lecredenziali temporanee memorizzate nella cache finché non scadono. A questo punto, l'AWS CLIaggiorna automaticamente le credenziali.

Per recuperare e utilizzare le credenziali temporanee utilizzando la federazione delle identità Web, puoispecificare i seguenti valori di configurazione in un profilo condiviso.

role_arn (p. 86)

Specificare l'ARN del ruolo da assumere.web_identity_token_file

Specifica il percorso di un file che contiene un token di accesso OAuth 2.0 o un token ID diconnessione OpenID fornito dal provider di identità. L'AWS CLI carica questo file e passa il relativocontenuto come argomento WebIdentityToken all'operazione AssumeRoleWithWebIdentity.

role_session_name (p. 90)

Specifica un nome facoltativo applicato a questa sessione assume-role.

Di seguito è riportato un esempio di configurazione per la quantità minima di configurazione necessaria perconfigurare un profilo del ruolo assunto con un'identità Web:

# In ~/.aws/config

[profile web-identity]role_arn=arn:aws:iam:123456789012:role/RoleNameToAssumeweb_identity_token_file=/path/to/a/token

Puoi anche fornire questa configurazione utilizzando variabili di ambiente (p. 68):

AWS_ROLE_ARN

L'ARN del ruolo da assumere.AWS_WEB_IDENTITY_TOKEN_FILE

Il percorso del file del token dell'identità Web.AWS_ROLE_SESSION_NAME

Il nome applicato a questa sessione assume-role.

Note

Queste variabili di ambiente attualmente si applicano solo al ruolo assumere con provider diidentità Web. Non si applicano alla configurazione generale del provider dell'assunzione di ruoli.

Cancellazione delle credenziali nella cacheQuando usi un ruolo, l'AWS CLI memorizza le credenziali temporanee nella cache in locale finché nonscadono. La prossima volta che provi a utilizzarle, l'AWS CLI tenta di rinnovarle per tuo conto.

Se le credenziali temporanee del ruolo vengono revocate, non vengono rinnovate automaticamente ei tentativi di utilizzarle non vanno a buon fine. Tuttavia, puoi eliminare la cache per forzare l'AWS CLI arecuperare nuove credenziali.

91

Page 97: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCancellazione delle credenziali nella cache

Linux o macOS

$ rm -r ~/.aws/cli/cache

Windows

C:\> del /s /q %UserProfile%\.aws\cli\cache

92

Page 98: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo della Guida

Utilizzo del AWS CLIQuesta sezione presenta molte delle caratteristiche e delle opzioni comuni disponibili in AWS CommandLine Interface (AWS CLI).

Note

Per impostazione predefinita, l'AWS CLI invia le richieste ai servizi AWS con HTTPS sulla portaTCP 443. Per usare l'AWS CLI correttamente, devi eseguire connessioni in uscita sulla porta TCP443.

Argomenti• Come visualizzare la Guida con AWS CLI (p. 93)• Struttura di comando in AWS CLI (p. 97)• Specifica dei valori di parametro per AWS CLI (p. 99)• Impostazione di AWS CLI in modo che richieda i comandi (p. 115)• Controllo dell'output dei comandi da AWS CLI (p. 118)• Utilizzo delle opzioni di paginazione di AWS CLI (p. 131)• Comprensione dei codici restituiti da AWS CLI (p. 135)

Come visualizzare la Guida con AWS CLIPuoi richiedere assistenza su qualsiasi comando quando utilizzi AWS Command Line Interface (AWS CLI).Per farlo, basta digitare help al termine del nome di un comando.

Ad esempio, il comando seguente visualizza le informazioni della guida relative alle opzioni generalidell'AWS CLI e ai comandi di primo livello disponibili.

$ aws help

Il comando seguente mostra i comandi specifici di Amazon Elastic Compute Cloud (Amazon EC2)disponibili.

$ aws ec2 help

L'esempio seguente visualizza le informazioni dettagliate per l'operazione DescribeInstances diAmazon EC2. L'assistenza include le descrizioni dei parametri di input, i filtri disponibili e tutto ciò che èincluso nell'output. Include anche esempi che mostrano come digitare varianti comuni del comando.

$ aws ec2 describe-instances help

Le informazioni della Guida per ciascun comando sono suddivise in sei sezioni:

Nome

Nome del comando.

93

Page 99: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo della Guida

NAME describe-instances -

Description (Descrizione)

Descrizione dell'operazione API richiamata dal comando.

DESCRIPTION Describes one or more of your instances.

If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the returned results....

Riepilogo

Sintassi di base per l'utilizzo del comando e delle relative opzioni. Le opzioni tra parentesi quadresono facoltative, hanno un valore predefinito oppure hanno un'opzione che può essere utilizzata inalternativa.

SYNOPSIS describe-instances [--dry-run | --no-dry-run] [--instance-ids <value>] [--filters <value>] [--cli-input-json <value>] [--starting-token <value>] [--page-size <value>] [--max-items <value>] [--generate-cli-skeleton]

Ad esempio, describe-instances ha un comportamento predefinito che descrive tutte le istanzenell'account e nella regione AWS correnti. Puoi specificare, a tua discrezione, un elenco di instance-ids per descrivere una o più istanze. dry-run è un flag booleano opzionale che non utilizza unvalore. Per usare un flag booleano, specifica il valore mostrato, in questo caso --dry-run o --no-dry-run. Analogamente, --generate-cli-skeleton non utilizza un valore. Se per l'utilizzo diun'opzione sono previste condizioni, queste sono descritte nella sezione OPTIONS o mostrate negliesempi.

Opzioni

Descrizione di ogni singola opzione mostrata nella sinossi.

OPTIONS --dry-run | --no-dry-run (boolean) Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRun- Operation . Otherwise, it is UnauthorizedOperation .

--instance-ids (list) One or more instance IDs.

Default: Describes all your instances....

94

Page 100: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo della Guida

Esempi

Esempi che mostrano l'utilizzo del comando e delle relative opzioni. Se non è disponibile l'esempioper un comando o un caso d'uso specifico, richiedine uno utilizzando il collegamento di feedback inquesta pagina o nella guida di riferimento ai comandi di AWS CLI nella pagina della Guida relativa alcomando.

EXAMPLES To describe an Amazon EC2 instance

Command: aws ec2 describe-instances --instance-ids i-5203422c To describe all instances with the instance type m1.small Command: aws ec2 describe-instances --filters "Name=instance-type,Values=m1.small" To describe all instances with an Owner tag Command: aws ec2 describe-instances --filters "Name=tag-key,Values=Owner"...

Output

Descrizioni di ciascuno dei campi e dei tipi di dati inclusi nella risposta di AWS.

Per describe-instances, l'output è un elenco di oggetti prenotazione, ciascuno dei quali contienediversi campi e oggetti che includono informazioni sulle istanze a essi associate. Queste informazioniprovengono dalla documentazione API per il tipo di dati di prenotazione utilizzato da Amazon EC2.

OUTPUT Reservations -> (list) One or more reservations.

(structure) Describes a reservation.

ReservationId -> (string) The ID of the reservation.

OwnerId -> (string) The ID of the AWS account that owns the reservation.

RequesterId -> (string) The ID of the requester that launched the instances on your behalf (for example, AWS Management Console or Auto Scaling).

Groups -> (list) One or more security groups.

(structure) Describes a security group.

GroupName -> (string) The name of the security group.

GroupId -> (string) The ID of the security group.

95

Page 101: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDocumentazione della AWS CLI

Instances -> (list) One or more instances.

(structure) Describes an instance.

InstanceId -> (string) The ID of the instance.

ImageId -> (string) The ID of the AMI used to launch the instance.

State -> (structure) The current state of the instance.

Code -> (integer) The low byte represents the state. The high byte is an opaque internal value and should be ignored....

Quando AWS CLI esegue il rendering dell'output in formato JSON, diventa un array di oggetti diprenotazione, simile all'esempio seguente.

{ "Reservations": [ { "OwnerId": "012345678901", "ReservationId": "r-4c58f8a0", "Groups": [], "RequesterId": "012345678901", "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": "ec2-52-74-16-12.us-west-2.compute.amazonaws.com", "State": { "Code": 16, "Name": "running" },...

Ogni oggetto prenotazione contiene campi che descrivono la prenotazione e una serie di oggettiistanza, ognuno con specifici campi (ad esempio, PublicDnsName) e oggetti (ad esempio, State)che lo descrivono.

Utenti Windows

Puoi eseguire il piping (|) dell'output del comando help su more per visualizzare il file dellaguida una pagina alla volta. Premere la barra spaziatrice o PgDn per visualizzare una partemaggiore del documento e q per uscire.

C:\> aws ec2 describe-instances help | more

Documentazione della AWS CLILa AWS CLI Command Reference contiene anche i contenuti per tutti i comandi dell'AWS CLI. Ledescrizioni sono presentate in modo da semplificare la navigazione e la visualizzazione su dispositivimobili, tablet o schermi del desktop.

96

Page 102: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDocumentazione API

Note

I file della guida contengono collegamenti che non possono essere visualizzati o esplorati dallariga di comando. Puoi visualizzare e interagire con questi collegamenti utilizzando la AWS CLICommand Reference online.

Documentazione APITutti i comandi nell'AWS CLI corrispondono alle richieste effettuate su un'API pubblica del servizio AWS.Ogni servizio con un'API pubblica include un riferimento API, disponibile nella home page del servizionel sito Web della documentazione AWS. Il contenuto di un riferimento API varia in base al modo in cui ècostruita l'API e al protocollo utilizzato. Di solito, un riferimento API contiene informazioni dettagliate sulleoperazioni supportate dall'API, sui dati inviati da e verso il servizio ed su eventuali condizioni di erroreriportate dal servizio.

Sezioni della documentazione API

• Operazioni –Informazioni dettagliate su ogni operazione e sui relativi parametri (inclusi i limiti dilunghezza o di contenuto e i valori predefiniti). Vengono elencati gli errori che possono verificarsi perquesta operazione. Ogni operazione corrisponde a un sottocomando nell'AWS CLI.

• Tipi di dati – Informazioni dettagliate sulle strutture che un comando potrebbe richiedere come parametroo restituire in risposta a una richiesta.

• Parametri comuni – Informazioni dettagliate sui parametri condivisi da tutte le operazioni per il servizio.• Errori comuni – Informazioni dettagliate sugli errori che possono essere restituiti da qualsiasi operazione

del servizio.

Il nome e la disponibilità di ogni sezione possono variare a seconda del servizio.

CLIs specifiche del servizio

Alcuni servizi hanno un’interfaccia a riga di comando (CLI) separata, creata prima che fosseintrodotta una singola AWS CLI, per tutti i servizi. Questi CLIs specifici del servizio hannouna documentazione separata collegata dalla pagina della documentazione del servizio. Ladocumentazione per CLIs specifico del servizio non si applica all'AWS CLI.

Struttura di comando in AWS CLIQuesto argomento descrive come è strutturato il comando AWS Command Line Interface (AWS CLI) ecome utilizzare i comandi di attesa.

Struttura di comandoutilizza una struttura in più parti nella riga di comando che deve essere specificata in questo ordine:AWSCLI

1. La chiamata di base al programma aws.2. Il comando di livello superiore, che in genere corrisponde a un servizio AWS supportato dall'AWS CLI.3. Il sottocomando che specifica l'operazione da eseguire.4. Le opzioni o i parametri dell'interfaccia a riga di comando necessari per l'operazione. Possono essere

specificati in qualsiasi ordine, purché seguano le prime tre parti. Se un parametro esclusivo vienespecificato più volte, si applica solo l'ultimo valore.

97

Page 103: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di attesa

$ aws <command> <subcommand> [options and parameters]

I parametri possono utilizzare vari tipi di valori di input, ad esempio numeri, stringhe, elenchi, mappe estrutture JSON. Quanto supportato dipende dal comando e dal sottocomando specificati.

Comandi di attesaAlcuni servizi AWS hanno comandi wait disponibili. Qualsiasi comando che utilizza aws wait in genereattende il completamento di un comando prima di passare alla fase successiva. Questo è particolarmenteutile per i comandi in più parti o gli script, poiché è possibile utilizzare un comando di attesa per evitare dipassare alle fasi successive se il comando di attesa ha esito negativo.

utilizza una struttura in più parti nella riga di comando per il comando AWS CLI che deve essere specificatoin questo ordine:wait

1. La chiamata di base al programma aws.2. Il comando di livello superiore, che in genere corrisponde a un servizio AWS supportato dall'AWS CLI.3. Il comando wait.4. Il sottocomando che specifica l'operazione da eseguire.5. Le opzioni o i parametri dell'interfaccia a riga di comando necessari per l'operazione. Possono essere

specificati in qualsiasi ordine, purché seguano le prime tre parti. Se un parametro esclusivo vienespecificato più volte, si applica solo l'ultimo valore.

$ aws <command> wait <subcommand> [options and parameters]

I parametri possono utilizzare vari tipi di valori di input, ad esempio numeri, stringhe, elenchi, mappe estrutture JSON. Quanto supportato dipende dal comando e dal sottocomando specificati.

Note

Non tutti i servizi AWS supportano i comandi wait. Consulta la guida di riferimento di AWS CLIper vedere se il servizio supporta i comandi .wait

Esempi di attesa

AWS CloudFormation

Gli esempi di comando wait change-set-create-complete seguenti vengono messi in pausa eriprendono solo dopo che è in grado di confermare che my-change-set set di modifiche in my-stack Lostack è pronto per l'esecuzione.

$ aws cloudformation wait change-set-create-complete --stack-name my-stack --change-set-name my-change-set

Per ulteriori informazioni sui comandi AWS CloudFormation wait, consulta attesa nel Riferimento aicomandi AWS CLI.

AWS CodeDeploy

I seguenti esempi di comando wait deployment-successful vengono messi in pausa finché ilcomando d-A1B2C3111 La distribuzione viene completata correttamente.

$ aws deploy wait deployment-successful --deployment-id d-A1B2C3111

98

Page 104: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteSpecifica dei valori di parametro

Per ulteriori informazioni sui comandi AWS CodeDeploy wait, consulta attesa nel Riferimento ai comandiAWS CLI.

Specifica dei valori di parametro per AWS CLIMolti parametri utilizzati in AWS Command Line Interface (AWS CLI) sono semplici valori stringa onumerici, ad esempio il nome della coppia di chiavi my-key-pair dell'esempio seguente.

$ aws ec2 create-key-pair --key-name my-key-pair

È possibile circondare stringhe che non contengono caratteri spaziali con virgolette o meno. Tuttavia, levirgolette sono necessarie per le stringhe che includono uno o più caratteri spazio. Per ulteriori informazionisull'utilizzo di virgolette attorno a parametri complessi, consulta Utilizzo di virgolette con stringhe nell'AWSCLI (p. 101).

Tipi comuni di parametri AWS CLIQuesta sezione descrive alcuni tipi di parametri comuni e il formato tipico richiesto. In caso di problemi conla formattazione di un parametro per un comando specifico, consulta la guida digitando help dopo il nomedel comando, come mostrato:

$ aws ec2 describe-spot-price-history help

La guida per ogni sottocomando ne descrive la funzione, le opzioni, l'output e gli esempi. La sezionerelativa alle opzioni include il nome e la descrizione di ciascuna opzione con il tipo di parametrodell'opzione tra parentesi.

StringI parametri stringa possono contenere caratteri alfanumerici, simboli e spazi vuoti del set di caratteri ASCII.Le stringhe che contengono spazi vuoti devono essere racchiuse tra virgolette. Ti consigliamo di nonutilizzare simboli o spazi vuoti diversi dal carattere spazio standard perché può generare risultati imprevisti.

Alcuni parametri di stringa accettano i dati binari da un file. Vedi File binari (p. 104) per un esempio.

TimestampI timestamp sono formattati in base allo standard ISO 8601. Talvolta vengono definiti parametri "DataOra" o"Data".

$ aws ec2 describe-spot-price-history --start-time 2014-10-13T19:00:00Z

I formati accettabili includono:

• YYYY-MM-DDThh:mm:ss.sssTZD (UTC), ad esempio 2014-10-01T20:30:00.000Z• YYYY-MM-DDThh:mm:ss.sssTZD (with offset), ad esempio 2014-10-01T12:30:00.000-08:00• YYYY-MM-DD, ad esempio 2014-10-01• Tempo Unix in secondi, ad esempio 1412195400. A volte, viene chiamato epoca Unix (Unix epoch) e

rappresenta il numero di secondi dalla mezzanotte del 1 gennaio 1970 UTC.

(Disponibile solo nella AWS CLI versione 2.) Per impostazione predefinita, AWS CLI versione 2 traduce tuttii valori risposta in formato ISO 8601.DateTime

99

Page 105: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteTipi di parametri comuni

ListUna o più stringhe separate da spazi. Se uno degli elementi della stringa contiene uno spazio, deviracchiuderlo tra virgolette.

$ aws ec2 describe-spot-price-history --instance-types m1.xlarge m1.medium

BooleanFlag binario che attiva o disattiva un'opzione. Ad esempio, ec2 describe-spot-price-history ha unparametro --dry-run booleano che, quando specificato, consente di convalidare la query con il servizioanche senza eseguire la query.

$ aws ec2 describe-spot-price-history --dry-run

L'output indica se il formato del comando è valido. Questo comando include anche una versione --no-dry-run del parametro, che puoi utilizzare per indicare esplicitamente che il comando deve essereeseguito normalmente, anche se non è necessario includerlo poiché questa è l'impostazione predefinita.

IntegerNumero intero senza firma.

$ aws ec2 describe-spot-price-history --max-items 5

Binario/Blob (oggetto binario di grandi dimensioni)In AWS CLI versione 1, per passare un valore a un parametro con tipo blob, è necessario specificareun percorso di un file locale che contiene i dati binari. Il percorso non deve contenere identificatori diprotocollo, ad esempio http:// o file://. Il percorso specificato viene interpretato come relativo alladirectory di lavoro corrente. Ad esempio, il parametro --body per aws s3api put-object è un blob.

$ aws s3api put-object --bucket my-bucket --key testimage.png --body /tmp/image.png

(Disponibile solo nella AWS CLI versione 2.) Inl AWS CLI versione 2, è possibile passare un valore binariocome stringa codificata base64 direttamente sulla riga di comando. Inoltre, per impostazione predefinita inAWS CLI versione 2, i file a cui si fa riferimento con il prefisso file:// vengono trattati come testo concodifica Base64.

È possibile ripristinare AWS CLI versione 2 in modo che sia compatibile con AWS CLI versione 1configurando l’impostazione cli-binary-format (p. 52):

• Se il valore dell'impostazione è raw-in-base64-out, i file a cui si fa riferimento che utilizzano ilprefisso file:// vengono trattati come binario non codificato.

• Se il valore dell'impostazione è base64 (il valore predefinito), i file a cui si fa riferimento utilizzando ilprefisso file:// vengono trattati come testo con codifica Base64.

I file a cui si fa riferimento utilizzando il prefisso fileb:// vengono sempre trattati come binario noncodificato, indipendentemente dall'impostazione cli_binary_format.

Per ulteriori informazioni, consulta l’impostazione cli-binary-format (p. 52).

100

Page 106: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVirgolette con stringhe

MapUn set di coppie chiave-valore specificato in formato JSON o utilizzando la sintassi abbreviata (p. 113)dell'interfaccia a riga di comando (CLI). L'esempio JSON seguente legge un item da una tabella AmazonDynamoDB denominata my-table con un parametro mappa --key. Il parametro specifica la chiave primariadenominata id con un valore numerico pari a 1 in una struttura JSON nidificata.

$ aws dynamodb get-item --table-name my-table --key '{"id": {"N":"1"}}'

{ "Item": { "name": { "S": "John" }, "id": { "N": "1" } }}

Utilizzo di virgolette con stringhe nell'AWS CLIEsistono principalmente due modi in cui le virgolette singole e doppie vengono utilizzate in AWS CLI.

• Utilizzo di virgolette attorno a stringhe che contengono spazi (p. 101)• Utilizzo di virgolette all'interno di stringhe (p. 102)

Utilizzo di virgolette attorno a stringhe che contengono spaziI nomi dei parametri e i relativi valori sono separati da spazi sulla riga di comando. Se un valore stringacontiene uno spazio incorporato, è necessario circondare l'intera stringa con virgolette per evitare chel'AWS CLI interpreti erroneamente lo spazio come divisore tra il valore e il nome del parametro successivo.Il tipo di virgolette utilizzate dipende dal sistema operativo su cui è in esecuzione AWS CLI.

Linux and macOS

Utilizzo delle virgolette singole ' '.

$ aws ec2 create-key-pair --key-name 'my key pair'

Per ulteriori informazioni sull'utilizzo delle virgolette, consulta la documentazione per l'utente relativaalla tua shell preferita.

PowerShell

Utilizza virgolette singole ' ' o virgolette doppie " " .

PS C:\> aws ec2 create-key-pair --key-name 'my key pair'

PS C:\> aws ec2 create-key-pair --key-name "my key pair"

Per ulteriori informazioni sull'utilizzo delle virgolette, consulta la sezione relativa alle regole di creazionedi virgolette nella documentazione di Microsoft PowerShell.

Windows command prompt

Utilizza le virgolette doppie " ".

101

Page 107: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVirgolette con stringhe

C:\> aws ec2 create-key-pair --key-name "my key pair"

Facoltativamente, puoi separare il nome del parametro dal valore con un segno di uguale = anziché unospazio. In genere è necessario solo se il valore del parametro inizia con un trattino.

$ aws ec2 delete-key-pair --key-name=-mykey

Utilizzo di virgolette all'interno di stringheLe stringhe possono contenere virgolette e la shell potrebbe richiedere virgolette di escape affinchéfunzionino correttamente. Uno dei tipi di valore di parametro comuni è una stringa JSON. Questo ècomplesso in quanto include spazi e virgolette doppie " " attorno al nome e al valore di ciascun elementonella struttura JSON. Il modo in cui si immettono parametri in formato JSON alla riga di comando varia aseconda del sistema operativo.

Linux and macOS

Per Linux e macOS per interpretare letteralmente le stringhe, utilizza le virgolette singole ' ' perracchiudere la struttura di dati JSON, come nell'esempio seguente. Non è necessario utilizzare levirgolette doppie incorporate nella stringa JSON, poiché vengono trattate letteralmente. Poiché ilformato JSON è racchiuso tra virgolette singole, per ogni carattere di escape per le virgolette singolenella stringa sarà necessario utilizzare una barra rovesciata prima delle virgolette singole \'.

$ aws ec2 run-instances \ --image-id ami-12345678 \ --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'

Per ulteriori informazioni sull'utilizzo delle virgolette, consulta la documentazione per l'utente relativaalla tua shell preferita.

PowerShell

Utilizza virgolette singole ' ' o virgolette doppie " ".

Virgolette singole (scelta consigliata)

Poiché le strutture di dati JSON includono virgolette doppie, consigliamo di utilizzare virgolette singoleper racchiuderle.' ' Se utilizzi virgolette singole, non è necessario inserire un carattere di escape perle virgolette doppie incorporate nella stringa JSON. Tuttavia, è necessario eseguire l'escape di ognivirgoletta singola con un segno di apice inverso ` all'interno della struttura JSON.

PS C:\> aws ec2 run-instances \ --image-id ami-12345678 \ --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'

Virgolette doppie

Se utilizzi le virgolette doppie, non è necessario inserire il carattere di escape singole virgoletteincorporate nella stringa JSON. Tuttavia, è necessario eseguire l'escape di ogni virgoletta doppia conun segno di apice inverso ` all'interno della struttura JSON, come nell'esempio seguente.

PS C:\> aws ec2 run-instances \ --image-id ami-12345678 \ --block-device-mappings "[{`"DeviceName`":`"/dev/sdb`",`"Ebs`":{`"VolumeSize`":20,`"DeleteOnTermination`":false,`"VolumeType`":`"standard`"}}]"

102

Page 108: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteParametri dai file

Per ulteriori informazioni sull'utilizzo delle virgolette, consulta la sezione relativa alle regole di creazionedi virgolette nella documentazione di Microsoft PowerShell.

Windows command prompt

Il prompt dei comandi di Windows richiede le virgolette doppie " " per racchiudere la struttura dei datiJSON. Inoltre, per evitare che il processore di comandi interpreti erroneamente le virgolette doppieincorporate nel JSON, è necessario anche eseguire l'escape (precedere con un carattere \ barrarovesciata) di ogni virgoletta doppia " all'interno della struttura di dati JSON stessa, come nell'esempioseguente.

C:\> aws ec2 run-instances \ --image-id ami-12345678 --block-device-mappings "[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]"

Soltanto le virgolette doppie più esterne non richiedono il carattere di escape.

Caricamento di parametri AWS CLI da un fileAlcuni parametri si aspettano nomi di file come argomenti, grazie ai quali l'AWS CLI carica i dati. Altriparametri consentono di specificare il valore del parametro come testo digitato sulla riga di comandoo letto da un file. Se un file è obbligatorio o facoltativo, è necessario codificare correttamente il file inmodo che l'AWS CLI possa comprenderlo. La codifica del file deve corrispondere alle impostazionilocali predefinite del sistema di lettura. È possibile determinare questa situazione utilizzando Pythonlocale.getpreferredencoding() metodo.

Note

Per impostazione predefinita, Windows PowerShell restituisce il testo in formato UTF-16, che èin conflitto con la codifica UTF-8 utilizzata da molti sistemi Linux. Ti consigliamo di utilizzare -Encoding ascii con i comandi PowerShell Out-File per essere sicuro che il file risultantepossa essere letto dall'AWS CLI.

In alcuni casi, ad esempio quando il parametro è una stringa JSON complessa, è utile caricare il valore diun parametro da un file anziché provare a digitarlo come valore di parametro della riga di comando. Perspecificare un file che contiene il valore, specifica un URL di file nel formato seguente:

file://complete/path/to/file

I primi due caratteri di barra" /" fanno parte della specifica. Se il percorso richiesto inizia con "/", il risultatoconterrà tre caratteri di barra: . file:///folder/file.

L'URL fornisce il percorso del file con il contenuto del parametro effettivo.Note

Questo comportamento viene disabilitato automaticamente per i parametri che già prevedono unURL, ad esempio un parametro che identifica un URL di modello AWS CloudFormation.Puoi inoltre disabilitare questo comportamento aggiungendo la riga seguente al file diconfigurazione dell'interfaccia a riga di comando.

cli_follow_urlparam = false

I percorsi di file specificati nei seguenti esempi vengono interpretati come relativi alla directory di lavorocorrente.

Linux o macOS

103

Page 109: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteParametri dai file

// Read from a file in the current directory$ aws ec2 describe-instances --filters file://filter.json

// Read from a file in /tmp$ aws ec2 describe-instances --filters file:///tmp/filter.json

Windows:

// Read from a file in C:\tempC:\> aws ec2 describe-instances --filters file://C:\temp\filter.json

L'opzione del prefisso file:// supporta le espansioni in stile Unix, tra cui "~/", "./" e "../". In Windowsl'espressione "~/" si espande alla directory utente, archiviata nella variabile di ambiente %USERPROFILE%.Ad esempio, in Windows 10 in genere è presente una directory utente in C:\Users\User Name\.

Nei documenti JSON incorporati come valore di un altro documento JSON deve essere comunque inseritoil carattere di escape.

$ aws sqs create-queue --queue-name my-queue --attributes file://attributes.json

attributes.json

{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-west-2:0123456789012:deadletter\", \"maxReceiveCount\":\"5\"}"}

File binariPer i comandi che richiedono dati binari come parametro, è necessario specificare che i dati sonocontenuto binario mediante il prefisso fileb://. I comandi che accettano i dati binari includono:

• aws ec2 run-instances – --user-data parametro.• aws s3api put-object – --sse-customer-key parametro.• aws kms decrypt – --ciphertext-blob parametro.

Nell'esempio seguente viene generata una chiave AES binaria da 256 bit mediante uno strumento a riga dicomando Linux che vien poi fornita ad Amazon S3 per crittografare un file caricato sul lato server.

$ dd if=/dev/urandom bs=1 count=32 > sse.key32+0 records in32+0 records out32 bytes (32 B) copied, 0.000164441 s, 195 kB/s$ aws s3api put-object --bucket my-bucket --key test.txt --body test.txt --sse-customer-key fileb://sse.key --sse-customer-algorithm AES256{ "SSECustomerKeyMD5": "iVg8oWa8sy714+FjtesrJg==", "SSECustomerAlgorithm": "AES256", "ETag": "\"a6118e84b76cf98bf04bbe14b6045c6c\""}

File remotiAWS CLI supporta anche il caricamento di parametri da un file ospitato in Internet con un URL http://o https://. L'esempio seguente fa riferimento a un file archiviato in un bucket Amazon S3. Questo

104

Page 110: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

consente di accedere ai file di parametri da qualsiasi computer, ma richiede che il container sia accessibilepubblicamente.

$ aws ec2 run-instances --image-id ami-12345678 --block-device-mappings http://my-bucket.s3.amazonaws.com/filename.json

Nell'esempio precedente si presume che il file filename.json contenga i seguenti dati JSON.

[ { "DeviceName": "/dev/sdb", "Ebs": { "VolumeSize": 20, "DeleteOnTermination": false, "VolumeType": "standard" } }]

Per un altro esempio che fa riferimento a un file contenente parametri in formato JSON più complessi, vediCollegamento di un IAM la policy gestita a un IAM utente (p. 169).

Generazione di parametri di input e skeleton AWS CLIda un file di input JSON o YAML

Important

Puoi creare e utilizzare modelli di skeleton di input YAML solo con la versione 2 di AWS CLI. Se siutilizza AWS CLI versione 1, è possibile creare e utilizzare solo modelli di skeleton di input JSON.

La maggior parte dei comandi AWS Command Line Interface (AWS CLI) consente di accettare tutti gli inputdi parametri da un file utilizzando i parametri --cli-input-json e --cli-input-yaml.

Questi stessi comandi forniscono opportunamente il parametro --generate-cli-skeleton pergenerare un file in formato JSON o YAML con tutti i parametri che può essere modificato e compilato.Quindi puoi eseguire il comando con il parametro --cli-input-json o --cli-input-yaml appropriatoe scegliere il file compilato.

Important

Diversi comandi AWS CLI non vengono mappati direttamente alle singole operazioni API AWS,ad esempio i comandi aws s3. Questi comandi non supportano i parametri --generate-cli-skeleton, --cli-input-json e --cli-input-yaml trattati in questo argomento. Se non sisa se un comando specifico supporta questi parametri, eseguire il comando seguente, sostituendol' service e command che riporta quelli che ti interessano.

$ aws service command help

L'output include una sezione Synopsis che mostra i parametri supportati dal comandospecificato.

$ aws iam list-users help...SYNOPSIS list-users ... [--cli-input-json | --cli-input-yaml] ... [--generate-cli-skeleton <value>]

105

Page 111: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

...

Il parametro --generate-cli-skeleton impedisce l'esecuzione del comando, generando evisualizzando invece un modello di parametri personalizzabile che può essere utilizzato come input in unsecondo momento. Il modello generato include tutti i parametri supportati dal comando.

Il parametro --generate-cli-skeleton accetta uno dei seguenti valori:

• input – Il modello generato include tutti i parametri di input formattati come JSON. Si tratta del valore didefault.

• yaml-input – Il modello generato include tutti i parametri di input formattati come YAML.• output – Il modello generato include tutti i parametri di output formattati come JSON. Al momento non è

possibile richiedere parametri di output come YAML.

Poiché l'AWS CLI è essenzialmente un "wrapper" per l'API del servizio, il file di skeleton prevede che tufaccia riferimento a tutti i parametri in base ai nomi del parametro API sottostanti. Questo è probabilmentediverso dal nome del parametro AWS CLI. Ad esempio, un parametro AWS CLI denominato user-namepotrebbe essere mappato al parametro API del servizio AWS denominato UserName (nota le maiuscolee il trattino mancante). Ti consigliamo di utilizzare l'opzione --generate-cli-skeleton per generareil modello con i nomi di parametro "corretti" per evitare errori. Puoi anche fare riferimento alla Guida diriferimento delle API per il servizio per visualizzare i nomi dei parametri previsti. Puoi eliminare dal modellotutti i parametri che non sono obbligatori e per i quali non desideri fornire un valore.

Ad esempio, se esegui questo comando, viene generato il modello di parametri per il comando run-instances di Amazon Elastic Compute Cloud (Amazon EC2).

JSON

Nell'esempio seguente viene illustrato come generare un modello formattato in JSON utilizzando ilvalore predefinito (input) per il parametro --generate-cli-skeleton.

$ aws ec2 run-instances --generate-cli-skeleton

{ "DryRun": true, "ImageId": "", "MinCount": 0, "MaxCount": 0, "KeyName": "", "SecurityGroups": [ "" ], "SecurityGroupIds": [ "" ], "UserData": "", "InstanceType": "", "Placement": { "AvailabilityZone": "", "GroupName": "", "Tenancy": "" }, "KernelId": "", "RamdiskId": "", "BlockDeviceMappings": [ { "VirtualName": "", "DeviceName": "", "Ebs": { "SnapshotId": "",

106

Page 112: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

"VolumeSize": 0, "DeleteOnTermination": true, "VolumeType": "", "Iops": 0, "Encrypted": true }, "NoDevice": "" } ], "Monitoring": { "Enabled": true }, "SubnetId": "", "DisableApiTermination": true, "InstanceInitiatedShutdownBehavior": "", "PrivateIpAddress": "", "ClientToken": "", "AdditionalInfo": "", "NetworkInterfaces": [ { "NetworkInterfaceId": "", "DeviceIndex": 0, "SubnetId": "", "Description": "", "PrivateIpAddress": "", "Groups": [ "" ], "DeleteOnTermination": true, "PrivateIpAddresses": [ { "PrivateIpAddress": "", "Primary": true } ], "SecondaryPrivateIpAddressCount": 0, "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "", "Name": "" }, "EbsOptimized": true}

YAML

Nell'esempio seguente viene illustrato come generare un modello formattato in YAML utilizzando ilvalore yaml-input per il parametro --generate-cli-skeleton.

$ aws ec2 run-instances --generate-cli-skeleton yaml-input

BlockDeviceMappings: # The block device mapping entries.- DeviceName: '' # The device name (for example, /dev/sdh or xvdh). VirtualName: '' # The virtual device name (ephemeralN). Ebs: # Parameters used to automatically set up Amazon EBS volumes when the instance is launched. DeleteOnTermination: true # Indicates whether the EBS volume is deleted on instance termination. Iops: 0 # The number of I/O operations per second (IOPS) that the volume supports. SnapshotId: '' # The ID of the snapshot. VolumeSize: 0 # The size of the volume, in GiB.

107

Page 113: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

VolumeType: st1 # The volume type. Valid values are: standard, io1, gp2, sc1, st1. Encrypted: true # Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. KmsKeyId: '' # Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted. NoDevice: '' # Suppresses the specified device included in the block device mapping of the AMI.ImageId: '' # The ID of the AMI.InstanceType: c4.4xlarge # The instance type. Valid values are: t1.micro, t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge, t3a.nano, t3a.micro, t3a.small, t3a.medium, t3a.large, t3a.xlarge, t3a.2xlarge, m1.small, m1.medium, m1.large, m1.xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge, cr1.8xlarge, r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.8xlarge, r5.12xlarge, r5.16xlarge, r5.24xlarge, r5.metal, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.8xlarge, r5a.12xlarge, r5a.16xlarge, r5a.24xlarge, r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.8xlarge, r5d.12xlarge, r5d.16xlarge, r5d.24xlarge, r5d.metal, r5ad.large, r5ad.xlarge, r5ad.2xlarge, r5ad.4xlarge, r5ad.8xlarge, r5ad.12xlarge, r5ad.16xlarge, r5ad.24xlarge, x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal, i3en.large, i3en.xlarge, i3en.2xlarge, i3en.3xlarge, i3en.6xlarge, i3en.12xlarge, i3en.24xlarge, i3en.metal, hi1.4xlarge, hs1.8xlarge, c1.medium, c1.xlarge, c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.metal, c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.18xlarge, c5n.large, c5n.xlarge, c5n.2xlarge, c5n.4xlarge, c5n.9xlarge, c5n.18xlarge, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g3s.xlarge, g4dn.xlarge, g4dn.2xlarge, g4dn.4xlarge, g4dn.8xlarge, g4dn.12xlarge, g4dn.16xlarge, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, p3dn.24xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, f1.2xlarge, f1.4xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.8xlarge, m5.12xlarge, m5.16xlarge, m5.24xlarge, m5.metal, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.8xlarge, m5a.12xlarge, m5a.16xlarge, m5a.24xlarge, m5d.large, m5d.xlarge, m5d.2xlarge, m5d.4xlarge, m5d.8xlarge, m5d.12xlarge, m5d.16xlarge, m5d.24xlarge, m5d.metal, m5ad.large, m5ad.xlarge, m5ad.2xlarge, m5ad.4xlarge, m5ad.8xlarge, m5ad.12xlarge, m5ad.16xlarge, m5ad.24xlarge, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge, z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge, z1d.metal, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal, a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge, a1.metal, m5dn.large, m5dn.xlarge, m5dn.2xlarge, m5dn.4xlarge, m5dn.8xlarge, m5dn.12xlarge, m5dn.16xlarge, m5dn.24xlarge, m5n.large, m5n.xlarge, m5n.2xlarge, m5n.4xlarge, m5n.8xlarge, m5n.12xlarge, m5n.16xlarge, m5n.24xlarge, r5dn.large, r5dn.xlarge, r5dn.2xlarge, r5dn.4xlarge, r5dn.8xlarge, r5dn.12xlarge, r5dn.16xlarge, r5dn.24xlarge, r5n.large, r5n.xlarge, r5n.2xlarge, r5n.4xlarge, r5n.8xlarge, r5n.12xlarge, r5n.16xlarge, r5n.24xlarge.Ipv6AddressCount: 0 # [EC2-VPC] The number of IPv6 addresses to associate with the primary network interface.Ipv6Addresses: # [EC2-VPC] The IPv6 addresses from the range of the subnet to associate with the primary network interface.- Ipv6Address: '' # The IPv6 address.KernelId: '' # The ID of the kernel.KeyName: '' # The name of the key pair.MaxCount: 0 # [REQUIRED] The maximum number of instances to launch.MinCount: 0 # [REQUIRED] The minimum number of instances to launch.Monitoring: # Specifies whether detailed monitoring is enabled for the instance. Enabled: true # [REQUIRED] Indicates whether detailed monitoring is enabled.Placement: # The placement for the instance. AvailabilityZone: '' # The Availability Zone of the instance. Affinity: '' # The affinity setting for the instance on the Dedicated Host. GroupName: '' # The name of the placement group the instance is in. PartitionNumber: 0 # The number of the partition the instance is in.

108

Page 114: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

HostId: '' # The ID of the Dedicated Host on which the instance resides. Tenancy: dedicated # The tenancy of the instance (if the instance is running in a VPC). Valid values are: default, dedicated, host. SpreadDomain: '' # Reserved for future use.RamdiskId: '' # The ID of the RAM disk to select.SecurityGroupIds: # The IDs of the security groups.- ''SecurityGroups: # [EC2-Classic, default VPC] The names of the security groups.- ''SubnetId: '' # [EC2-VPC] The ID of the subnet to launch the instance into.UserData: '' # The user data to make available to the instance.AdditionalInfo: '' # Reserved.ClientToken: '' # Unique, case-sensitive identifier you provide to ensure the idempotency of the request.DisableApiTermination: true # If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can.DryRun: true # Checks whether you have the required permissions for the action, without actually making the request, and provides an error response.EbsOptimized: true # Indicates whether the instance is optimized for Amazon EBS I/O.IamInstanceProfile: # The IAM instance profile. Arn: '' # The Amazon Resource Name (ARN) of the instance profile. Name: '' # The name of the instance profile.InstanceInitiatedShutdownBehavior: stop # Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Valid values are: stop, terminate.NetworkInterfaces: # The network interfaces to associate with the instance.- AssociatePublicIpAddress: true # Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. DeleteOnTermination: true # If set to true, the interface is deleted when the instance is terminated. Description: '' # The description of the network interface. DeviceIndex: 0 # The position of the network interface in the attachment order. Groups: # The IDs of the security groups for the network interface. - '' Ipv6AddressCount: 0 # A number of IPv6 addresses to assign to the network interface. Ipv6Addresses: # One or more IPv6 addresses to assign to the network interface. - Ipv6Address: '' # The IPv6 address. NetworkInterfaceId: '' # The ID of the network interface. PrivateIpAddress: '' # The private IPv4 address of the network interface. PrivateIpAddresses: # One or more private IPv4 addresses to assign to the network interface. - Primary: true # Indicates whether the private IPv4 address is the primary private IPv4 address. PrivateIpAddress: '' # The private IPv4 addresses. SecondaryPrivateIpAddressCount: 0 # The number of secondary private IPv4 addresses. SubnetId: '' # The ID of the subnet associated with the network interface. InterfaceType: '' # The type of network interface.PrivateIpAddress: '' # [EC2-VPC] The primary IPv4 address.ElasticGpuSpecification: # An elastic GPU to associate with the instance.- Type: '' # [REQUIRED] The type of Elastic Graphics accelerator.ElasticInferenceAccelerators: # An elastic inference accelerator to associate with the instance.- Type: '' # [REQUIRED] The type of elastic inference accelerator.TagSpecifications: # The tags to apply to the resources during launch.- ResourceType: network-interface # The type of resource to tag. Valid values are: client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, launch-template, natgateway, network-acl, network-interface, reserved-instances, route-table, security-group, snapshot, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway. Tags: # The tags to apply to the resource. - Key: '' # The key of the tag. Value: '' # The value of the tag.LaunchTemplate: # The launch template to use to launch the instances.

109

Page 115: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

LaunchTemplateId: '' # The ID of the launch template. LaunchTemplateName: '' # The name of the launch template. Version: '' # The version number of the launch template.InstanceMarketOptions: # The market (purchasing) option for the instances. MarketType: spot # The market type. Valid values are: spot. SpotOptions: # The options for Spot Instances. MaxPrice: '' # The maximum hourly price you're willing to pay for the Spot Instances. SpotInstanceType: one-time # The Spot Instance request type. Valid values are: one-time, persistent. BlockDurationMinutes: 0 # The required duration for the Spot Instances (also known as Spot blocks), in minutes. ValidUntil: 1970-01-01 00:00:00 # The end date of the request. InstanceInterruptionBehavior: terminate # The behavior when a Spot Instance is interrupted. Valid values are: hibernate, stop, terminate.CreditSpecification: # The credit option for CPU usage of the T2 or T3 instance. CpuCredits: '' # [REQUIRED] The credit option for CPU usage of a T2 or T3 instance.CpuOptions: # The CPU options for the instance. CoreCount: 0 # The number of CPU cores for the instance. ThreadsPerCore: 0 # The number of threads per CPU core.CapacityReservationSpecification: # Information about the Capacity Reservation targeting option. CapacityReservationPreference: none # Indicates the instance's Capacity Reservation preferences. Valid values are: open, none. CapacityReservationTarget: # Information about the target Capacity Reservation. CapacityReservationId: '' # The ID of the Capacity Reservation.HibernationOptions: # Indicates whether an instance is enabled for hibernation. Configured: true # If you set this parameter to true, your instance is enabled for hibernation.LicenseSpecifications: # The license configurations.- LicenseConfigurationArn: '' # The Amazon Resource Name (ARN) of the license configuration.

Per generare e utilizzare un file scheletro dei parametri

1. Eseguire il comando con il parametro --generate-cli-skeleton per produrre JSON o YAML eindirizzare l'output a un file per salvarlo.

JSON

$ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json

YAML

$ aws ec2 run-instances --generate-cli-skeleton yaml-input > ec2runinst.yaml

2. Apri il file scheletro dei parametri nell'editor di testo e rimuovi qualsiasi parametro non necessario. Adesempio, è possibile eliminare il modello fino al seguente. Assicurati che il file sia ancora nel formatoJSON o YAML valido dopo aver rimosso gli elementi non necessari.

JSON

{ "DryRun": true, "ImageId": "", "KeyName": "", "SecurityGroups": [ "" ], "InstanceType": "", "Monitoring": {

110

Page 116: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

"Enabled": true }}

YAML

DryRun: trueImageId: ''KeyName: ''SecurityGroups:- ''InstanceType:Monitoring: Enabled: true

In questo esempio, il parametro DryRun viene lasciato impostato su true per utilizzare la funzionedi test Amazon EC2. Questa funzione consente di testare in modo sicuro il comando senza creare omodificare effettivamente alcuna risorsa.

3. Compila i valori rimanenti con valori appropriati per il tuo scenario. In questo esempio, forniamo il tipodi istanza, il nome della chiave, il gruppo di sicurezza e l'identificatore dell'Amazon Machine Image(AMI) da utilizzare. Questo esempio prevede l'utilizzo della regione AWS predefinita. L'AMI ami-dfc39aef è un'immagine a 64 bit Amazon Linux ospitata nella regione us-west-2. Se utilizzi un'altraregione, devi trovare l'ID AMI corretto da utilizzare.

JSON

{ "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true }}

YAML

DryRun: trueImageId: 'ami-dfc39aef'KeyName: 'mykey'SecurityGroups:- 'my-sg'InstanceType: 't2.micro'Monitoring: Enabled: true

4. Eseguire il comando con i parametri completati passando il file modello completato al parametro --cli-input-json o --cli-input-yaml utilizzando il prefisso file://. L'AWS CLI interpreta ilpercorso come relativo alla directory di lavoro corrente, quindi l'esempio seguente che mostra solo ilnome del file senza percorso cerca il file direttamente nella directory di lavoro corrente.

JSON

$ aws ec2 run-instances --cli-input-json file://ec2runinst.json

111

Page 117: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerazione di un modello dello skeleton della CLI

A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

YAML

$ aws ec2 run-instances --cli-input-yaml file://ec2runinst.yaml

A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

L'errore in fase di test indica che la formattazione del JSON o YAML è corretta e i valori dei parametrisono validi. Se nell'output vengono segnalati altri problemi, correggerli e ripetere la fase precedentefino a quando non viene visualizzato il messaggio"Request would have succeeded".

5. Ora puoi impostare il parametro DryRun su false per disabilitare il test.

JSON

{ "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true }}

YAML

DryRun: falseImageId: 'ami-dfc39aef'KeyName: 'mykey'SecurityGroups:- 'my-sg'InstanceType: 't2.micro'Monitoring: Enabled: true

6. Eseguire il comando, e run-instances avvia effettivamente un'istanza EC2 e visualizza tutte leinformazioni generate dal lancio corretto. Il formato dell'output è controllato dal parametro --output,separatamente dal formato del modello di parametro di input.

JSON

$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json

{ "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [

112

Page 118: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteSintassi abbreviata

...

YAML

$ aws ec2 run-instances --cli-input-yaml file://ec2runinst.yaml --output yaml

OwnerId: '123456789012'ReservationId: 'r-d94a2b1',Groups":- ''Instances:...

Utilizzo della sintassi abbreviata con l'AWS CLIIl AWS Command Line Interface (AWS CLI) può accettare molti dei suoi parametri opzionali in formatoJSON. Tuttavia, può essere noioso immettere lunghi elenchi o strutture JSON nella riga di comando.Per agevolare l'operazione, AWS CLI supporta anche una sintassi abbreviata che consente unarappresentazione più semplice dei parametri delle opzioni rispetto a quella che prevede l'utilizzo delformato JSON completo.

Parametri di strutturaLa sintassi abbreviata nell'AWS CLI rende più semplice per gli utenti immettere parametri piatti (strutturenon nidificate). Il formato è un elenco separato da virgole di coppie chiave-valore.

Linux o macOS

--option key1=value1,key2=value2,key3=value3

PowerShell

--option "key1=value1,key2=value2,key3=value3"

Entrambe le stringhe sono equivalenti all'esempio seguente in formato JSON.

--option '{"key1":"value1","key2":"value2","key3":"value3"}'

Le coppie chiave-valore separate da virgole non devono contenere spazi vuoti. Ecco un esempio delAmazon DynamoDB update-table con il --provisioned-throughput opzione specificata inshorthand.

$ aws dynamodb update-table \ --provisioned-throughput ReadCapacityUnits=15,WriteCapacityUnits=10 \ --table-name MyDDBTable

È l'equivalente dell'esempio seguente in formato JSON.

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}' \ --table-name MyDDBTable

113

Page 119: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteSintassi abbreviata

Utilizzo della sintassi abbreviata con l'AWS Command LineInterfaceÈ possibile specificare i parametri di input in un modulo elenco in due modi: JSON o in costa. La sintassiabbreviata di AWS CLI è stata progettata per rendere più facile il trasferimento di elenchi di numeri, distringhe o di strutture non nidificate.

Qui viene mostrato il formato di base,in cui i valori nell'elenco sono separati da un solo spazio.

--option value1 value2 value3

È l'equivalente dell'esempio seguente in formato JSON.

--option '[value1,value2,value3]'

Come accennato in precedenza, è possibile specificare un elenco di numeri, un elenco di stringhe oun elenco di strutture non nidificate in forato abbreviato. Di seguito è riportato un esempio di stop-instances comando per Amazon Elastic Compute Cloud (Amazon EC2), dove il parametro di input(elenco delle stringhe) per il --instance-ids è specificato in shorthand.

$ aws ec2 stop-instances \ --instance-ids i-1486157a i-1286157c i-ec3a7e87

È l'equivalente dell'esempio seguente in formato JSON.

$ aws ec2 stop-instances \ --instance-ids '["i-1486157a","i-1286157c","i-ec3a7e87"]'

L'esempio seguente mostra il Amazon EC2 create-tags che richiede un elenco di strutture non nidificateper il --tags. L'opzione --resources specifica l'ID dell'istanza da contrassegnare.

$ aws ec2 create-tags \ --resources i-1286157c \ --tags Key=My1stTag,Value=Value1 Key=My2ndTag,Value=Value2 Key=My3rdTag,Value=Value3

È l'equivalente dell'esempio seguente in formato JSON. Il parametro JSON viene scritto su più righe permaggiore leggibilità.

$ aws ec2 create-tags \ --resources i-1286157c \ --tags '[ {"Key": "My1stTag", "Value": "Value1"}, {"Key": "My2ndTag", "Value": "Value2"}, {"Key": "My3rdTag", "Value": "Value3"} ]'

114

Page 120: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePrompt automatico

Impostazione di AWS CLI in modo che richieda icomandi

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Quando esegui un comando AWS CLI versione 2, puoi fare in modo che aws richieda comandi, parametri erisorse.

Argomenti• Come funziona (p. 115)• Funzionalità di prompt automatico (p. 115)• Modalità di prompt automatico (p. 117)• Configurare il prompt automatico (p. 118)

Come funzionaSe abilitata, il prompt automatico consente di utilizzare il tasto INVIO per completare un comando inseritoparzialmente. Dopo aver premuto il tasto INVIO, i comandi, i parametri e le risorse vengono suggeriti inbase a ciò che si continua a digitare. I suggerimenti elencano il nome del comando, il parametro o la risorsaa sinistra e una descrizione a destra. Per selezionare e utilizzare un suggerimento, utilizzare i tasti frecciaper evidenziare una riga, quindi premere il tasto SPACE. Una volta inserito il comando, premere INVIO perutilizzare il comando. L'esempio seguente mostra l'aspetto di un elenco suggerito dal prompt automatico.

$ aws> aws a accessanalyzer Access Analyzer acm AWS Certificate Manager acm-pca AWS Certificate Manager Private Certificate Authority alexaforbusiness Alexa For Business amplify AWS Amplify

Funzionalità di prompt automaticoIl prompt automatico contiene le seguenti caratteristiche utili:

Pannello della documentazione

Fornisce la documentazione della guida per il comando corrente. Per aprire la documentazione,premere il tasto F3.

Completamento dei comandi

Suggerisce i comandi aws da utilizzare. Per visualizzare un elenco, immettere parzialmente ilcomando. L'esempio seguente cerca un servizio che inizia con la lettera a.

$ aws> aws a accessanalyzer Access Analyzer acm AWS Certificate Manager acm-pca AWS Certificate Manager Private Certificate Authority

115

Page 121: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteFunzionalità di prompt automatico

alexaforbusiness Alexa For Business amplify AWS Amplify

Completamento dei parametri

Dopo che un comando è stato digitato, il prompt automatico inizia a suggerire i parametri. Ledescrizioni per i parametri includono il tipo di valore e una descrizione del parametro. I parametriobbligatori sono elencati per primi e vengono etichettati come necessari. L'esempio seguente mostral'elenco di parametri del prompt automatico per aws dynamodb describe-table.

$ aws dynamodb describe-table> aws dynamodb describe-table --table-name (required) [string] The name of the table to describe. --cli-input-json [string] Reads arguments from the JSON string provided. The JSON string follows the format provide... --cli-input-yaml [string] Reads arguments from the YAML string provided. The YAML string follows the format provide... --generate-cli-skeleton [string] Prints a JSON skeleton to standard output without sending an API request. If provided wit...

Completamento delle risorse

Il prompt automatico effettua chiamate API AWS utilizzando le proprietà delle risorse AWS disponibiliper suggerire i valori delle risorse. Ciò consente al prompt automatico di suggerire le possibili risorse ditua proprietà quando inserisci i parametri. Nel seguente esempio di prompt automatico elenca i nomi ditabella quando si compila il parametro --table-name per il comando aws dynamodb describe-table.

$ aws dynamodb describe-table> aws dynamodb describe-table --table-name Table1 Table2 Table3

Completamento abbreviato

Per i parametri che utilizzano la sintassi abbreviata, suggerisce automaticamente i valori da utilizzare.Nell'esempio seguente, il prompt automatico elenca i valori di sintassi abbreviata per il parametro --placement nel comando aws ec2 run-stances.

$ aws ec2 run-instances> aws ec2 run-instances --placement AvailabilityZone= [string] The Availability Zone of the instance. If not specified, an Availability Zone wil... Affinity= [string] The affinity setting for the instance on the Dedicated Host. This parameter is no... GroupName= [string] The name of the placement group the instance is in. PartitionNumber= [integer] The number of the partition the instance is in. Valid only if the placement grou...

Completamento dei file

Quando si compilano i parametri nei comandi aws, il completamento automatico suggerisce i nomidi file locali dopo l'utilizzo del prefisso file:// o fileb://. Nell'esempio seguente, il promptautomatico suggerisce i file locali dopo l'immissione in --item file:// per il comando aws ec2run-instances.

$ aws ec2 run-instances

116

Page 122: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteModalità di prompt automatico

> aws ec2 run-instances --item file:// item1.txt file1.json file2.json

Completamento regione

Quando si utilizza il parametro globale --region, il prompt automatico elenca le regioni possibili dacui effettuare la selezione. Nell'esempio seguente, il prompt automatico suggerisce le regioni in ordinealfabetico dopo aver immesso --region per il comando aws dynamodb list-tables.

$ aws dynamodb list-tables> aws dynamodb list-tables --region af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2

Completamento del profilo

Quando si utilizza il parametro globale --profile, il prompt automatico elenca i profili. Nell'esempioseguente, il prompt automatico suggerisce i profili dopo l'immissione in --profile per il comandoaws dynamodb list-tables.

$ aws dynamodb list-tables> aws dynamodb list-tables --profile profile1 profile2 profile3

Ricerca fuzzy

Completa i comandi e i valori che contengono uno specifico set di caratteri. Nell'esempio seguente, ilprompt automatico suggerisce le regioni che contengono eu dopo aver immesso in --region eu ilcomando aws dynamodb list-tables.

$ aws dynamodb list-tables> aws dynamodb list-tables --region west eu-west-1 eu-west-2 eu-west-3 us-west-1

Cronologia

Per visualizzare ed eseguire i comandi utilizzati in precedenza in modalità di prompt automatico,premere CTRL + R. La cronologia elenca i comandi precedenti che puoi selezionare utilizzando i tastifreccia. Nell'esempio seguente, viene visualizzata la cronologia della modalità di prompt automatico.

$ aws> aws dynamodb list-tables s3 ls

Modalità di prompt automaticoIl prompt automatico per AWS CLI versione 2 ha 2 modalità che possono essere configurate:

117

Page 123: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurare il prompt automatico

• Full mode (Modalità completa): Utilizza il prompt automatico ogni volta che tenti di eseguire un comandoaws, che venga chiamato manualmente utilizzando il parametro --cli-auto-prompt o che vengaabilitato in modo permanente. Questo include la pressione di INVIO dopo un comando completo o uncomando incompleto.

• Modalità parziale: Utilizza il prompt automatico se un comando è incompleto o non può essere eseguitoa causa di errori di convalida lato client. Questa modalità è particolarmente utile se si dispone di scriptpreesistenti, runbook o se si desidera essere invitati automaticamente per i comandi con cui non si hafamiliarità anziché su richiesta per ogni comando.

Configurare il prompt automaticoPer configurare il prompt automatico puoi utilizzare i seguenti metodi in ordine di precedenza:

• Opzioni della riga di comando abilita o disabilita il prompt automatico per un singolo comando.Utilizza --cli-auto-prompt (p. 72) per chiamare il prompt automatico e --no-cli-auto-prompt (p. 73) per disabilitare il prompt automatico.

• Le variabili di ambienteaws_cli_auto_prompt (p. 69) utilizzano la variabile .• I file di configurazione condivisicli_auto_prompt (p. 52) utilizzano l'impostazione .

Controllo dell'output dei comandi da AWS CLIIn questo argomento vengono descritti i diversi modi per controllare l'output dall'AWS Command LineInterface (AWS CLI).

Argomenti• Come scegliere il formato di output (p. 118)• Formato di output JSON (p. 119)• Il formato YAML dell'output (p. 120)• Formato di output del flusso YAML (p. 120)• Formato di output di testo (p. 121)• Formato di output di tabella (p. 124)• Come filtrare l'output con l'opzione --query (p. 125)• Come impostare il programma pager predefinito dell'output (p. 130)

Come scegliere il formato di outputL'AWS CLI supporta quattro formati di output:

• json (p. 119): l'output è formattato come una stringa JSON.• yaml (p. 120): l'output è formattato come una stringa YAML. (Disponibile solo nella AWS CLI versione

2.)• yaml-stream (p. 120) – L' output viene trasmesso in streaming e formattato come stringa YAML. Lo

streaming consente una gestione più rapida dei tipi di dati di grandi dimensioni. (Disponibile solo nellaAWS CLI versione 2.)

• text (p. 121): l'output è formattato come più righe di valori di stringa separati da tabulazioni. Ciò puòessere utile per passare l'output a un processore di testi, come grep, sed o awk.

• table (p. 124): l'output è formattato come una tabella utilizzando i caratteri +|- per formare i bordidelle celle. In genere presenta le informazioni in un formato comprensibile molto più semplice da leggererispetto ad altri, ma non altrettanto utile a livello programmatico.

118

Page 124: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteFormato di output JSON

Come illustrato nell'argomento relativo alla configurazione (p. 44), puoi specificare il formato di output in tremodi diversi:

• Utilizzando l'opzione output in un profilo denominato nel file config – L'esempio seguente imposta ilformato di output predefinito su text.

[default]output=text

• Utilizzo della variabile d'ambiente AWS_DEFAULT_OUTPUT – L'output seguente imposta il formato sutable per i comandi di questa sessione dalla riga di comando fino a quando la variabile viene modificatao la sessione termina. L'utilizzo di questa variabile di ambiente sostituisce il valore impostato nel fileconfig.

$ export AWS_DEFAULT_OUTPUT="table"

• Utilizzando l'opzione --output nella riga di comando – L'esempio seguente imposta l'output di un solocomando su json. L'utilizzo di questa opzione sul comando sostituisce qualsiasi variabile di ambienteattualmente impostata o il valore nel file config.

$ aws swf list-domains --registration-status REGISTERED --output json

È possibile personalizzare e filtrare i risultati in qualsiasi formato utilizzando il parametro --query. Perulteriori informazioni, vedi Come filtrare l'output con l'opzione --query (p. 125).

Formato di output JSONJSON è il formato di output predefinito dell'AWS CLI. La maggior parte dei linguaggi di programmazionepuò decodificare facilmente le stringhe JSON utilizzando funzioni integrate o con librerie disponibilipubblicamente. È possibile combinare l'output JSON con l' opzione --query (p. 125) in modi potenti perfiltrare e formattare l'output formattato JSON dell'AWS CLI.

Per un filtro più avanzato che potrebbe non essere eseguibile con --query, è possibile prendere inconsiderazione jq, un processore JSON a riga di comando. Il tutorial ufficiale è disponibile per il downloadall'indirizzo http://stedolan.github.io/jq/.

Di seguito è riportato un esempio di output JSON:

$ aws iam list-users --output json

{ "Users": [ { "Path": "/", "UserName": "Admin", "UserId": "AIDA1111111111EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/Admin", "CreateDate": "2014-10-16T16:03:09+00:00", "PasswordLastUsed": "2016-06-03T18:37:29+00:00" }, { "Path": "/backup/", "UserName": "backup-user", "UserId": "AIDA2222222222EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/backup/backup-user", "CreateDate": "2019-09-17T19:30:40+00:00" },

119

Page 125: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteIl formato YAML dell'output

{ "Path": "/", "UserName": "cli-user", "UserId": "AIDA3333333333EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/cli-user", "CreateDate": "2019-09-17T19:11:39+00:00" } ]}

Il formato YAML dell'outputQuesta caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

YAML è una buona scelta per gestire l'output a livello di codice con strumenti e servizi che emettono oconsumano stringhe formattate YAML, ad esempio AWS CloudFormation, con il supporto per modelliformattati YAML.

Per un filtro più avanzato che potrebbe non essere possibile eseguire con --query, è possibileprendere in considerazione yq, un processore YAML della riga di comando. Puoi scaricarlo e trovare ladocumentazione all'indirizzo https://mikefarah.gitbook.io/yq/.

Segue un esempio di output YAML.

$ aws iam list-users --output yaml

Users:- Arn: arn:aws:iam::123456789012:user/Admin CreateDate: '2014-10-16T16:03:09+00:00' PasswordLastUsed: '2016-06-03T18:37:29+00:00' Path: / UserId: AIDA1111111111EXAMPLE UserName: Admin- Arn: arn:aws:iam::123456789012:user/backup/backup-user CreateDate: '2019-09-17T19:30:40+00:00' Path: /backup/ UserId: AIDA2222222222EXAMPLE UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19- Arn: arn:aws:iam::123456789012:user/cli-user CreateDate: '2019-09-17T19:30:40+00:00' Path: / UserId: AIDA3333333333EXAMPLE UserName: cli-user

Formato di output del flusso YAMLQuesta caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

Il formato yaml-stream sfrutta il formato YAML, che offre una visualizzazione più rapida/reattività di setdi dati di grandi dimensioni grazie allo streaming dei dati. Puoi iniziare a visualizzare e utilizzare dati YAMLprima che l'intera query venga scaricata.

120

Page 126: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteFormato di output di testo

Per un filtro più avanzato che potrebbe non essere possibile eseguire con --query, è possibileprendere in considerazione yq, un processore YAML della riga di comando. Puoi scaricarlo e trovare ladocumentazione all'indirizzo http://mikefarah.github.io/yq/.

Segue un esempio di output yaml-stream.

$ aws iam list-users --output yaml-stream

- IsTruncated: false Users: - Arn: arn:aws:iam::123456789012:user/Admin CreateDate: '2014-10-16T16:03:09+00:00' PasswordLastUsed: '2016-06-03T18:37:29+00:00' Path: / UserId: AIDA1111111111EXAMPLE UserName: Admin - Arn: arn:aws:iam::123456789012:user/backup/backup-user CreateDate: '2019-09-17T19:30:40+00:00' Path: /backup/ UserId: AIDA2222222222EXAMPLE UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19 - Arn: arn:aws:iam::123456789012:user/cli-user CreateDate: '2019-09-17T19:30:40+00:00' Path: / UserId: AIDA3333333333EXAMPLE UserName: cli-user

Di seguito è riportato un esempio di output yaml-stream in combinazione con l'utilizzo del parametro --page-size per eseguire la paginazione del contenuto YAML in streaming.

$ aws iam list-users --output yaml-stream --page-size 2

- IsTruncated: true Marker: ab1234cdef5ghi67jk8lmo9p/q012rs3t445uv6789w0x1y2z/345a6b78c9d00/1efgh234ij56klmno78pqrstu90vwxyx Users: - Arn: arn:aws:iam::123456789012:user/Admin CreateDate: '2014-10-16T16:03:09+00:00' PasswordLastUsed: '2016-06-03T18:37:29+00:00' Path: / UserId: AIDA1111111111EXAMPLE UserName: Admin - Arn: arn:aws:iam::123456789012:user/backup/backup-user CreateDate: '2019-09-17T19:30:40+00:00' Path: /backup/ UserId: AIDA2222222222EXAMPLE UserName: arq-45EFD6D1-CE56-459B-B39F-F9C1F78FBE19- IsTruncated: false Users: - Arn: arn:aws:iam::123456789012:user/cli-user CreateDate: '2019-09-17T19:30:40+00:00' Path: / UserId: AIDA3333333333EXAMPLE UserName: cli-user

Formato di output di testoIl formato text organizza l'output dell'AWS CLI in righe delimitate da tabulazione. Funziona perfettamentecon gli strumenti di testo Unix tradizionali, ad esempio grep, sed e awk, e con l'elaborazione del testoeseguita da PowerShell.

121

Page 127: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteFormato di output di testo

Il formato di output text segue la struttura di base riportata di seguito. Le colonne sono disposte in ordinealfabetico in base ai nomi di chiave corrispondenti dell'oggetto JSON sottostante.

IDENTIFIER sorted-column1 sorted-column2IDENTIFIER2 sorted-column1 sorted-column2

Segue un esempio di output text. Ogni campo è una scheda separata dalle altre, con una schedaaggiuntiva dove c'è un campo vuoto.

$ aws iam list-users --output text

USERS arn:aws:iam::123456789012:user/Admin 2014-10-16T16:03:09+00:00 2016-06-03T18:37:29+00:00 / AIDA1111111111EXAMPLE AdminUSERS arn:aws:iam::123456789012:user/backup/backup-user 2019-09-17T19:30:40+00:00 /backup/ AIDA2222222222EXAMPLE backup-userUSERS arn:aws:iam::123456789012:user/cli-user 2019-09-17T19:11:39+00:00 / AIDA3333333333EXAMPLE cli-user

La quarta colonna è il campo PasswordLastUsed ed è vuota per le ultime due voci perché gli utenti nonaccedono mai alla Console di gestione AWS.

Important

Se specifichi l'output text, ti consigliamo di utilizzare sempre l'opzione --query (p. 125) pergarantire un comportamento coerente.Questo perché il formato di testo ordina alfabeticamente le colonne di output in base al nome dellachiave dell'oggetto JSON sottostante restituito dal servizioAWS e risorse simili potrebbero nonavere gli stessi nomi di chiavi. Ad esempio, una rappresentazione JSON di un'istanza AmazonEC2 basata su Linux potrebbe contenere elementi non presenti nella rappresentazione JSONdi un'istanza basata su Windows o viceversa. Inoltre, negli aggiornamenti futuri delle risorsepotrebbero essere aggiunti o eliminati elementi chiave-valore che modificano l'ordinamento dellacolonna. In questa situazione --query potenzia la funzionalità dell'output di testo text perconsentire il controllo completo sul formato dell'output.Nell'esempio seguente, il comando specifica quali elementi visualizzare e definisce l'ordinamentodelle colonne con la notazione elenco [key1, key2, ...]. Questo ti offre la certezza che ivalori chiave corretti vengono sempre visualizzati nella colonna prevista. Vediamo infine in chemodo l'AWS CLI restituisce None come valore per le chiavi non esistenti.

$ aws iam list-users --output text --query 'Users[*].[UserName,Arn,CreateDate,PasswordLastUsed,UserId]'

Admin arn:aws:iam::123456789012:user/Admin 2014-10-16T16:03:09+00:00 2016-06-03T18:37:29+00:00 AIDA1111111111EXAMPLEbackup-user arn:aws:iam::123456789012:user/backup-user 2019-09-17T19:30:40+00:00 None AIDA2222222222EXAMPLEcli-user arn:aws:iam::123456789012:user/cli-backup 2019-09-17T19:11:39+00:00 None AIDA3333333333EXAMPLE

L'esempio seguente mostra in che modo utilizzare grep e awk con l'output text dal comando aws ec2describe-instances. Il primo comando visualizza la zona di disponibilità, lo stato corrente e l'ID istanzadi ogni istanza nell'output text. Il secondo comando elabora l'output per visualizzare solo l'istanza IDs ditutte le istanze in esecuzione nella zona di disponibilità us-west-2a.

$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Placement.AvailabilityZone, State.Name, InstanceId]' --output text

122

Page 128: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteFormato di output di testo

us-west-2a running i-4b41a37cus-west-2a stopped i-a071c394us-west-2b stopped i-97a217a0us-west-2a running i-3045b007us-west-2a running i-6fc67758

$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Placement.AvailabilityZone, State.Name, InstanceId]' --output text | grep us-west-2a | grep running | awk '{print $3}'

i-4b41a37ci-3045b007i-6fc67758

L'esempio seguente fa un passo in più e mostra non solo come filtrare l'output, ma anche come utilizzarloper automatizzare la modifica dei tipi di istanza per ogni istanza arrestata.

$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[State.Name, InstanceId]' --output text |> grep stopped |> awk '{print $2}' |> while read line;> do aws ec2 modify-instance-attribute --instance-id $line --instance-type '{"Value": "m1.medium"}';> done

L'output text può anche essere utile in PowerShell. Poiché le colonne nell'output text sono delimitateda tabulazioni, è possibile suddividere facilmente l'output in un array utilizzando il delimitatore PowerShelldi `t. Il comando seguente mostra il valore della terza colonna (InstanceId) se la prima colonna(AvailabilityZone) corrisponde alla stringa us-west-2a.

PS C:\>aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Placement.AvailabilityZone, State.Name, InstanceId]' --output text |%{if ($_.split("`t")[0] -match "us-west-2a") { $_.split("`t")[2]; } }

-4b41a37ci-a071c394i-3045b007i-6fc67758

Nota che anche se l'esempio precedente mostra come utilizzare il parametro --query per analizzare glioggetti JSON sottostanti ed estrarre la colonna desiderata, PowerShell ha la propria capacità di gestireJSON, se la compatibilità multipiattaforma non costituisce un problema. Invece di gestire l'output cometesto, come richiesto dalla maggior parte delle shell di comando, PowerShell consente di utilizzare il cmdletConvertFrom-JSON per produrre un oggetto strutturato gerarchicamente. È quindi possibile accederedirettamente al membro desiderato da tale oggetto.

(aws ec2 describe-instances --output json | ConvertFrom-Json).Reservations.Instances.InstanceId

Tip

Se l'output è di testo e si filtra l'output in un unico campo utilizzando il parametro --query, l'outputè una singola riga di valori separati da tabulazione. Per ottenere ogni valore su una riga separata,puoi inserire il campo di output tra parentesi, come mostrato negli esempi seguenti:Output a riga singola, separato da tabulazione:

123

Page 129: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteFormato di output di tabella

$ aws iam list-groups-for-user --user-name susan --output text --query "Groups[].GroupName"

HRDepartment Developers SpreadsheetUsers LocalAdmins

Ogni valore nella propria riga inserendo [GroupName] tra parentesi:

$ aws iam list-groups-for-user --user-name susan --output text --query "Groups[].[GroupName]"

HRDepartmentDevelopersSpreadsheetUsersLocalAdmins

Formato di output di tabellaIl formato table produce rappresentazioni leggibili degli output complessi di AWS CLI in formato tabulare.

$ aws iam list-users --output table

-----------------------------------------------------------------------------------------------------------------------------------------------------------------| ListUsers |+---------------------------------------------------------------------------------------------------------------------------------------------------------------+|| Users |||+----------------------------------------------------+---------------------------+---------------------------+----------+-----------------------+-------------+||| Arn | CreateDate | PasswordLastUsed | Path | UserId | UserName |||+----------------------------------------------------+---------------------------+---------------------------+----------+-----------------------+-------------+||| arn:aws:iam::123456789012:user/Admin | 2014-10-16T16:03:09+00:00 | 2016-06-03T18:37:29+00:00 | / | AIDA1111111111EXAMPLE | Admin |||| arn:aws:iam::123456789012:user/backup/backup-user | 2019-09-17T19:30:40+00:00 | | /backup/ | AIDA2222222222EXAMPLE | backup-user |||| arn:aws:iam::123456789012:user/cli-user | 2019-09-17T19:11:39+00:00 | | / | AIDA3333333333EXAMPLE | cli-user ||+---------------------------------------------------------------------------------------------------------------------------------------------------------------+

Puoi combinare l'opzione --query con il formato table per visualizzare un set di elementi preselezionatidall'output non elaborato. Osserva le differenze di output nelle notazioni dizionario ed elenco: nel primoesempio, i nomi delle colonne sono in ordine alfabetico, mentre nel secondo esempio le colonne senzanome sono ordinate in base a quanto definito dall'utente. Per ulteriori informazioni sull'opzione --query,consulta Come filtrare l'output con l'opzione --query (p. 125).

$ aws ec2 describe-volumes --query 'Volumes[*].{ID:VolumeId,InstanceId:Attachments[0].InstanceId,AZ:AvailabilityZone,Size:Size}' --output table

------------------------------------------------------| DescribeVolumes |

124

Page 130: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCome filtrare l'output con l'opzione --query

+------------+----------------+--------------+-------+| AZ | ID | InstanceId | Size |+------------+----------------+--------------+-------+| us-west-2a| vol-e11a5288 | i-a071c394 | 30 || us-west-2a| vol-2e410a47 | i-4b41a37c | 8 |+------------+----------------+--------------+-------+

$ aws ec2 describe-volumes --query 'Volumes[*].[VolumeId,Attachments[0].InstanceId,AvailabilityZone,Size]' --output table

----------------------------------------------------| DescribeVolumes |+--------------+--------------+--------------+-----+| vol-e11a5288| i-a071c394 | us-west-2a | 30 || vol-2e410a47| i-4b41a37c | us-west-2a | 8 |+--------------+--------------+--------------+-----+

Come filtrare l'output con l'opzione --queryL'AWS CLI fornisce funzionalità di filtro dell'output basate su JSON predefinite con l'opzione --query. Ilparametro --query accetta stringhe conformi alla specifica JMESPath.

Important

Il tipo di output specificato (json, yaml, text o table) influenza il funzionamento dell'opzione --query.

• Se si specifica --output text, l'output viene paginato prima dell'applicazione del filtro --query e l'AWS CLI esegue la query una volta in ogni pagina dell'output. Questo può generareoutput aggiuntivi inattesi, soprattutto se il filtro specifica un elemento array utilizzando adesempio [0], perché l'output include il primo elemento corrispondente in ogni pagina. Perrisolvere il problema di output aggiuntivo che --output text può produrre, puoi specificare--no-paginate. In questo modo il filtro viene applicato solo al set completo di risultati. Marimuove qualsiasi paginazione, quindi potrebbe risultare in un output lungo. È inoltre possibileutilizzare altri strumenti a riga di comando, ad esempio head o tail per filtrare ulteriormentel'output solo per i valori desiderati.

• Se si specifica --output json, l'output viene completamente elaborato come una strutturaJSON singola nativa prima dell'applicazione del filtro --query. L'AWS CLI esegue la querysolo una volta sull'intera struttura JSON, producendo un risultato JSON filtrato che viene quindiemesso.

• Se si specifica --output yaml, l'output viene completamente elaborato come una strutturaJSON singola nativa prima dell'applicazione del filtro --query. L'AWS CLI esegue la querysolo una volta sull'intera struttura JSON, producendo un risultato JSON filtrato che viene quindiconvertito in YAML e output.

Per dimostrare come funziona --query, iniziamo con il seguente output JSON predefinito. Vengonodescritti due volumi Amazon Elastic Block Store (Amazon EBS) collegati a istanze Amazon EC2 separate.

$ aws ec2 describe-volumes

{ "Volumes": [ { "AvailabilityZone": "us-west-2a",

125

Page 131: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCome filtrare l'output con l'opzione --query

"Attachments": [ { "AttachTime": "2013-09-17T00:55:03.000Z", "InstanceId": "i-a071c394", "VolumeId": "vol-e11a5288", "State": "attached", "DeleteOnTermination": true, "Device": "/dev/sda1" } ], "VolumeType": "standard", "VolumeId": "vol-e11a5288", "State": "in-use", "SnapshotId": "snap-f23ec1c8", "CreateTime": "2013-09-17T00:55:03.000Z", "Size": 30 }, { "AvailabilityZone": "us-west-2a", "Attachments": [ { "AttachTime": "2013-09-18T20:26:16.000Z", "InstanceId": "i-4b41a37c", "VolumeId": "vol-2e410a47", "State": "attached", "DeleteOnTermination": true, "Device": "/dev/sda1" } ], "VolumeType": "standard", "VolumeId": "vol-2e410a47", "State": "in-use", "SnapshotId": "snap-708e8348", "CreateTime": "2013-09-18T20:26:15.000Z", "Size": 8 } ]}

Possiamo scegliere di visualizzare solo il primo volume dall'elenco Volumes con il comando seguente cheindicizza il primo volume nell'array.

$ aws ec2 describe-volumes --query 'Volumes[0]'

{ "AvailabilityZone": "us-west-2a", "Attachments": [ { "AttachTime": "2013-09-17T00:55:03.000Z", "InstanceId": "i-a071c394", "VolumeId": "vol-e11a5288", "State": "attached", "DeleteOnTermination": true, "Device": "/dev/sda1" } ], "VolumeType": "standard", "VolumeId": "vol-e11a5288", "State": "in-use", "SnapshotId": "snap-f23ec1c8", "CreateTime": "2013-09-17T00:55:03.000Z", "Size": 30}

126

Page 132: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCome filtrare l'output con l'opzione --query

L'esempio successivo utilizza la notazione carattere jolly [*] per eseguire iterazioni su tutti ivolumi dell'elenco, filtrando tre elementi da ogni volume: VolumeId , AvailabilityZone eSize. La notazione dizionario richiede di fornire un alias per ogni chiave JSON, come questa: –{Alias1:JSONKey1,Alias2:JSONKey2} . Un dizionario è intrinsecamente non ordinato, pertantol'ordinamento delle chiavi/degli alias all'interno di una struttura potrebbe essere incoerente.

$ aws ec2 describe-volumes --query 'Volumes[*].{ID:VolumeId,AZ:AvailabilityZone,Size:Size}'

[ { "AZ": "us-west-2a", "ID": "vol-e11a5288", "Size": 30 }, { "AZ": "us-west-2a", "ID": "vol-2e410a47", "Size": 8 }]

Utilizzando la notazione dizionario, puoi anche concatenare le chiavi, ad esempio key1.key2[0].key3,per filtrare elementi profondamente nidificati all'interno della struttura. L'esempio di seguito mostra questotipo di utilizzo con la chiave Attachments[0].InstanceId assegnata semplicemente in alias aInstanceId.

$ aws ec2 describe-volumes --query 'Volumes[*].{ID:VolumeId,InstanceId:Attachments[0].InstanceId,AZ:AvailabilityZone,Size:Size}'

[ { "InstanceId": "i-a071c394", "AZ": "us-west-2a", "ID": "vol-e11a5288", "Size": 30 }, { "InstanceId": "i-4b41a37c", "AZ": "us-west-2a", "ID": "vol-2e410a47", "Size": 8 }]

È inoltre possibile filtrare più elementi utilizzando la notazione elenco: – [key1, key2] . Questo formattatutti gli attributi filtrati in un unico elenco ordinato per oggetto, indipendentemente dal tipo.

$ aws ec2 describe-volumes --query 'Volumes[*].[VolumeId, Attachments[0].InstanceId, AvailabilityZone, Size]'

[ [ "vol-e11a5288", "i-a071c394", "us-west-2a", 30 ], [

127

Page 133: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCome filtrare l'output con l'opzione --query

"vol-2e410a47", "i-4b41a37c", "us-west-2a", 8 ]]

Per filtrare i risultati in base al valore di un campo specifico, utilizza l'operatore JMESPath "?". Il seguenteesempio genera soltanto volumi nella us-west-2a zona di disponibilità.

$ aws ec2 describe-volumes \ --query 'Volumes[?AvailabilityZone==`us-west-2a`]'

Note

Quando si specifica un valore letterale, ad esempio "us-west-2" in alto in un'espressione diquery JMESPath, è necessario racchiuderlo tra accenti gravi (` `) affinché possa essere lettocorrettamente.

Di seguito sono elencati alcuni esempi aggiuntivi che illustrano come ottenere solo i dettagli desideratidall'output dei comandi.

L'esempio seguente elenca tutti i volumi Amazon EC2. Il servizio restituisce un elenco di tutti i volumicollegati nella zona di disponibilità us-west-2a. Il parametro --query limita ulteriormente l'output ai solivolumi con un valore Size maggiore di 50 e mostra solo i campi specificati con nomi definiti dall'utente.

$ aws ec2 describe-volumes \ --filters "Name=availability-zone,Values=us-west-2a" "Name=status,Values=attached" \ --query 'Volumes[?Size > `50`].{Id:VolumeId,Size:Size,Type:VolumeType}'

[ { "Id": "vol-0be9bb0bf12345678", "Size": 80, "Type": "gp2" }]

L'esempio seguente consente di recuperare un elenco di immagini che soddisfano diversi criteri. Quindiutilizza il parametro --query per ordinare l'output in base a CreationDate, selezionando solo il piùrecente. Infine, visualizza l'ImageId di tale immagine.

$ aws ec2 describe-images \ --owners amazon \ --filters "Name=name,Values=amzn*gp2" "Name=virtualization-type,Values=hvm" "Name=root-device-type,Values=ebs" \ --query "sort_by(Images, &CreationDate)[-1].ImageId" \ --output text

ami-00ced3122871a4921

L'esempio seguente utilizza il parametro --query per trovare un determinato elemento in un elenco equindi estrae le informazioni da tale elemento. L'esempio seguente elenca tutte le zone di disponibilitàassociate all'endpoint del servizio specificato. Estrae l'elemento dall'elenco ServiceDetails che haspecificato ServiceName, quindi emette il campo AvailabilityZones da questo elemento selezionato.

$ aws --region us-east-1 ec2 describe-vpc-endpoint-services \

128

Page 134: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCome filtrare l'output con l'opzione --query

--query 'ServiceDetails[?ServiceName==`com.amazonaws.us-east-1.ecs`].AvailabilityZones'

[ [ "us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d", "us-east-1e", "us-east-1f" ]]

Il parametro --query consente inoltre di eseguire il conteggio degli elementi nell'output. Nell'esempioseguente viene visualizzato il numero di volumi disponibili che sono più di 1000 IOPS utilizzando lengthper contarne il numero in un elenco.

$ aws ec2 describe-volumes \ --filters "Name=status,Values=available" \ --query 'length(Volumes[?Iops > `1000`])'

3

L'esempio seguente mostra come creare un elenco di tutte le snapshot che sono state create dopo unadata specifica, includendo solo alcuni dei campi disponibili nell'output.

$ aws ec2 describe-snapshots --owner self \ --output json \ --query 'Snapshots[?StartTime>=`2018-02-07`].{Id:SnapshotId,VId:VolumeId,Size:VolumeSize}' \

[ { "id": "snap-0effb42b7a1b2c3d4", "vid": "vol-0be9bb0bf12345678", "Size": 8 }]

L'esempio seguente crea un elenco delle cinque Amazon Machine Images (AMI) più recenti che sono statecreate, ordinate dalla più recente alla meno recente.

$ aws ec2 describe-images \ --owners self \ --query 'reverse(sort_by(Images,&CreationDate))[:5].{id:ImageId,date:CreationDate}'

[ { "id": "ami-0a1b2c3d4e5f60001", "date": "2018-11-28T17:16:38.000Z" }, { "id": "ami-0a1b2c3d4e5f60002", "date": "2018-09-15T13:51:22.000Z" }, {

129

Page 135: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCome impostare il programma pager predefinito dell'output

"id": "ami-0a1b2c3d4e5f60003", "date": "2018-08-19T10:22:45.000Z" }, { "id": "ami-0a1b2c3d4e5f60004", "date": "2018-05-03T12:04:02.000Z" }, { "id": "ami-0a1b2c3d4e5f60005", "date": "2017-12-13T17:16:38.000Z" }

]

L'esempio seguente mostra solo l'InstanceId per qualsiasi istanza non integra nel gruppo Auto Scalingspecificato.

$ aws autoscaling describe-auto-scaling-groups \ --auto-scaling-group-name My-AutoScaling-Group-Name \ --output text \ --query 'AutoScalingGroups[*].Instances[?HealthStatus==`Unhealthy`].InstanceId'

Combinata con i tre formati di output che vengono illustrati nel dettaglio precedentemente in questoargomento, l'opzione --query è uno strumento potente che consente di personalizzare il contenuto e lostile degli output.

Per ulteriori esempi e la specifica completa di JMESPath, la libreria di elaborazione JSON sottostante,consulta http://jmespath.org/specification.html.

Come impostare il programma pager predefinitodell'output

Questa caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

AWS CLI versione 2 fornisce l'uso di un programma di pager lato client per l'output. Per impostazionepredefinita, questa caratteristica restituisce tutto l'output attraverso il programma pager predefinito delsistema operativo. La paginazione lato client si verifica dopo qualsiasi paginazione lato server specificata,consulta Paginazione (p. 131).

Per disabilitare l'uso di un programma di paging esterno, imposta la variabile su una stringa vuota.

Puoi specificare il pager di output in due modi.

Utilizzo dell'opzione cli_pager nel fileconfig

L'esempio seguente imposta il pager di output predefinito sul programma less.

[default]cli_pager=less

L'esempio seguente disabilita l'utilizzo di un pager.

[default]

130

Page 136: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePaginazione

cli_pager=

Utilizzo della variabile di ambienteAWS_PAGER

L'esempio seguente imposta il valore predefinito su un valore inferiore.

Linux and macOS

$ export AWS_PAGER="less"

Windows

C:\> setx AWS_PAGER "less"

L'esempio seguente disabilita l'uso di un pager.

Linux and macOS

$ export AWS_PAGER=""

Windows

C:\> setx AWS_PAGER ""

Utilizzo delle opzioni di paginazione di AWS CLIQuesto argomento descrive i diversi modi per paginare l'output dall'AWS Command Line Interface (AWSCLI).Ci sono principalmente due modi per controllare la paginazione dall'AWS CLI.

• Utilizzo dei parametri di paginazione lato server. (p. 131)• Utilizzo del programma di paging lato client di output predefinito (p. 133).

I parametri di paginazione lato server elaborano e qualsiasi output viene inviato alla paginazione lato client.

Paginazione lato serverPer i comandi che possono restituire un elenco di elementi di grandi dimensioni, AWS Command LineInterface (AWS CLI) ha più opzioni per controllare il numero di elementi inclusi nell'output quando AWS CLIchiama un'API del servizio per popolare l'elenco.

• --no-paginate

• --page-size

• --max-items

• --starting-token

Per default, AWS CLI utilizza la dimensione di pagina 1000 e recupera tutti gli elementi disponibili. Adesempio, se esegui aws s3api list-objects in un bucket Amazon S3 che contiene 3500 oggetti,AWS CLI effettua automaticamente quattro chiamate a Amazon S3, gestendo automaticamente la logica dipaginazione specifica del servizio in background e restituendo tutti i 3500 oggetti nell'output finale.

131

Page 137: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePaginazione lato server

Come utilizzare il parametro --no-paginatePer disabilitare la paginazione e restituire solo la prima pagina di risultati, utilizza l'opzione --no-paginate. Quando si utilizza un comando, per impostazione predefinita AWS CLI effettuaautomaticamente più chiamate per restituire tutti i risultati possibili per creare la paginazione. Una chiamataper ogni pagina. La disabilitazione della paginazione comporta la chiamata di AWS CLI solo una volta perla prima pagina dei risultati del comando.

Ad esempio, se esegui aws s3api list-objects in un bucket Amazon S3 che contiene 3.500 oggetti,la AWS CLI effettua la prima chiamata solo a Amazon S3, restituendo solo i primi 1.000 oggetti nell'outputfinale.

$ aws s3api list-objects \ --bucket my-bucket \ --no-paginate{ "Contents": [...

Come utilizzare il parametro --page-sizeSe vengono rilevati errori quando esegui i comandi dell'elenco per un numero elevato di risorse, ledimensioni di pagina predefinite, pari a 1000, potrebbero essere eccessive. Questo può causare ilsuperamento del tempo massimo consentito per le chiamate ai servizi AWS e la generazione di un erroredi tipo "timeout". Puoi utilizzare l'opzione --page-size per specificare che AWS CLI richieda un numerominore di elementi da ciascuna chiamata al servizio AWS. L'interfaccia a riga di comando recuperacomunque l'elenco completo, ma esegue un maggior numero di chiamate API in background e recuperaun numero di elementi inferiore per ogni chiamata. In questo modo, le chiamate individuali hanno unamigliore possibilità di completamento prima della scadenza. La modifica delle dimensioni della pagina nonpregiudica l'output, ma solo il numero di chiamate API che deve essere effettuato per generare l'output.

$ aws s3api list-objects \ --bucket my-bucket \ --page-size 100{ "Contents": [...

Come utilizzare il parametro --max-itemsPer includere un numero minore di elementi alla volta nell'output di AWS CLI, utilizza l'opzione --max-items. L'AWS CLI gestisce ancora la paginazione con il servizio come descritto in precedenza, ma stampasolo il numero di voci al momento specificato.

$ aws s3api list-objects \ --bucket my-bucket \ --max-items 100{ "NextToken": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==", "Contents": [...

Come utilizzare il parametro --starting-tokenSe l'output del numero di elementi (--max-items) è inferiore rispetto al numero totale di elementi restituitodalle chiamate API sottostanti, l'output include NextToken, che può essere trasferito a un comando

132

Page 138: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpaginatore lato client

successivo per recuperare il set di elementi successivo. L'esempio seguente mostra come usare il valoreNextToken restituito dall'esempio precedente e consente di recuperare il secondo centinaio di elementi.

Note

Il parametro --starting-token non può essere null o vuoto. Se il comando precedente nonrestituisce un valore NextToken, non esistono altre voci da restituire e non dovrai richiamare dinuovo il comando.

$ aws s3api list-objects \ --bucket my-bucket \ --max-items 100 \ --starting-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ=={ "Contents": [...

Il servizio AWS specificato potrebbe non restituire gli elementi nello stesso ordine ogni volta che effettuila chiamata. Se si specificano valori diversi per --page-size e --max-items, puoi ottenere risultatiimprevisti con elementi mancanti o duplicati. Per evitarlo, utilizza lo stesso numero per --page-size e --max-items per sincronizzare la paginazione della AWS CLI con quella del servizio sottostante. Puoi ancherecuperare l'intero elenco ed eseguire tutte le operazioni di paginazione necessarie in locale.

Impaginatore lato clientQuesta caratteristica è disponibile solo nella AWS CLI versione 2.

La seguente caratteristica è disponibile solo se utilizzi l'AWS CLI versione 2. Non è disponibilese si esegue AWS CLI versione 1. Per informazioni su come installare la versione 2, consultaInstallazione, aggiornamento e disinstallazione diAWS CLI versione 2 (p. 5).

AWS CLI versione 2 fornisce l'uso di un programma di pager lato client per l'output. Per impostazionepredefinita, questa caratteristica restituisce tutto l'output attraverso il programma pager predefinito delsistema operativo.

In ordine di precedenza, puoi specificare il pager di output nei seguenti modi:

• Utilizzo dell'impostazione cli_pager nel file config in un profilo denominato.• Utilizzando la variabile di ambiente AWS_PAGER.• Utilizzo dell'impostazione cli_pager nel file config del profilo default.• Utilizzando la variabile di ambiente PAGER.

In ordine di precedenza, puoi disabilitare tutti gli utilizzi di un programma di paging esterno nei seguentimodi:

• Utilizza l'opzione della riga di comando --no-cli-pager per disabilitare il pager per un singolo utilizzodel comando.

• Imposta l'impostazione cli_pager o la variabile AWS_PAGER su una stringa vuota.

Come utilizzare l'impostazione cli_pagerPuoi salvare le impostazioni di configurazione e le credenziali utilizzate di frequente nei file gestiti daAWS CLI. Le impostazioni in un profilo del nome hanno la precedenza sulle impostazioni nel profilodefault. Per ulteriori informazioni sulle impostazioni di configurazione, consulta Impostazioni del file diconfigurazione e delle credenziali (p. 48).

133

Page 139: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteImpaginatore lato client

L'esempio seguente imposta il pager di output predefinito sul programma less.

[default]cli_pager=less

L'esempio seguente configura l'impostazione predefinita per disabilitare l'uso di un pager.

[default]cli_pager=

Come utilizzare la variabile di ambiente AWS_PAGERL'esempio seguente imposta il pager di output predefinito sul programma less. Per ulteriori informazionisulle variabili di ambiente, consultaVariabili di ambiente per configurare l'AWS CLI. (p. 68).

Linux and macOS

$ export AWS_PAGER="less"

Windows

C:\> setx AWS_PAGER "less"

L'esempio seguente disabilita l'uso di un pager.

Linux and macOS

$ export AWS_PAGER=""

Windows

C:\> setx AWS_PAGER ""

Come utilizzare l'opzione --no-cli-pagerPer disabilitare l'uso di un pager su un singolo comando, utilizza l'opzione --no-cli-pager. Per ulterioriinformazioni sulle opzioni della riga di comando, consulta Opzioni della riga di comando (p. 72).

$ aws s3api list-objects \ --bucket my-bucket \ --no-cli-pager{ "Contents": [...

Come utilizzare i flag del pagerPuoi specificare i flag da utilizzare automaticamente con il programma di paging. I flag dipendono dalprogramma di paging utilizzato. Gli esempi seguenti sono per le tipiche impostazioni predefinite di less emore.

134

Page 140: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCodici restituiti

Linux and macOS

Se non specifichi diversamente, il pager che AWS CLI versione 2 utilizza per impostazione predefinitaè less. Se non disponi della variabile di ambiente LESS impostata, AWS CLI versione 2 utilizza i flagFRX. È possibile combinare flag specificandoli quando si imposta il pager AWS CLI.

L'esempio seguente utilizza il flag S. Questo flag si combina quindi con i flag FRX predefiniti per creareun flag FRXS finale.

$ export AWS_PAGER="less -S"

Se non desideri nessuno dei flag FRX, puoi negarli. L'esempio seguente nega il flag F per creare unflag RX finale.

$ export AWS_PAGER="less -+F"

Per ulteriori informazioni sui flag less, consulta less su manpages.org.Windows

Se non specifichi diversamente, il pager che AWS CLI versione 2 utilizza per impostazione predefinitaè more senza flag aggiuntivi.

L'esempio seguente utilizza il parametro /c.

C:\> setx AWS_PAGER "more /c"

Per ulteriori informazioni sui flag more, consulta ulteriori su Microsoft Docs.

Comprensione dei codici restituiti da AWS CLIIl codice restituito è in genere un codice nascosto inviato dopo l'esecuzione di un comando AWS CommandLine Interface (AWS CLI) che descrive lo stato del comando. Puoi utilizzare il comando echo pervisualizzare il codice inviato dall'ultimo comando AWS CLI e utilizzare questi codici per determinare seun comando è riuscito o meno e perché un comando può avere un errore. Oltre ai codici restituiti, puoivisualizzare ulteriori dettagli su un errore eseguendo i comandi con lo switch --debug. Questo switchproduce un report dettagliato delle fasi utilizzate da AWS CLI per elaborare il comando e del risultato diciascuna fase.

Per determinare il codice restituito da un comando di AWS CLI, esegui uno di questi comandi subito dopoaver eseguito il comando CLI.

Linux and macOS

$ echo $?0

Windows PowerShell

PS> echo $lastexitcode0

Windows Command Prompt

C:\> echo %errorlevel%

135

Page 141: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCodici restituiti

0

Di seguito sono elencati i valori di codice che possono essere restituiti al termine dell'esecuzione di uncomando dell'interfaccia a riga di comando di AWS (AWS CLI).

Code Significato

0 L'esecuzione del comando ha esito positivo. Non sono stati generati errori dal servizio AWS CLI eAWS a cui è stata inviata la richiesta.

1 Una o più operazioni di trasferimento Amazon S3 non riuscite. Limitato ai comandi S3.

2 Il significato di questo codice restituito dipende dal comando.

• Applicabile a tutti i comandi CLI – il comando inserito non può essere analizzato. Gli erroridi analisi possono essere causati, a titolo esemplificativo, dall'assenza di sottocomandi oargomenti richiesti oppure dall'utilizzo di comandi o argomenti sconosciuti.

• Limitato ai comandi S3 Uno o più file contrassegnati per il trasferimento sono stati ignoratidurante il processo di trasferimento.– Tuttavia, tutti gli altri file contrassegnati per iltrasferimento sono stati trasferiti. I file che vengono ignorati durante il processo di trasferimentoincludono: file non esistenti, file speciali per dispositivi a caratteri, file speciali per dispositivi ablocchi, code FIFO o socket e file per cui l'utente non dispone di autorizzazioni di lettura.

130 Il comando è stato interrotto da SIGINT. Questo è il segnale inviato da te per annullare uncomando con Ctrl+C.

252: La sintassi del comando non era valida, è stato fornito un parametro sconosciuto oppure unvalore di parametro non era corretto e impediva l'esecuzione del comando.

253: La configurazione o l'ambiente di sistema non è valido. Mentre il comando fornito potrebbeessere sintatticamente valido, la configurazione mancante o le credenziali hanno impeditol'esecuzione del comando.

254: Il comando è stato analizzato correttamente ed è stata effettuata una richiesta al serviziospecificato, ma il servizio ha restituito un errore. Questo indicherà generalmente un utilizzodell'API non corretto o altri problemi specifici del servizio.

255 Il comando ha avuto esito negativo. Sono stati generati errori da AWS CLI o dal servizio AWS acui è stata inviata la richiesta.

136

Page 142: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDynamoDB

Utilizzo dell'AWS CLI per utilizzare iservizi AWS

Questa sezione fornisce esempi che mostrano come utilizzare AWS Command Line Interface (AWS CLI)per accedere ai vari servizi AWS.

Per un riferimento completo di tutti i comandi disponibili per ciascun servizio, consulta AWS CLI CommandReference oppure usa la riga di comando integrata. Per ulteriori informazioni, vedi Come visualizzare laGuida con AWS CLI (p. 93).

Servizi• Utilizzo di Amazon DynamoDB con l'AWS CLI (p. 137)• Utilizzo di Amazon EC2 con l'AWS CLI (p. 139)• Utilizzo di Amazon S3 Glacier con l'AWS CLI (p. 163)• Utilizzo di AWS Identity and Access Management da AWS CLI (p. 167)• Utilizzo di Amazon S3 con l'AWS CLI (p. 170)• Utilizzo di Amazon SNS con l'AWS CLI (p. 190)• Utilizzo di Amazon SWF con l'AWS CLI (p. 192)

Utilizzo di Amazon DynamoDB con l'AWS CLIL'AWS Command Line Interface (AWS CLI) fornisce supporto per tutti i servizi di database AWS, tra cuiAmazon DynamoDB. Puoi usare l'AWS CLI per operazioni ad hoc, quali la creazione di tabelle. La puoiusare anche per incorporare operazioni DynamoDB all'interno di script di utilità.

Per elencare i comandi dell'AWS CLI per DynamoDB, utilizza il comando seguente.

$ aws dynamodb help

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Il formato a riga di comando consiste in un nome di comando DynamoDB seguito dai parametri per talecomando. L'AWS CLI supporta la sintassi abbreviata (p. 113) della CLI per i valori dei parametri, oltre aJSON completo.

Ad esempio, il seguente comando crea una tabella denominata MusicCollection.Note

Per rendere i comandi lunghi più leggibili, in questa sezione sono suddivisi in righe separate. Labarra rovesciata ( \ ) è il carattere di continuazione della riga per la riga di comando di Linux econsente di copiare e incollare (o immettere) più righe al prompt di Linux. Se utilizzi una shellche non utilizza la barra rovesciata per la continuazione della riga, sostituiscila con il carattere dicontinuazione della riga della shell. Oppure rimuovi le barre rovesciate e inserisci tutto il comandoin un'unica riga.

$ aws dynamodb create-table \ --table-name MusicCollection \ --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \

137

Page 143: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteDynamoDB

--key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1

Puoi aggiungere nuove righe alla tabella con comandi simili a quelli mostrati nell'esempio seguente. Inquesti esempi viene utilizzata una combinazione di sintassi abbreviata e JSON.

$ aws dynamodb put-item \ --table-name MusicCollection \ --item '{ "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"} , "AlbumTitle": {"S": "Somewhat Famous"} }' \ --return-consumed-capacity TOTAL{ "ConsumedCapacity": { "CapacityUnits": 1.0, "TableName": "MusicCollection" }}

$ aws dynamodb put-item \ --table-name MusicCollection \ --item '{ "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} , "AlbumTitle": {"S": "Songs About Life"} }' \ --return-consumed-capacity TOTAL

{ "ConsumedCapacity": { "CapacityUnits": 1.0, "TableName": "MusicCollection" }}

Può essere difficile comporre un JSON valido in un comando su una sola riga. Per semplificarel'operazione, l'AWS CLI può leggere i file JSON. Considera ad esempio il seguente frammento JSON, cheviene memorizzato in un file denominato expression-attributes.json.

{ ":v1": {"S": "No One You Know"}, ":v2": {"S": "Call Me Today"}}

Puoi utilizzare questo file per inviare una richiesta query con l'AWS CLI. Nell'esempio seguente, ilcontenuto del file expression-attributes.json viene utilizzato come valore del parametro --expression-attribute-values.

$ aws dynamodb query --table-name MusicCollection \ --key-condition-expression "Artist = :v1 AND SongTitle = :v2" \ --expression-attribute-values file://expression-attributes.json{ "Count": 1, "Items": [ { "AlbumTitle": { "S": "Somewhat Famous" }, "SongTitle": { "S": "Call Me Today"

138

Page 144: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteAmazon EC2

}, "Artist": { "S": "No One You Know" } } ], "ScannedCount": 1, "ConsumedCapacity": null}

Per ulteriori informazioni sull'utilizzo di AWS CLI con DynamoDB, consulta DynamoDB nella AWS CLICommand Reference.

Oltre a DynamoDB, è possibile utilizzare AWS CLI con DynamoDB Local.DynamoDB è un piccolo databasee server lato client che imita il servizio DynamoDB.DynamoDB Local consente di scrivere applicazioniche utilizzano l'API DynamoDB, senza manipolare tabelle o dati nel servizio Web DynamoDB. Tutte leoperazioni API vengono invece reinstradate a un database locale. In questo modo è possibile salvare ilthroughput assegnato, lo storage dei dati e le tariffe per il trasferimento dei dati.

Per ulteriori informazioni su DynamoDB Local e su come utilizzarlo con AWS CLI, consulta le seguentisezioni della Guida per lo sviluppatore di Amazon DynamoDB:

• DynamoDB Locale• Utilizzo dell'interfaccia a riga di comando di AWS con DynamoDB Local

Utilizzo di Amazon EC2 con l'AWS CLIPuoi accedere alle caratteristiche di Amazon Elastic Compute Cloud (Amazon EC2) utilizzando AWSCommand Line Interface (AWS CLI). Per elencare i comandi dell'AWS CLI per Amazon EC2, utilizza ilcomando seguente.

aws ec2 help

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Questo argomento mostra esempi di formato breve di comandi AWS CLI che eseguono attività comuni perAmazon EC2.

Per esempi in formato lungo di comandi AWS CLI, consulta AWS CLIrepository di esempi di codice inGitHub.

Argomenti• Creazione, visualizzazione ed eliminazione di coppie di chiavi Amazon EC2 (p. 139)• Creazione, configurazione ed eliminazione di gruppi di sicurezza per Amazon EC2 (p. 141)• Avvio, elencazione e chiusura delle istanze Amazon EC2 (p. 146)• Cambiare un tipo di istanza Amazon EC2 utilizzando uno script bash (p. 151)

Creazione, visualizzazione ed eliminazione di coppiedi chiavi Amazon EC2Puoi utilizzare AWS Command Line Interface (AWS CLI) per creare, visualizzare ed eliminare le coppie dichiavi per Amazon Elastic Compute Cloud (Amazon EC2). Puoi utilizzare le coppie di chiavi per connettertia un'istanza Amazon EC2.

139

Page 145: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCoppie di chiavi Amazon EC2

Quando crei l'istanza devi fornire la coppia di chiavi a Amazon EC2, quindi devi utilizzare questa coppia dichiavi per autenticarti quando ti connetti all'istanza.

Argomenti• Prerequisites (p. 140)• Creazione di una coppia di chiavi (p. 140)• Visualizzazione della coppia di chiavi (p. 141)• Eliminazione della coppia di chiavi (p. 141)

PrerequisitesPer eseguire il ec2 , è necessario:

• Installare e configurare la AWS CLI. Per ulteriori informazioni, consulta Installazione, aggiornamento edisinstallazione diAWS CLI (p. 5) e Nozioni di base sulla configurazione (p. 44).

• Imposta il tuo IAM autorizzazioni per consentire Amazon EC2 accedere a. Per ulteriori informazioni suIAM autorizzazioni per Amazon EC2, vedere Policy IAM per Amazon EC2 nella Guida per l'utente diAmazon EC2 per le istanze Linux.

Creazione di una coppia di chiaviPer creare una coppia di chiavi, utilizza il comando create-key-pair con l'opzione --query e l'opzione --output text per indirizzare la chiave privata direttamente in un file.

$ aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem

Per PowerShell, il > file Il reindirizzamento viene impostato per impostazione predefinita sullacodifica UTF-8, che non può essere utilizzata con alcuni client SSH. Pertanto, devi convertire l'outputreindirizzandolo al comando out-file e impostando esplicitamente la codifica su ascii.

PS C:\>aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text | out-file -encoding ascii -filepath MyKeyPair.pem

L'aspetto del file MyKeyPair.pem risultante è simile a quello riportato di seguito.

-----BEGIN RSA PRIVATE KEY-----EXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/vBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QWZ/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1FG50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPWoPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu/uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1mb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2bahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD981oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozRoQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1YkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/xp9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuwsayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnUWA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUCgYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bHoMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGsArq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshyWBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j

140

Page 146: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGruppo di sicurezza Amazon EC2

jjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDaNWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qSVRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc=-----END RSA PRIVATE KEY-----

La chiave privata non è archiviata in AWS e può essere recuperata solo quando viene creata. Non puoirecuperarla successivamente. Se perdi la chiave privata, invece, devi creare una nuova coppia di chiavi.

Se ti connetti all'istanza da un computer Linux, consigliamo di utilizzare il comando seguente per impostarele autorizzazioni del file della chiave privata in modo da essere l'unico a poterlo leggere.

$ chmod 400 MyKeyPair.pem

Visualizzazione della coppia di chiaviDalla coppia di chiavi viene generata un'impronta che può essere utilizzata per verificare che la chiaveprivata che si trova sul tuo computer locale corrisponda alla chiave pubblica archiviata in AWS.

L'impronta è un hash SHA1 preso da una copia codificata DER della chiave privata. Questo valoreviene acquisito quando la coppia di chiavi viene creata e archiviata in AWS con la chiave pubblica. Puoivisualizzare l'impronta nella console Amazon EC2 o eseguendo il comando aws ec2 describe-key-pairs di AWS CLI.

L'esempio seguente mostra l'impronta per MyKeyPair.

$ aws ec2 describe-key-pairs --key-name MyKeyPair{ "KeyPairs": [ { "KeyName": "MyKeyPair", "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f" } ]}

Per ulteriori informazioni sulle chiavi e sulle impronte, consulta Coppie di chiavi Amazon EC2 nella Guidaper l'utente di Amazon EC2 per le istanze Linux.

Eliminazione della coppia di chiaviPer eliminare una coppia di chiavi, eseguire il comando seguente, sostituendo MyKeyPair con il nomedella coppia da eliminare.

$ aws ec2 delete-key-pair --key-name MyKeyPair

Creazione, configurazione ed eliminazione di gruppi disicurezza per Amazon EC2Puoi creare un gruppo di sicurezza per le istanze Amazon Elastic Compute Cloud (Amazon EC2) cheessenzialmente funziona come un firewall, con regole che determinano il traffico di rete a cui è consentitol'ingresso e l'uscita.

Puoi creare gruppi di sicurezza per l'utilizzo in un VPC o nella rete semplice condivisa EC2-Classic. Perulteriori informazioni sulle differenze tra EC2-Classic ed EC2-VPC, consulta Piattaforme supportate nellaGuida per l'utente di Amazon EC2 per le istanze Linux.

141

Page 147: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGruppo di sicurezza Amazon EC2

Utilizza AWS Command Line Interface (AWS CLI) per creare un nuovo gruppo di sicurezza, aggiungereregole per i gruppi di sicurezza esistenti ed eliminare i gruppi di sicurezza.

Argomenti• Prerequisites (p. 142)• Creazione di un gruppo di sicurezza (p. 142)• Aggiunta di regole al gruppo di sicurezza (p. 143)• Eliminazione del gruppo di sicurezza: (p. 145)

PrerequisitesPer eseguire il ec2 , è necessario:

• Installare e configurare la AWS CLI. Per ulteriori informazioni, consulta Installazione, aggiornamento edisinstallazione diAWS CLI (p. 5) e Nozioni di base sulla configurazione (p. 44).

• Imposta il tuo IAM autorizzazioni per consentire Amazon EC2 accedere a. Per ulteriori informazioni suIAM autorizzazioni per Amazon EC2, vedere Policy IAM per Amazon EC2 nella Guida per l'utente diAmazon EC2 per le istanze Linux.

Creazione di un gruppo di sicurezzaPuoi creare gruppi di sicurezza associati a VPCs o per EC2-Classic.

EC2-VPCL'esempio seguente mostra come creare un gruppo di sicurezza per un VPC specificato.

$ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-1a2b3c4d{ "GroupId": "sg-903004f8"}

Per visualizzare le informazioni iniziali per un gruppo di sicurezza, esegui il comando describe-security-groups. Puoi fare riferimento a un gruppo di sicurezza EC2-VPC solo utilizzando il relativo vpc-id, non ilnome.

$ aws ec2 describe-security-groups --group-ids sg-903004f8{ "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [], "GroupName": "my-sg", "VpcId": "vpc-1a2b3c4d", "OwnerId": "123456789012",

142

Page 148: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGruppo di sicurezza Amazon EC2

"GroupId": "sg-903004f8" } ]}

EC2-ClassicL'esempio seguente mostra come creare un gruppo di sicurezza per EC2-Classic.

$ aws ec2 create-security-group --group-name my-sg --description "My security group"{ "GroupId": "sg-903004f8"}

Per visualizzare le informazioni iniziali per my-sg, esegui il comando describe-security-group. Per ungruppo di sicurezza EC2-Classic, puoi usare il nome come riferimento.

$ aws ec2 describe-security-groups --group-names my-sg{ "SecurityGroups": [ { "IpPermissionsEgress": [], "Description": "My security group" "IpPermissions": [], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ]}

Aggiunta di regole al gruppo di sicurezzaQuando esegui un'istanza Amazon EC2, devi abilitare le regole nel gruppo di sicurezza per consentire iltraffico di rete in entrata per il tuo strumento di connessione all'immagine.

Ad esempio, se avvii un'istanza di Windows, in genere devi aggiungere una regola per consentire il trafficoin entrata sulla porta TCP 3389 per supportare Remote Desktop Protocol (RDP). Se avvii un'istanza diLinux, in genere devi aggiungere una regola per consentire il traffico in entrata sulla porta TCP 22 persupportare le connessioni SSH.

Utilizza il comando authorize-security-group-ingress per aggiungere una regola al gruppo disicurezza. Un parametro obbligatorio di questo comando è l'indirizzo IP pubblico del computer o la rete(sotto forma di intervallo di indirizzi) a cui è collegato il computer, in notazione CIDR.

Note

Forniamo il servizio seguente, https://checkip.amazonaws.com/, per consentire di determinarel'indirizzo IP pubblico. Per trovare altri servizi che possono aiutarti a identificare il tuo indirizzoIP, utilizza il browser per cercare "qual è il indirizzo IP". Se ti connetti tramite un ISP o da dietroun firewall utilizzando un indirizzo IP dinamico (tramite un gateway NAT da una rete privata),l'indirizzo può cambiare periodicamente. In questo caso, devi scoprire l'intervallo di indirizzi IPutilizzato dai computer client.

EC2-VPCL'esempio seguente mostra come aggiungere una regola per RDP (porta TCP 3389) a un gruppo disicurezza EC2-VPC con l'ID sg-903004f8. Questo esempio presuppone che il computer client abbia unindirizzo in qualche punto nell'intervallo CIDR 203.0.113.0/24.

143

Page 149: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGruppo di sicurezza Amazon EC2

Puoi iniziare verificando che l'indirizzo pubblico sia incluso nell'intervallo CIDR 203.0.113.0/24.

$ curl https://checkip.amazonaws.com203.0.113.57

Dopo aver confermato queste informazioni, puoi aggiungere l'intervallo al gruppo di sicurezza eseguendo ilcomando authorize-security-group-ingress.

$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 3389 --cidr 203.0.113.0/24

Il comando seguente aggiunge un'altra regola per abilitare l'autenticazione SSH nelle istanze dello stessogruppo di sicurezza.

$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 22 --cidr 203.0.113.0/24

Per visualizzare le modifiche al gruppo di sicurezza, esegui il comando describe-security-groups.

$ aws ec2 describe-security-groups --group-ids sg-903004f8{ "SecurityGroups": [ { "IpPermissionsEgress": [ { "IpProtocol": "-1", "IpRanges": [ { "CidrIp": "0.0.0.0/0" } ], "UserIdGroupPairs": [] } ], "Description": "My security group" "IpPermissions": [ { "ToPort": 22, "IpProtocol": "tcp", "IpRanges": [ { "CidrIp": "203.0.113.0/24" } ] "UserIdGroupPairs": [], "FromPort": 22 } ], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ]}

EC2-Classic

Il comando seguente aggiunge una regola per RDP al gruppo di sicurezza EC2-Classic denominato il-mio-sg.

144

Page 150: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGruppo di sicurezza Amazon EC2

$ aws ec2 authorize-security-group-ingress --group-name my-sg --protocol tcp --port 3389 --cidr 203.0.113.0/24

Il comando seguente aggiunge un'altra regola per l'autenticazione SSH allo stesso gruppo di sicurezza.

$ aws ec2 authorize-security-group-ingress --group-name my-sg --protocol tcp --port 22 --cidr 203.0.113.0/24

Per visualizzare le modifiche al gruppo di sicurezza, esegui il comando describe-security-groups.

$ aws ec2 describe-security-groups --group-names my-sg{ "SecurityGroups": [ { "IpPermissionsEgress": [], "Description": "My security group" "IpPermissions": [ { "ToPort": 22, "IpProtocol": "tcp", "IpRanges": [ { "CidrIp": "203.0.113.0/24" } ] "UserIdGroupPairs": [], "FromPort": 22 } ], "GroupName": "my-sg", "OwnerId": "123456789012", "GroupId": "sg-903004f8" } ]}

Eliminazione del gruppo di sicurezza:Per eliminare un gruppo di sicurezza, esegui il comando delete-security-group.

Note

Non puoi eliminare un gruppo di sicurezza se è attualmente collegato a un ambiente.

EC2-VPC

Il comando seguente elimina un gruppo di sicurezza EC2-VPC.

$ aws ec2 delete-security-group --group-id sg-903004f8

EC2-Classic

Il comando seguente elimina il gruppo di sicurezza EC2-Classic denominato my-sg.

$ aws ec2 delete-security-group --group-name my-sg

145

Page 151: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteIstanze EC2

Avvio, elencazione e chiusura delle istanze AmazonEC2Puoi utilizzare AWS Command Line Interface (AWS CLI) per avviare, elencare e terminare le istanzeAmazon Elastic Compute Cloud (Amazon EC2). Se avvii un'istanza che non rientra nel piano gratuito diAWS, i costi ti verranno addebitati dopo l'avvio dell'istanza e per il periodo di tempo in cui l'istanza vieneeseguita, anche se rimane inattiva.

Argomenti• Prerequisites (p. 146)• Lancio dell'istanza (p. 146)• Aggiunta di un dispositivo a blocchi all'istanza (p. 149)• Aggiunta di un tag all'istanza (p. 150)• Connessione all'istanza (p. 150)• Elencazione delle istanze (p. 150)• Interruzione di un'istanza (p. 151)

PrerequisitesPer eseguire i comandi ec2 in questo argomento, è necessario:

• Installare e configurare la AWS CLI. Per ulteriori informazioni, vedi Installazione, aggiornamento edisinstallazione diAWS CLI (p. 5) e Nozioni di base sulla configurazione (p. 44).

• Imposta le autorizzazioni IAM per consentire l'accesso a Amazon EC2. Per ulteriori informazioni sulleautorizzazioni IAM per Amazon EC2, consulta Policy IAM per Amazon EC2 nella Guida per l'utente diAmazon EC2 per le istanze Linux.

• Crea una coppia di chiavi (p. 139) e un gruppo di sicurezza (p. 141).• Selezionare un'Amazon Machine Image (AMI) e prendere nota dell'ID AMI. Per ulteriori informazioni,

consulta l'argomento relativo a come trovare un'AMI appropriata nella Guida per l'utente di Amazon EC2per le istanze Linux.

Lancio dell'istanzaPer avviare un'istanza Amazon EC2 con l'AMI selezionata, utilizza il comando run-instances. Puoi avviarel'istanza in un VPC oppure in EC2-Classic, se il tuo account lo supporta.

Inizialmente l'istanza viene visualizzata in stato pending, ma dopo pochi minuti passa allo stato running.

EC2-VPC

L'esempio seguente mostra come avviare un'istanza t2.micro nella sottorete specificata di un VPC.Sostituisci italicized i valori del parametro con i tuoi.

$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e{ "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ {

146

Page 152: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteIstanze EC2

"GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "PrivateIpAddress": "10.0.1.114", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": ip-10-0-1-114.ec2.internal, "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "SubnetId": "subnet-6e7f829e", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Status": "in-use", "SourceDestCheck": true, "VpcId": "vpc-1a2b3c4d", "Description": "Primary network interface", "NetworkInterfaceId": "eni-a7edb1c9", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Primary": true, "PrivateIpAddress": "10.0.1.114" } ], "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-52193138", "AttachTime": "2013-07-19T02:42:39.000Z" }, "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "SubnetId": "subnet-6e7f829e", "OwnerId": "123456789012", "PrivateIpAddress": "10.0.1.114" } ],

147

Page 153: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteIstanze EC2

"SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ]}

EC2-Classic

Se il tuo account lo supporta, puoi utilizzare il comando seguente per avviare un'istanza t1.micro in EC2Classic. Sostituisci italicized i valori del parametro con i tuoi.

$ aws ec2 run-instances --image-id ami-173d747e --count 1 --instance-type t1.micro --key-name MyKeyPair --security-groups my-sg{ "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" },

148

Page 154: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteIstanze EC2

"EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "ProductCodes": [], "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": null, "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "InstanceType": "t1.micro", "NetworkInterfaces": [], "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ]}

Aggiunta di un dispositivo a blocchi all'istanzaA ogni istanza avviata è associato un volume dispositivo root. Puoi utilizzare una mappatura dei dispositivia blocchi per specificare volumi Amazon Elastic Block Store (Amazon EBS) aggiuntivi o volumi instancestore da collegare a un'istanza quando viene avviata.

Per aggiungere un dispositivo a blocchi all'istanza, specifica l'opzione --block-device-mappingsquando utilizzi run-instances.

Il parametro di esempio seguente esegue il provisioning di un volume Amazon EBS standard di 20 GB e lomappa all'istanza utilizzando l'identificatore /dev/sdf.

149

Page 155: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteIstanze EC2

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false}}]"

L'esempio seguente aggiunge un volume Amazon EBS, mappato a /dev/sdf, basato su una snapshotesistente. Una snapshot rappresenta un'immagine caricata sul volume per te. Quando specifichi unasnapshot, non devi specificare una dimensione del volume perché sarà sufficiente a contenere la tuaimmagine. Tuttavia, se specifichi la dimensione, questa deve essere maggiore o uguale a quella dellasnapshot.

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4\"}}]"

L'esempio seguente aggiunge due volumi all'istanza. Il numero di volumi disponibili per l'istanza dipendedal tipo di istanza.

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\":\"/dev/sdg\",\"VirtualName\":\"ephemeral1\"}]"

L'esempio seguente crea la mappatura (/dev/sdj), ma non esegue il provisioning di un volume perl'istanza.

--block-device-mappings "[{\"DeviceName\":\"/dev/sdj\",\"NoDevice\":\"\"}]"

Per ulteriori informazioni, vedi l'argomento relativo alla Mappatura dei dispositivi a blocchi nella Guida perl'utente di Amazon EC2 per le istanze Linux.

Aggiunta di un tag all'istanzaUn tag è un'etichetta che assegni a una risorsa AWS. Questo consente di aggiungere metadati alle risorse,che possono essere utilizzati per vari scopi. Per ulteriori informazioni, consulta l'argomento relativo altagging delle risorse nella Guida per l'utente di Amazon EC2 per le istanze Linux.

L'esempio seguente mostra come aggiungere un tag con il nome della chiave "Name" e il valore"MyInstance" all'istanza specificata, utilizzando il comando create-tag.

$ aws ec2 create-tags --resources i-5203422c --tags Key=Name,Value=MyInstance

Connessione all'istanzaMentre l'istanza è in esecuzione, puoi connetterti e utilizzarla esattamente come se si trovasse nel tuocomputer. Per ulteriori informazioni, consulta l'argomento relativo alla connessione all'istanza Amazon EC2nella Guida per l'utente di Amazon EC2 per le istanze Linux.

Elencazione delle istanzeÈ possibile utilizzare l'AWS CLI per elencare le proprie istanze e visualizzare informazioni su di esse. Puoicreare un elenco di tutte le istanze oppure filtrare i risultati in base alle istanze che ti interessano.

Nell'esempio seguente viene illustrato come utilizzare il comando describe-instances.

Il comando seguente filtra l'elenco visualizzando solo le istanze t2.micro e restituisce solo i valoriInstanceId per ogni corrispondenza.

150

Page 156: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

$ aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"[ "i-05e998023d9c69f9a"]

Il comando seguente elenca qualsiasi istanza con il tag Name=MyInstance.

$ aws ec2 describe-instances --filters "Name=tag:Name,Values=MyInstance"

Il comando seguente elenca le istanze avviate con una delle seguenti AMIs: ami-x0123456 , ami-y0123456 e ami-z0123456.

$ aws ec2 describe-instances --filters "Name=image-id,Values=ami-x0123456,ami-y0123456,ami-z0123456"

Interruzione di un'istanzaSe termini un'istanza, questa viene eliminata. Dopo averla terminata, non puoi più connetterti a un'istanza.

Appena lo stato dell'istanza cambia in shutting-down o terminated, vengono bloccati i rispettiviaddebiti. Se desideri riconnetterti a un'istanza in un secondo momento, utilizza stop-instances anzichéterminate-instances. Per ulteriori informazioni, consulta Interruzione di un'istanza nella Guida perl'utente di Amazon EC2 per le istanze Linux.

Al termine, puoi utilizzare il comando terminate-instances per eliminare l'istanza.

$ aws ec2 terminate-instances --instance-ids i-5203422c{ "TerminatingInstances": [ { "InstanceId": "i-5203422c", "CurrentState": { "Code": 32, "Name": "shutting-down" }, "PreviousState": { "Code": 16, "Name": "running" } } ]}

Cambiare un tipo di istanza Amazon EC2 utilizzandouno script bashQuesto esempio di scripting bash per Amazon EC2 modifica il tipo di istanza per un'istanza Amazon EC2utilizzando AWS Command Line Interface (AWS CLI). Interrompe l'istanza se è in esecuzione, modifica iltipo di istanza e quindi, se richiesto, riavvia l'istanza. Gli script di shell sono programmi progettati per essereeseguiti in un'interfaccia a riga di comando.

Argomenti• Prima di iniziare (p. 152)

151

Page 157: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

• Informazioni su questo esempio (p. 152)• Parameters (p. 152)• Files (p. 153)• References (p. 163)

Prima di iniziarePrima di poter eseguire uno degli esempi seguenti, è necessario completare i seguenti elementi.

• AWS CLI installato, consulta Installazione, aggiornamento e disinstallazione diAWS CLI (p. 5) per ulterioriinformazioni.

• AWS CLI configurato, consulta Nozioni di base sulla configurazione (p. 44) per ulteriori informazioni. Ilprofilo utilizzato deve disporre delle autorizzazioni che consentono le operazioni di AWS eseguite dagliesempi.

• Un'istanza EC2 in esecuzione nell'account per cui disponi dell'autorizzazione per arrestarti e modificare.Se esegui lo script di test, viene avviata un'istanza, ne viene testata la modifica e quindi viene terminatal'istanza.

• Come best practice di AWS, concedi a questo codice privilegio minimo o solo le autorizzazioni richiesteper eseguire un'attività. Per ulteriori informazioni, consulta Concedere il privilegio minimo nella Guida perl'utente di AWS Identity and Access Management (IAM).

• Questo codice non è stato testato in tutte le regioni AWS. Alcuni servizi AWS sono disponibili soloin regioni specifiche. Per ulteriori informazioni, consulta Endpoint e quote del servizio nella Guida diriferimento generale di AWS.

• L'esecuzione di questo codice può comportare addebiti sul tuo account AWS. È tua responsabilitàassicurarti che tutte le risorse create da questo script vengano rimosse al termine dell'utilizzo.

Informazioni su questo esempioQuesto esempio viene scritto come una funzione nel file di script della shellchange_ec2_instance_type.sh che è possibile source da un altro script o dalla riga di comando.Ogni file di script contiene commenti che descrivono ciascuna delle funzioni. Una volta che la funzione è inmemoria, è possibile richiamarla dalla riga di comando. Ad esempio, i seguenti comandi modificano il tipo diistanza specificata in t2.nano:

$ source ./change_ec2_instance_type.sh$ ./change_ec2_instance_type -i *instance-id* -t new-type

Per l'esempio completo e i file di script scaricabili, consulta la sezione relativa alla modifica del tipo diistanza Amazon EC2 nel repository degli esempi di codice AWS in .GitHub

Parameters-i - (stringa) Specifica l'ID istanza da modificare.

-t - (stringa) Specifica il tipo di istanza EC2 a cui passare.

-r - (switch) Per impostazione predefinita, non è impostato. Se -r è impostato, riavvia l'istanza dopo ilpassaggio di tipo.

-f - (switch) Per impostazione predefinita, lo script richiede all'utente di confermare l'arresto dell'istanzaprima di effettuare lo switch. Se -f è impostato, la funzione non richiede all'utente prima di arrestarel'istanza per effettuare il passaggio di tipo

152

Page 158: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

-v - (switch) Per impostazione predefinita, lo script opera in modo invisibile e visualizza l'output solo in casodi errore. Se -v è impostato, la funzione visualizza lo stato durante l'operazione.

Fileschange_ec2_instance_type.sh

Il file di script principale contiene la funzione change_ec2_instance_type() che esegue le attivitàseguenti:• Verifica che l'istanza EC2 specificata esista.• A meno che non venga selezionato -f, avvisa l'utente prima di arrestare l'istanza.• Modifica il tipo di istanza• Se si imposta -r, riavvia l'istanza e conferma che è in esecuzione

Code

################################################################################# function change_ec2_instance_type## This function changes the instance type of the specified Amazon EC2 instance.# # Parameters:# -i [string, mandatory] The instance ID of the instance whose type you# want to change.# -t [string, mandatory] The instance type to switch the instance to.# -f [switch, optional] If set, the function doesn't pause and ask before# stopping the instance.# -r [switch, optional] If set, the function restarts the instance after# changing the type.# -h [switch, optional] Displays this help.## Example:# The following example converts the specified instance to type "t2.micro"# without pausing to ask permission. It automatically restarts the# instance after changing the type.## change-instance-type -i i-123456789012 -f -r## Returns:# 0 if successful# 1 if it fails###############################################################################

# Import the general_purpose functions.source awsdocs_general.sh

################################################################################ function instance-exists## This function checks to see if the specified instance already exists. If it# does, it sets two global parameters to return the running state and the # instance type.## Input parameters:# $1 - The id of the instance to check# # Returns:# 0 if the instance already exists# 1 if the instance doesn't exist# AND:

153

Page 159: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

# Sets two global variables:# EXISTING_STATE - Contains the running/stopped state of the instance.# EXISTING_TYPE - Contains the current type of the instance.###############################################################################function get_instance_info {

# Declare local variables. local INSTANCE_ID RESPONSE # This function accepts a single parameter. INSTANCE_ID=$1

# The following --filters parameter causes server-side filtering to limit # results to only the records that match the specified ID. The --query # parameter causes CLI client-side filtering to include only the values of # the InstanceType and State.Code fields. RESPONSE=$(aws ec2 describe-instances \ --query 'Reservations[*].Instances[*].[State.Name, InstanceType]' \ --filters Name=instance-id,Values="$INSTANCE_ID" \ --output text \ )

if [[ $? -ne 0 ]] || [[ -z "$RESPONSE" ]]; then # There was no response, so no such instance. return 1 # 1 in Bash script means error/false fi

# If we got a response, the instance exists. # Retrieve the values of interest and set them as global variables. EXISTING_STATE=$(echo "$RESPONSE" | cut -f 1 ) EXISTING_TYPE=$(echo "$RESPONSE" | cut -f 2 )

return 0 # 0 in Bash script means no error/true}

######################################## See header at top of this file#######################################

function change_ec2_instance_type {

function usage() ( echo "" echo "This function changes the instance type of the specified instance." echo "Parameter:" echo " -i Specify the instance ID whose type you want to modify." echo " -t Specify the instance type to convert the instance to." echo " -d If the instance was originally running, this option prevents" echo " automatically restarting the instance." echo " -f If the instance was originally running, this option prevents" echo " the script from asking permission before stopping the instance." echo "" )

local FORCE RESTART REQUESTED_TYPE INSTANCE_ID VERBOSE OPTION RESPONSE ANSWER local OPTIND OPTARG # Required to use getopts command in a function. # Set default values. FORCE=false RESTART=false REQUESTED_TYPE="" INSTANCE_ID="" VERBOSE=false

154

Page 160: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

# Retrieve the calling parameters. while getopts "i:t:frvh" OPTION; do case "${OPTION}" in i) INSTANCE_ID="${OPTARG}";; t) REQUESTED_TYPE="${OPTARG}";; f) FORCE=true;; r) RESTART=true;; v) VERBOSE=true;; h) usage; return 0;; \?) echo "Invalid parameter"; usage; return 1;; esac done

if [[ -z "$INSTANCE_ID" ]]; then errecho "ERROR: You must provide an instance ID with the -i parameter." usage return 1 fi

if [[ -z "$REQUESTED_TYPE" ]]; then errecho "ERROR: You must provide an instance type with the -t parameter." usage return 1 fi

iecho "Parameters:\n" iecho " Instance ID: $INSTANCE_ID" iecho " Requests type: $REQUESTED_TYPE" iecho " Force stop: $FORCE" iecho " Restart: $RESTART" iecho " Verbose: $VERBOSE" iecho "" # Check that the specified instance exists. iecho -n "Confirming that instance $INSTANCE_ID exists..." get_instance_info "$INSTANCE_ID" # If the instance doesn't exist, the function returns an error code <> 0. if [[ ${?} -ne 0 ]]; then errecho "ERROR: I can't find the instance \"$INSTANCE_ID\" in the current AWS account." return 1 fi # Function get_instance_info has returned two global values: # $EXISTING_TYPE -- The instance type of the specified instance # $EXISTING_STATE -- Whether the specified instance is running

iecho "confirmed $INSTANCE_ID exists." iecho " Current type: $EXISTING_TYPE" iecho " Current state code: $EXISTING_STATE"

# Are we trying to change the instance to the same type? if [[ "$EXISTING_TYPE" == "$REQUESTED_TYPE" ]]; then errecho "ERROR: Can't change instance type to the same type: $REQUESTED_TYPE." return 1 fi

# Check if the instance is currently running. # 16="running" if [[ "$EXISTING_STATE" == "running" ]]; then # If it is, we need to stop it. # Do we have permission to stop it? # If -f (FORCE) was set, we do. # If not, we need to ask the user. if [[ $FORCE == false ]]; then

155

Page 161: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

while true; do echo "" echo "The instance $INSTANCE_ID is currently running. It must be stopped to change the type." read -r -p "ARE YOU SURE YOU WANT TO STOP THE INSTANCE? (Y or N) " ANSWER case $ANSWER in [yY]* ) break;; [nN]* ) echo "Aborting." exit;; * ) echo "Please answer Y or N." ;; esac done else iecho "Forcing stop of instance without prompt because of -f." fi

# stop the instance iecho -n "Attempting to stop instance $INSTANCE_ID..." RESPONSE=$( aws ec2 stop-instances \ --instance-ids "$INSTANCE_ID" )

if [[ ${?} -ne 0 ]]; then echo "ERROR - AWS reports that it's unable to stop instance $INSTANCE_ID.\n$RESPONSE" return 1 fi iecho "request accepted." else iecho "Instance is not in running state, so not requesting a stop." fi;

# Wait until stopped. iecho "Waiting for $INSTANCE_ID to report 'stopped' state..." aws ec2 wait instance-stopped \ --instance-ids "$INSTANCE_ID" if [[ ${?} -ne 0 ]]; then echo "\nERROR - AWS reports that Wait command failed.\n$RESPONSE" return 1 fi iecho "stopped.\n"

# Change the type - command produces no output. iecho "Attempting to change type from $EXISTING_TYPE to $REQUESTED_TYPE..." RESPONSE=$(aws ec2 modify-instance-attribute \ --instance-id "$INSTANCE_ID" \ --instance-type "{\"Value\":\"$REQUESTED_TYPE\"}" ) if [[ ${?} -ne 0 ]]; then errecho "ERROR - AWS reports that it's unable to change the instance type for instance $INSTANCE_ID from $EXISTING_TYPE to $REQUESTED_TYPE.\n$RESPONSE" return 1 fi iecho "changed.\n"

# Restart if asked if [[ "$RESTART" == "true" ]]; then

iecho "Requesting to restart instance $INSTANCE_ID..." RESPONSE=$(aws ec2 start-instances \ --instance-ids "$INSTANCE_ID" \ ) if [[ ${?} -ne 0 ]]; then

156

Page 162: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

errecho "ERROR - AWS reports that it's unable to restart instance $INSTANCE_ID.\n$RESPONSE" return 1 fi iecho "started.\n" iecho "Waiting for instance $INSTANCE_ID to report 'running' state..." RESPONSE=$(aws ec2 wait instance-running \ --instance-ids "$INSTANCE_ID" ) if [[ ${?} -ne 0 ]]; then errecho "ERROR - AWS reports that Wait command failed.\n$RESPONSE" return 1 fi iecho "running.\n" else iecho "Restart was not requested with -r.\n" fi }

Test_change_ec2_instance_type.sh

Lo script change_ec2_instance_type_test.sh del file esegue il test dei vari percorsi di codiceper la funzione change_ec2_instance_type. Se tutte le fasi nello script di test funzionanocorrettamente, lo script di test rimuove tutte le risorse create.

Puoi eseguire lo script di test con i parametri seguenti:• -v - (switch) Il test mostra uno stato pass/failure durante l'esecuzione. Per impostazione predefinita, i

test vengono eseguiti in modo invisibile e l'output include solo lo stato di riuscita/errore finale.• -i - (switch) Lo script viene messo in pausa dopo ogni test per consentire di esplorare i risultati

intermedi di ogni fase. Consente di esaminare lo stato corrente dell'istanza utilizzando la consoleAmazon EC2. Lo script procede alla fase successiva dopo aver premuto INVIO al prompt.

Code

#!/usr/bin/env bash

################################################################################ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.# This file is licensed under the Apache License, Version 2.0 (the "License").## You may not use this file except in compliance with the License. A copy of# the License is located at http://aws.amazon.com/apache2.0/.## This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR# CONDITIONS OF ANY KIND, either express or implied. See the License for the# specific language governing permissions and limitations under the License.###############################################################################

source ./awsdocs_general.shsource ./change_ec2_instance_type.sh

function usage { echo "This script tests the change_ec2_instance_type function by calling the" echo "function in a variety of ways and checking the output. It converts the" echo "instance between types t2.nano and t2.micro." echo "" echo "Parameters:" echo "" echo " -v Verbose. Shows diagnostic messages about the tests as they run."

157

Page 163: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

echo " -i Interactive. Pauses the script between steps so you can browse" echo " the results in the AWS Management Console as they occur." echo "" echo "IMPORTANT: Running this test script creates an Amazon EC2 instance in" echo " your Amazon account that can incur charges. It is your responsibility" echo " to ensure that no resources are left in your account after the script" echo " completes. If an error occurs during the operation of the script,this" echo " instance can remain. Check for the instance and delete it manually to" echo " avoid charges."}

# Set default values.INTERACTIVE=false

# Retrieve the calling parameters.while getopts "ivh" OPTION; do case "${OPTION}" in i) INTERACTIVE=true VERBOSE=true ;; v) VERBOSE=true ;; h) usage return 0 ;; \?) echo "Invalid parameter." usage return 1 ;; esacdone

if [ "$VERBOSE" == "true" ]; then iecho "Tests running in verbose mode."; fiif [ "$INTERACTIVE" == "true" ]; then iecho "Tests running in interactive mode."; fi

iecho ""iecho "***************SETUP STEPS******************" # First, get the AMI ID for the one running the latest Amazon Linix 2. iecho -n "Retrieving the AMI ID for the latest Amazon Linux 2 AMI..." AMI_ID=$(aws ec2 describe-images \ --owners 'amazon' \ --filters 'Name=name,Values=amzn2-ami-hvm-2.0.????????-x86_64-gp2' 'Name=state,Values=available' \ --query 'sort_by(Images, &CreationDate)[-1].[ImageId]' \ --output 'text') if [ ${?} -ne 0 ]; then echo "ERROR: Unable to retrieve latest Amazon Linux 2 AMI ID: $AMI_ID" echo "Tests canceled." return 1 else iecho "retrieved $AMI_ID." fi

# Now launch the instance as a t2.micro and capture its instance ID. # All other instance settings are left to default. iecho -n "Requesting new Amazon EC2 instance of type t2.micro..." EC2_INSTANCE_ID=$(aws ec2 run-instances \ --image-id "$AMI_ID" \ --instance-type t2.micro \ --query 'Instances[0].InstanceId' \ --output text)

158

Page 164: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

if [ ${?} -ne 0 ]; then echo "ERROR: Unable to launch EC2 instance: $EC2_INSTANCE_ID" echo "Tests canceled." return 1 else iecho "launched. ID:$EC2_INSTANCE_ID" fi

iecho -n "Waiting for instance $EC2_INSTANCE_ID to exist..." aws ec2 wait instance-exists \ --instance-id "$EC2_INSTANCE_ID" iecho "confirmed."

iecho "***************END OF SETUP*****************"iecho ""

run_test "1. Missing mandatory -i parameter" \ "change_ec2_instance_type" \ 1 \ "ERROR: You must provide an instance id."

run_test "2. Missing mandatory -t parameter" \ "change_ec2_instance_type -i abc" \ 1 \ "ERROR: You must provide an instance type."

run_test "3. Using an instance ID that doesn't exist" \ "change_ec2_instance_type -i abc -t t2.micro" \ 1 \ "ERROR: I can't find the instance."

# Test changing to the same type. We can do this while the instance is starting up.run_test "4. Trying to change to same type" \ "change_ec2_instance_type -v -i $EC2_INSTANCE_ID -t t2.micro" \ 1 \ "ERROR: Can't change instance type to the same type."

iecho -n "Waiting for instance $EC2_INSTANCE_ID to reach running state..."RESPONSE=$(aws ec2 wait instance-running --instance-id "$EC2_INSTANCE_ID")if [[ ${?} -ne 0 ]]; then errecho "\nERROR: AWS reports that the Wait command failed.\n$RESPONSE" return 1fi iecho "running."

# Test changing to t2.micro without -r : should still be in stopped state.run_test "5. Changing to type t2.nano without restart" \ "change_ec2_instance_type -f -i $EC2_INSTANCE_ID -t t2.nano" \ 0

# Validate result was "t2.nano" and that it's in "stopped" state. get_instance_info "$EC2_INSTANCE_ID" if [ "$EXISTING_TYPE" != "t2.nano" ]; then test_failed "Unable to validate change. Should be t2.nano. Found $EXISTING_TYPE." fi if [ "$EXISTING_STATE" != "stopped" ]; then test_failed "Unable to validate state. Should be stopped. Found $EXISTING_STATE." fi

# Test changing back to t2.micro with -r. Should now be in running staterun_test "6. Changing to type t2.micro with restart" \ "change_ec2_instance_type -f -r -i $EC2_INSTANCE_ID -t t2.micro" \ 0

159

Page 165: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

# Validate result was "t2.micro" and that it's in "running" state. get_instance_info "$EC2_INSTANCE_ID" if [ "$EXISTING_TYPE" != "t2.micro" ]; then test_failed "Unable to validate change. Should be t2.micro. Found $EXISTING_TYPE." fi if [ "$EXISTING_STATE" != "running" ]; then test_failed "Unable to validate state. Should be running. Found $EXISTING_STATE." fi

iecho ""iecho "*************TEAR DOWN STEPS****************" iecho -n "Requesting termination of instance $EC2_INSTANCE_ID..." # Delete and terminate the instance. RESPONSE=$(aws ec2 terminate-instances \ --instance-ids "$EC2_INSTANCE_ID" ) if [ ${?} -ne 0 ]; then errecho "**** ERROR ****" errecho "AWS reported a failure to terminate EC2 instance: $EC2_INSTANCE_ID" errecho "You must terminate the instance using the AWS Management Console" errecho "or CLI commands. Failure to terminate the instance can result in" errecho "charges to your AWS account.\n" else iecho "request accepted." fi

iecho -n "Waiting for instance $EC2_INSTANCE_ID to terminate..." aws ec2 wait instance-terminated \ --instance-id "$EC2_INSTANCE_ID" iecho "confirmed." if [[ ${?} -ne 0 ]]; then errecho "ERROR - AWS reports that Wait command failed." errecho "You must ensure that the instance terminated successfully yourself using the" errecho "AWS Management Console or CLI commands. Failure to terminate the instance can" errecho "result in charges to your AWS account.\n" return 1 fi

iecho "************END OF TEAR DOWN****************"iecho ""

echo "Tests completed successfully."

awsdocs_general.sh

Il file di script awsdocs_general.sh contiene le funzioni generiche utilizzate in esempi avanzati perAWS CLI.

Code

#!/usr/bin/env bash################################################################################ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.# This file is licensed under the Apache License, Version 2.0 (the "License").## You may not use this file except in compliance with the License. A copy of# the License is located at http://aws.amazon.com/apache2.0/.

160

Page 166: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

## This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR# CONDITIONS OF ANY KIND, either express or implied. See the License for the# specific language governing permissions and limitations under the License.################################################################################# This script contains general-purpose functions that are used throughout # the AWS Command Line Interface (AWS CLI) code examples that are maintained# in the repo at https://github.com/awsdocs/aws-doc-sdk-examples.## They are intended to abstract functionality that is required for the tests# to work without cluttering up the code. The intent is to ensure that the # purpose of the code is clear.

# Set global defaults:VERBOSE=false

################################################################################ function run_test## This function is used to perform a command and compare its output to both# the expected error code and the expected output string. If there isn't a # match, then the function invokes the test_failed function.###############################################################################function run_test { local DESCRIPTION COMMAND EXPECTED_ERR_CODE EXPECTED_OUTPUT RESPONSE DESCRIPTION="$1" COMMAND="$2" EXPECTED_ERR_CODE="$3" if [[ -z "$4" ]]; then EXPECTED_OUTPUT="$4"; else EXPECTED_OUTPUT=""; fi iecho -n "Running test: $DESCRIPTION..." RESPONSE="$($COMMAND)" ERR="${?}"

# Check to see if we got the expected error code. if [[ "$EXPECTED_ERR_CODE" -ne "$ERR" ]]; then test_failed "The test \"$DESCRIPTION\" returned an unexpected error code: $ERR" fi

# Now check the error message, if we provided other than "". if [[ -n "$EXPECTED_OUTPUT" ]]; then MATCH=$(echo "$RESPONSE" | grep "$EXPECTED_OUTPUT") # If there was no match (it's an empty string), then fail. if [[ -z "$MATCH" ]]; then test_failed "The test \"$DESCRIPTION\" returned an unexpected output: $RESPONSE" fi fi iecho "OK" ipause}

################################################################################ function test_failed## This function is used to terminate a failed test and to warn the customer# about possible undeleted resources that could incur costs to their account.###############################################################################

function test_failed { errecho "" errecho "===TEST FAILED==="

161

Page 167: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCambiare il tipo di EC2 utilizzando lo scripting bash

errecho "$@" errecho "" errecho " One or more of the tests failed to complete successfully. This means that" errecho " any tests after the one that failed didn't run and might have left resources" errecho " still active in your account." errecho "" errecho "IMPORTANT:" errecho " Resources created by this script can incur charges to your AWS account. If the" errecho " script didn't complete successfully, then you must review and manually delete" errecho " any resources created by this script that were not automatically removed." errecho "" exit 1 }

################################################################################ function errecho## This function outputs everything sent to it to STDERR (standard error output).###############################################################################function errecho { printf "%s\n" "$*" 2>&1}

################################################################################ function iecho## This function enables the script to display the specified text only if # the global variable $VERBOSE is set to true.###############################################################################function iecho { if [[ $VERBOSE == true ]]; then echo "$@" fi}

################################################################################ function ipause## This function enables the script to pause after each command if interactive# mode is set (by including -i on the script invocation command).###############################################################################function ipause { if [[ $INTERACTIVE == true ]]; then read -r -p "Press ENTER to continue..." fi}

# Initialize the shell's RANDOM variable.RANDOM=$$################################################################################ function generate_random_name## This function generates a random file name with using the specified root,# followed by 4 groups that each have 4 digits.# The default root name is "test".###############################################################################function generate_random_name {

ROOTNAME="test" if [[ -n $1 ]]; then ROOTNAME=$1 fi

162

Page 168: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteS3 Glacier

# Initialize the FILENAME variable FILENAME="$ROOTNAME" # Configure random number generator to issue numbers between 1000 and 9999, # inclusive. DIFF=$((9999-1000+1))

for _ in {1..4} do rnd=$(($((RANDOM%DIFF))+X)) # Make sure that the number is 4 digits long. while [ "${#rnd}" -lt 4 ]; do rnd="0$rnd"; done FILENAME+="-$rnd" done echo $FILENAME}

ReferencesRiferimento AWS CLI:

• aws ec2• aws ec2 describe-instances• aws ec2 modify-instance-attribute (aws ec2 modifica attributo-istanza)• aws ec2 start-instances• aws ec2 stop-instances• aws ec2 wait instance-running (aws ec2 in attesa dell'esecuzione di un'istanza)• aws ec2 wait instance-stopped (aws ec2 attende instance-stopped)

Altro riferimento:

• Amazon Elastic Compute Cloud Documentation• Per visualizzare e contribuire a esempi di codice AWS SDK e AWS CLI, consulta il repository degli

esempi di codice AWS in .GitHub

Utilizzo di Amazon S3 Glacier con l'AWS CLIPuoi accedere alle caratteristiche di Amazon S3 Glacier utilizzando AWS Command Line Interface (AWSCLI). Per elencare i comandi dell'AWS CLI per S3 Glacier, utilizza il comando seguente.

aws glacier help

Questo argomento mostra esempi di comandi AWS CLI che eseguono operazioni comuni per S3 Glacier.Gli esempi illustrano come utilizzare AWS CLI per caricare un file di grandi dimensioni in S3 Glacier,suddividendolo in parti più piccole e caricandole dalla riga di comando.

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Note

Questo tutorial utilizza diversi strumenti a riga di comando che in genere vengono preinstallatisu sistemi operativi di tipo Unix, tra cui Linux e macOS. Gli utenti Windows possono utilizzare glistessi strumenti installando Cygwin ed eseguendo i comandi dal terminale Cygwin. Le utilità e icomandi nativi di Windows che eseguono le stesse funzioni sono indicati, laddove disponibili.

163

Page 169: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCreazione di un vault Amazon S3 Glacier

Argomenti• Creazione di un vault Amazon S3 Glacier (p. 164)• Preparazione di un file per il caricamento (p. 164)• Avvio di un caricamento in più parti e caricamento dei file (p. 165)• Completamento del caricamento (p. 166)

Creazione di un vault Amazon S3 GlacierCreazione di un insieme di credenziali con il comando create-vault.

$ aws glacier create-vault --account-id - --vault-name myvault{ "location": "/123456789012/vaults/myvault"}

Note

Tutti i comandi S3 Glacier richiedono un parametro ID account. Utilizza il trattino (--account-id-) per utilizzare l'account corrente.

Preparazione di un file per il caricamentoCreazione di un file per il caricamento di prova. I seguenti comandi creano un file denominato largefileche contiene esattamente 3 MiB di dati casuali.

Linux o macOS

$ dd if=/dev/urandom of=largefile bs=3145728 count=11+0 records in1+0 records out3145728 bytes (3.1 MB) copied, 0.205813 s, 15.3 MB/s

dd è un'utilità che consente di copiare una serie di byte da un file di input a un file di output. L'esempioprecedente utilizza il file del dispositivo di sistema /dev/urandom come origine dei dati casuali. fsutilesegue una funzione simile in Windows.

Windows

C:\> fsutil file createnew largefile 3145728File C:\temp\largefile is created

Quindi, suddividi il file in 1 blocco di 1.048.576 byte MiB.

$ split -b 1048576 --verbose largefile chunkcreating file `chunkaa'creating file `chunkab'creating file `chunkac'

Note

HJ-Split è una utility gratuita che permette di suddividere i file per Windows e molte altrepiattaforme.

164

Page 170: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteAvvio di un caricamento in più parti e caricamento dei file

Avvio di un caricamento in più parti e caricamento deifileCrea un caricamento in più parti in Amazon S3 Glacier usando il comando initiate-multipart-upload.

$ aws glacier initiate-multipart-upload --account-id - --archive-description "multipart upload test" --part-size 1048576 --vault-name myvault{ "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ", "location": "/123456789012/vaults/myvault/multipart-uploads/19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"}

S3 Glacier richiede le dimensioni di ogni parte in byte (1 MiB in questo esempio), il nome del vault e un IDaccount per configurare il caricamento in più parti. Al termine dell'operazione, l'AWS CLI genera un ID dicaricamento. Salva l'ID in una variabile shell da utilizzare in futuro.

Linux o macOS

$ UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"

Windows

C:\> set UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"

Quindi, utilizza il comando upload-multipart-part per caricare singolarmente le tre parti.

$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkaa --range 'bytes 0-1048575/*' --account-id - --vault-name myvault{ "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553"}$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkab --range 'bytes 1048576-2097151/*' --account-id - --vault-name myvault{ "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553"}$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkac --range 'bytes 2097152-3145727/*' --account-id - --vault-name myvault{ "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553"}

Note

L'esempio precedente utilizza il simbolo del dollaro ($) per fare riferimento ai contenuti dellavariabile della shell UPLOADID in Linux. Nella riga di comando di Windows, utilizza un segno dipercentuale (%) su entrambe le estremità del nome di variabile (ad esempio, %UPLOADID%).

È necessario specificare l'intervallo di byte di ogni parte quando viene caricata, in modo che possa essereriassemblata nell'ordine corretto da S3 Glacier. Ogni parte è 1048576 byte, pertanto la prima parte occupa ibyte 0-1048575, la seconda i byte 1048576-2097151 e la terza i byte 2097152-3145727.

165

Page 171: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCompletamento del caricamento

Completamento del caricamentoAmazon S3 Glacier richiede una struttura hash del file originale per confermare che tutte le parti caricateabbiano raggiunto AWS intatte.

Per calcolare una struttura hash, devi suddividere il file in 1 parte MiB e calcolare un hash SHA-256 binariodi ogni parte. Quindi si suddivide l'elenco di hash in coppie, si combinano i due hash binari in ciascunacoppia e si utilizzano gli hash risultanti. Ripeti il processo fino a esaurire tutti gli hash. Se il numero di hashè dispari a qualsiasi livello, promuovilo al livello successivo senza modificarlo.

La chiave per calcolare correttamente una struttura hash quando si usano le utility a riga di comandoconsiste nel memorizzare ogni hash in formato binario ed effettuare la conversione in esadecimale solonell'ultima fase. Combinando ed eseguendo l'hashing della versione esadecimale di qualsiasi hash nellastruttura si otterrà un risultato non corretto.

Note

Gli utenti Windows possono utilizzare il comando type al posto di cat. OpenSSL è disponibile perWindows all'indirizzo OpenSSL.org.

Per calcolare una struttura hash

1. Se non è già stato fatto, suddividere il file originale in 1 parte MiB.

$ split --bytes=1048576 --verbose largefile chunkcreating file `chunkaa'creating file `chunkab'creating file `chunkac'

2. Calcola e memorizza l'hash binario SHA-256 di ogni blocco.

$ openssl dgst -sha256 -binary chunkaa > hash1$ openssl dgst -sha256 -binary chunkab > hash2$ openssl dgst -sha256 -binary chunkac > hash3

3. Combina i primi due hash e utilizza l'hash binario del risultato.

$ cat hash1 hash2 > hash12$ openssl dgst -sha256 -binary hash12 > hash12hash

4. Combina l'hash padre dei blocchi aa e ab con l'hash del blocco ac ed esegui l'hashing del risultato,questa volta con un output esadecimale. Memorizza il risultato in una variabile della shell.

$ cat hash12hash hash3 > hash123$ openssl dgst -sha256 hash123SHA256(hash123)= 9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67$ TREEHASH=9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67

Infine, completa il caricamento con il comando complete-multipart-upload. Questo comando utilizzale dimensioni del file originale in byte, il valore hash nella struttura finale esadecimale, il tuo ID account e ilnome dell'insieme di credenziali.

$ aws glacier complete-multipart-upload --checksum $TREEHASH --archive-size 3145728 --upload-id $UPLOADID --account-id - --vault-name myvault{ "archiveId": "d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg",

166

Page 172: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteIAM

"checksum": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67", "location": "/123456789012/vaults/myvault/archives/d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg"}

Puoi anche controllare lo stato del vault utilizzando il comando describe-vault.

$ aws glacier describe-vault --account-id - --vault-name myvault{ "SizeInBytes": 3178496, "VaultARN": "arn:aws:glacier:us-west-2:123456789012:vaults/myvault", "LastInventoryDate": "2018-12-07T00:26:19.028Z", "NumberOfArchives": 1, "CreationDate": "2018-12-06T21:23:45.708Z", "VaultName": "myvault"}

Note

Lo stato dell'insieme di credenziali viene aggiornato circa una volta al giorno. Per ulterioriinformazioni, consulta l'argomento relativo all'utilizzo di vault.

Ora puoi rimuovere i file di blocco e hash creati in modo sicuro.

$ rm chunk* hash*

Per ulteriori informazioni sui caricamenti in più parti, consulta gli argomenti relativi al caricamento in parti diarchivi di grandi dimensioni e all'elaborazione di checksum nella Guida per lo sviluppatore di Amazon S3Glacier.

Utilizzo di AWS Identity and Access Managementda AWS CLI

Puoi accedere alle caratteristiche di AWS Identity and Access Management (IAM) utilizzando AWSCommand Line Interface (AWS CLI). Per elencare i comandi dell'AWS CLI per IAM, utilizza il comandoseguente.

aws iam help

Questo argomento mostra esempi di comandi AWS CLI che eseguono operazioni comuni per IAM.

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Per ulteriori informazioni sul servizio IAM, consulta la Guida per l'utente AWS Identity and AccessManagement.

Argomenti• Creazione IAM utenti e gruppi (p. 168)• Collegamento di un IAM la policy gestita a un IAM utente (p. 169)• Impostazione di una password iniziale per un IAM utente (p. 169)• Creare una chiave di accesso per un IAM utente (p. 170)

167

Page 173: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCreazione IAM utenti e gruppi

Creazione IAM utenti e gruppiIn questa sezione viene descritto come utilizzare AWS Command Line Interface (AWS CLI) comandiper creare un AWS Identity and Access Management (IAM) gruppo e un nuovo IAM utente, quindiaggiungere l'utente al gruppo. Per ulteriori informazioni sul servizio IAM, vedere il AWS Identity and AccessManagement Guida utente.

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Per creare un IAM e aggiungere un nuovo IAM utente

1. Utilizzare il create-group per creare il gruppo.

$ aws iam create-group --group-name MyIamGroup{ "Group": { "GroupName": "MyIamGroup", "CreateDate": "2018-12-14T03:03:52.834Z", "GroupId": "AGPAJNUJ2W4IJVEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyIamGroup", "Path": "/" }}

2. Utilizzare il create-user per creare l'utente.

$ aws iam create-user --user-name MyUser{ "User": { "UserName": "MyUser", "Path": "/", "CreateDate": "2018-12-14T03:13:02.581Z", "UserId": "AIDAJY2PE5XUZ4EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/MyUser" }}

3. Utilizzare il add-user-to-group per aggiungere l'utente al gruppo.

$ aws iam add-user-to-group --user-name MyUser --group-name MyIamGroup

4. Per verificare che il MyIamGroup contiene il MyUser, utilizzare il get-group comando.

$ aws iam get-group --group-name MyIamGroup{ "Group": { "GroupName": "MyIamGroup", "CreateDate": "2018-12-14T03:03:52Z", "GroupId": "AGPAJNUJ2W4IJVEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyIamGroup", "Path": "/" }, "Users": [ { "UserName": "MyUser", "Path": "/", "CreateDate": "2018-12-14T03:13:02Z", "UserId": "AIDAJY2PE5XUZ4EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/MyUser" }

168

Page 174: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCollegamento di un IAM la policy gestita a un IAM utente

], "IsTruncated": "false"}

Collegamento di un IAM la policy gestita a un IAMutenteIn questa sezione viene descritto come utilizzare AWS Command Line Interface (AWS CLI) comandi perallegare un AWS Identity and Access Management (IAM) la politica a un IAM utente. La policy nell'esempiofornisce all'utente "Power User Access" (Accesso utenti avanzati). Per ulteriori informazioni sul servizioIAM, vedere il AWS Identity and Access Management Guida utente.

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Per allegare un IAM la policy gestita a un IAM utente

1. Determina l'Amazon Resource Name (ARN) della policy da allegare. Il comando seguente utilizzalist-policies per trovare l’ARN della polizza con il nome PowerUserAccess. Quindi, memorizzaquel ARN in una variabile ambientale.

$ export POLICYARN=$(aws iam list-policies --query 'Policies[?PolicyName==`PowerUserAccess`].{ARN:Arn}' --output text) ~$ echo $POLICYARNarn:aws:iam::aws:policy/PowerUserAccess

2. Per allegare la polizza, utilizzare il attach-user-policy e fare riferimento alla variabiledell'ambiente che contiene la policy ARN.

$ aws iam attach-user-policy --user-name MyUser --policy-arn $POLICYARN

3. Verificare che la polizza sia collegata all'utente eseguendo il list-attached-user-policiescomando.

$ aws iam list-attached-user-policies --user-name MyUser{ "AttachedPolicies": [ { "PolicyName": "PowerUserAccess", "PolicyArn": "arn:aws:iam::aws:policy/PowerUserAccess" } ]}

Per ulteriori informazioni, vedere Risorse di gestione degli accessi. Questo argomento forniscecollegamenti a una panoramica delle autorizzazioni e delle policy e collegamenti ad esempi di policy perl'accesso Amazon S3, Amazon EC2e altri servizi.

Impostazione di una password iniziale per un IAMutenteIn questa sezione viene descritto come utilizzare AWS Command Line Interface (AWS CLI) comandi perimpostare una password iniziale per un AWS Identity and Access Management( IAM) utente. Per ulterioriinformazioni sul servizio IAM, vedere il AWS Identity and Access Management Guida utente.

169

Page 175: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCreare una chiave di accesso per un IAM utente

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Il comando seguente utilizza crea-profilo-di-accesso per impostare una password iniziale sull'utentespecificato. Quando l'utente accede per la prima volta, deve modificare la password in qualcosa che solol'utente conosce.

$ aws iam create-login-profile --user-name MyUser --password My!User1Login8P@ssword --password-reset-required{ "LoginProfile": { "UserName": "MyUser", "CreateDate": "2018-12-14T17:27:18Z", "PasswordResetRequired": true }}

È possibile utilizzare il update-login-profile comando a modifica la password per un IAM utente.

$ aws iam update-login-profile --user-name MyUser --password My!User1ADifferentP@ssword

Creare una chiave di accesso per un IAM utenteIn questa sezione viene descritto come utilizzare AWS Command Line Interface (AWS CLI) comandi percreare una serie di chiavi di accesso per un AWS Identity and Access Management (IAM) utente. Perulteriori informazioni sul servizio IAM, vedere il Guida utente Gestione identità e accesso AWS.

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

È possibile utilizzare il create-access-key per creare una chiave di accesso per un IAM utente. Unachiave di accesso è un set di credenziali di sicurezza costituito da un ID chiave di accesso e una chiavesegreta.

Un utente IAM può creare solo due chiavi di accesso alla volta. Se si tenta di creare un terzo set, ilcomando restituisce un LimitExceeded errore.

$ aws iam create-access-key --user-name MyUser{ "AccessKey": { "UserName": "MyUser", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "Status": "Active", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "CreateDate": "2018-12-14T17:34:16Z" }}

Utilizzare il delete-access-key per eliminare una chiave di accesso per un IAM utente. Specifica lachiave di accesso da eliminare utilizzando l'ID chiave di accesso.

$ aws iam delete-access-key --user-name MyUser --access-key-id AKIAIOSFODNN7EXAMPLE

Utilizzo di Amazon S3 con l'AWS CLIPuoi accedere alle caratteristiche di Amazon Simple Storage Service (Amazon S3) utilizzando AWSCommand Line Interface (AWS CLI). AWS CLI offre due livelli di comandi per l'accesso ad Amazon S3:

170

Page 176: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

• Il livello s3 è costituito da comandi di alto livello che semplificano le operazioni di uso frequente, adesempio la creazione, la modifica e l'eliminazione di oggetti e bucket.

• Il livello s3api si comporta esattamente come gli altri servizi AWS, esponendo l'accesso diretto a tuttele operazioni API Amazon S3. Consente di eseguire operazioni avanzate che potrebbero non essereconsentite con i comandi di livello alto del livello seguente.

Argomenti in questa guida:• Utilizzo dei comandi di alto livello (s3) con AWS CLI (Editor di particelle) (p. 171)• Utilizzando i comandi API-Level (s3api) con il AWS CLI (p. 179)• Esempio di scripting delle operazioni del ciclo di vita del bucketAmazon S3 (p. 180)

Note

AWS CLI supporta la copia, lo spostamento e la sincronizzazione da Amazon S3 a Amazon S3utilizzando l'operazione COPY lato server fornita da Amazon S3. Ciò significa che i file vengonoconservati nel cloud e non vengono scaricati nel computer client e sottoposti a backup in AmazonS3.Quando operazioni come queste possono essere eseguite interamente nel cloud, viene usata solola larghezza di banda necessaria per la richiesta e la risposta HTTP.

Utilizzo dei comandi di alto livello (s3) con AWS CLI(Editor di particelle)Questo argomento descrive come gestire bucket e oggetti Amazon S3 utilizzando i comandi aws s3 nellaAWS CLI.

I comandi aws s3 di alto livello semplificano la gestione degli oggetti Amazon S3. Questi comandiconsentono di gestire i contenuti di Amazon S3 all'interno di se stessi e con le directory locali.

Note

Quando utilizzi i comandi aws s3 per caricare oggetti di grandi dimensioni in un bucket AmazonS3, AWS CLI esegue automaticamente un caricamento in più parti. Non è possibile riprendere uncaricamento non riuscito quando si utilizzano questi comandi aws s3.Se il caricamento in più parti ha esito negativo a causa di un timeout, oppure se il caricamento èstato annullato manualmente nella AWS CLI, la AWS CLI interrompe il caricamento ed elimina tuttii file creati. Questo processo può richiedere alcuni minuti.Se il processo di caricamento o pulizia in più parti viene annullato da un comando di interruzione oda un errore di sistema, i file creati rimangono nel bucket Amazon S3. Per pulire il caricamento inpiù parti, utilizza il comando s3api abort-multipart-upload.Per ulteriori informazioni, consulta Panoramica del caricamento in più parti nella Guida per losviluppatore di Amazon Simple Storage Service.

Argomenti• Prerequisites (p. 172)• Creazione di un bucket (p. 172)• Elencazione di bucket e oggetti (p. 172)• Eliminazione dei bucket (p. 173)• Eliminazione di oggetti (p. 173)• Spostare oggetti (p. 174)• Copy objects (Copia oggetti) (p. 174)

171

Page 177: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

• Sync objects (Sincronizza oggetti) (p. 175)• Opzioni utilizzate più di frequente per i comandi s3 (p. 177)• References (p. 179)

PrerequisitesPer eseguire i comandi s3, è necessario:

• Installare e configurare la AWS CLI. Per ulteriori informazioni, vedi Installazione, aggiornamento edisinstallazione diAWS CLI (p. 5) e Nozioni di base sulla configurazione (p. 44).

• Comprendi questi termini Amazon S3:• Bucket Una cartella – di primo livello.Amazon S3• Prefisso Una cartella – in un bucket.Amazon S3• Oggetto – Qualsiasi item ospitato in un bucket Amazon S3.

Creazione di un bucketUtilizzare il comando s3 mb per creare un bucket. I nomi dei bucket devono essere univoci globalmente(univoci in tutto Amazon S3) e devono essere conformi a DNS.

Possono includere lettere minuscole, numeri, trattini e punti. Possono iniziare e terminare solo con unalettera o un numero e non possono contenere un punto accanto a un trattino o a un altro periodo.

Sintassi

$ aws s3 mb <target> [--options]

Esempi di s3mb

Nell'esempio seguente viene creato il bucket s3://bucket-name.

$ aws s3 mb s3://bucket-name

Elencazione di bucket e oggettiPer elencare bucket, cartelle o oggetti, utilizzare il comando s3 ls. L'utilizzo del comando senza unadestinazione o opzioni elenca tutti i bucket.

Sintassi

$ aws s3 ls <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, consulta Opzioni utilizzate piùdi frequente per i comandi s3 (p. 177). Per un elenco completo delle opzioni disponibili, consulta s3 lsnella AWS CLI Command Reference.

Esempi di s3 ls

L'esempio seguente elenca tutti i bucket Amazon S3.

$ aws s3 ls2018-12-11 17:08:50 my-bucket

172

Page 178: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

2018-12-14 14:55:44 my-bucket2

Il comando seguente elenca tutti gli oggetti e prefissi in un bucket. In questo output di esempio, il prefissoexample/ ha un file denominato MyFile1.txt.

$ aws s3 ls s3://bucket-name PRE example/2018-12-04 19:05:48 3 MyFile1.txt

Puoi filtrare l'output per un determinato prefisso includendolo nel comando. Il comando seguente elenca glioggetti in bucket-name/example/ (ovvero oggetti in bucket-name filtrato dal prefisso example/).

$ aws s3 ls s3://bucket-name/example/2018-12-06 18:59:32 3 MyFile1.txt

Eliminazione dei bucketPer eliminare un bucket, utilizzare il comando s3 rb.

Sintassi

$ aws s3 rb <target> [--options]

Esempi di rb s3

L'esempio seguente rimuove il bucket s3://bucket-name.

$ aws s3 rb s3://bucket-name

Per default, perché l'operazione riesca il bucket deve essere vuoto. Per rimuovere un bucket che non èvuoto, è necessario includere l'opzione --force. Se utilizzi un bucket con versioni multiple che contieneoggetti precedentemente eliminati, ma conservati, questo comando non consentirà di rimuovere il bucket.Devi prima rimuovere tutti i contenuti.

L'esempio seguente elimina tutti gli oggetti e i prefissi nel bucket, quindi elimina il bucket.

$ aws s3 rb s3://bucket-name --force

Eliminazione di oggettiPer eliminare gli oggetti in un bucket o nella directory locale, utilizzare il comando s3 rm.

Sintassi

$ aws s3 rm <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, consulta Opzioni utilizzate più difrequente per i comandi s3 (p. 177). Per un elenco completo delle opzioni, consulta s3 rm nella AWS CLICommand Reference.

Esempi di s3 rm

L'esempio seguente elimina tutti gli oggetti da s3://bucket-name/example.

173

Page 179: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

$ aws s3 rm s3://bucket-name/example

Spostare oggettiUtilizzare il comando s3 mv per spostare gli oggetti da un bucket o una directory locale.

Sintassi

$ aws s3 mv <source> <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando e alcuni esempi, consulta Opzioni utilizzatepiù di frequente per i comandi s3 (p. 177). Per un elenco completo delle opzioni disponibili, consulta s3mv nella AWS CLI Command Reference.

Esempi di s3 mv

L'esempio seguente sposta tutti gli oggetti da s3://bucket-name/example a s3://my-bucket/.

$ aws s3 mv s3://bucket-name/example s3://my-bucket/

L'esempio seguente sposta un file locale dalla directory di lavoro corrente al bucket Amazon S3 con ilcomando s3 cp.

$ aws s3 mv filename.txt s3://bucket-name

L'esempio seguente sposta un file dal bucket Amazon S3 alla directory di lavoro corrente, dove ./specifica la directory di lavoro corrente.

$ aws s3 mv s3://bucket-name/filename.txt ./

Copy objects (Copia oggetti)Utilizza il comando s3 cp per copiare oggetti da un bucket o da una directory locale.

Sintassi

$ aws s3 cp <source> <target> [--options]

È possibile utilizzare il parametro trattino per lo streaming di file all'input standard (stdin) o all'outputstandard (stdout).

Warning

Se utilizzi PowerShell, la shell potrebbe modificare la codifica di un CRLF o aggiungere un CRLF aun input reindirizzato o all'output reindirizzato.

Il comando s3 cp utilizza la sintassi seguente per caricare un flusso di file da stdin in un bucketspecificato.

Sintassi

$ aws s3 cp - <target> [--options]

174

Page 180: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

Il comando s3 cp utilizza la sintassi seguente per scaricare un flusso di file Amazon S3 per stdout.

Sintassi

$ aws s3 cp <target> [--options] -

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, consulta Opzioni utilizzate più difrequente per i comandi s3 (p. 177). Per l'elenco completo delle opzioni, consulta s3 cp nella AWS CLICommand Reference.

Esempi dis3 cp

L'esempio seguente copia tutti gli oggetti da s3://bucket-name/example a s3://my-bucket/.

$ aws s3 cp s3://bucket-name/example s3://my-bucket/

L'esempio seguente copia un file locale dalla directory di lavoro corrente al bucket Amazon S3 con ilcomando s3 cp.

$ aws s3 cp filename.txt s3://bucket-name

L'esempio seguente copia un file dal bucket Amazon S3 alla directory di lavoro corrente, dove ./ specificala directory di lavoro corrente.

$ aws s3 cp s3://bucket-name/filename.txt ./

L'esempio seguente utilizza l'editor di testo del gatto per lo streaming del testo "hello world" al file s3://bucket-name/filename.txt.

$ cat "hello world" | aws s3 cp - s3://bucket-name/filename.txt

L'esempio seguente trasmette il file s3://bucket-name/filename.txt in streaming a stdout estampa i contenuti nella console.

$ aws s3 cp s3://bucket-name/filename.txt -hello world

L'esempio seguente trasmette i contenuti di s3://bucket-name/pre a stdout, utilizza il comandobzip2 per comprimere i file e carica il nuovo file compresso denominato key.bz2 in s3://bucket-name.

$ aws s3 cp s3://bucket-name/pre - | bzip2 --best | aws s3 cp - s3://bucket-name/key.bz2

Sync objects (Sincronizza oggetti)Il comando s3 sync sincronizza i contenuti di un bucket e di una directory oppure i contenuti di duebucket. Di solito, s3 sync copia file o oggetti obsoleti o mancanti tra l'origine e la destinazione. Tuttavia,puoi anche utilizzare l'opzione --delete per rimuovere dalla destinazione i file o gli oggetti non presentinell'origine.

Sintassi

175

Page 181: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

$ aws s3 sync <source> <target> [--options]

Per alcune opzioni comuni da utilizzare con questo comando ed esempi, consulta Opzioni utilizzate più difrequente per i comandi s3 (p. 177). Per un elenco completo delle opzioni, consulta s3 sync nella AWSCLI Command Reference.

Esempi di sincronizzazione s3

L'esempio seguente sincronizza i contenuti di un prefisso Amazon S3 denominato path nel bucketdenominato my-bucket con la directory di lavoro corrente.

s3 sync aggiorna tutti i file che hanno una dimensione o un'ora modificata diversa da quella dei filecon lo stesso nome nella destinazione. L'output mostra le operazioni specifiche eseguite durante lasincronizzazione. L'operazione sincronizza ricorsivamente la sottodirectory MySubdirectory e i suoicontenuti con s3://my-bucket/path/MySubdirectory.

$ aws s3 sync . s3://my-bucket/pathupload: MySubdirectory\MyFile3.txt to s3://my-bucket/path/MySubdirectory/MyFile3.txtupload: MyFile2.txt to s3://my-bucket/path/MyFile2.txtupload: MyFile1.txt to s3://my-bucket/path/MyFile1.txt

L'esempio seguente, che estende quello precedente, mostra come utilizzare l'opzione --delete.

// Delete local file$ rm ./MyFile1.txt

// Attempt sync without --delete option - nothing happens$ aws s3 sync . s3://my-bucket/path

// Sync with deletion - object is deleted from bucket$ aws s3 sync . s3://my-bucket/path --deletedelete: s3://my-bucket/path/MyFile1.txt

// Delete object from bucket$ aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txtdelete: s3://my-bucket/path/MySubdirectory/MyFile3.txt

// Sync with deletion - local file is deleted$ aws s3 sync s3://my-bucket/path . --deletedelete: MySubdirectory\MyFile3.txt

// Sync with Infrequent Access storage class$ aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA

Quando utilizzi l'opzione --delete, le opzioni --exclude e --include possono filtrare file o oggetti daeliminare durante un'operazione s3 sync. In questo caso, la stringa di parametro deve specificare i file daescludere o includere per l'eliminazione nel contesto della directory o del bucket di destinazione. Di seguitoviene riportato un esempio.

Assume local directory and s3://my-bucket/path currently in sync and each contains 3 files:MyFile1.txtMyFile2.rtfMyFile88.txt'''

// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not.$ aws s3 sync . s3://my-bucket/path --delete --exclude "path/MyFile?.txt"delete: s3://my-bucket/path/MyFile88.txt'''

176

Page 182: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

// Sync with delete, excluding MyFile2.rtf - local file is NOT deleted$ aws s3 sync s3://my-bucket/path . --delete --exclude "./MyFile2.rtf"download: s3://my-bucket/path/MyFile1.txt to MyFile1.txt'''

// Sync with delete, local copy of MyFile2.rtf is deleted$ aws s3 sync s3://my-bucket/path . --deletedelete: MyFile2.rtf

Opzioni utilizzate più di frequente per i comandi s3Le seguenti opzioni vengono spesso utilizzate per i comandi descritti in questo argomento. Per un elencocompleto delle opzioni che puoi utilizzare su un comando, consulta il comando specifico nella AWS CLICommand Reference.

acl

s3 sync e s3 cp possono utilizzare l'opzione --acl. In questo modo è possibile impostare leautorizzazioni di accesso per i file copiati in Amazon S3. L'opzione --acl accetta i valori private,public-read e public-read-write. Per ulteriori informazioni, consulta ACL predefinita nellaGuida per lo sviluppatore di Amazon Simple Storage Service.

$ aws s3 sync . s3://my-bucket/path --acl public-read

escludere

Quando utilizzi il comando s3 cp, s3 mv, s3 sync o s3 rm, puoi filtrare i risultati utilizzandol'opzione --exclude o --include. L'opzione --exclude imposta le regole in modo da escluderesolo gli oggetti dal comando e le opzioni si applicano nell'ordine specificato. Questo viene mostratonell'esempio seguente.

Local directory contains 3 files:MyFile1.txtMyFile2.rtfMyFile88.txt

// Exclude all .txt files, resulting in only MyFile2.rtf being copied$ aws s3 cp . s3://my-bucket/path --exclude "*.txt"

// Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied$ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt"

// Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied$ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"

includere

Quando utilizzi il comando s3 cp, s3 mv, s3 sync o s3 rm, puoi filtrare i risultati utilizzandol'opzione --exclude o --include. L'opzione --include imposta le regole in modo da includeresolo gli oggetti specificati per il comando e le opzioni si applicano nell'ordine specificato. Questo vienemostrato nell'esempio seguente.

Local directory contains 3 files:MyFile1.txt

177

Page 183: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi di alto livello (s3)

MyFile2.rtfMyFile88.txt

// Exclude all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied$ aws s3 cp . s3://my-bucket/path --include "*.txt"

// Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied$ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt"

// Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied$ aws s3 cp . s3://my-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"

concessione

I comandi s3 cp, s3 mv e s3 sync includono un'opzione --grants che può essere utilizzata perconcedere autorizzazioni sull'oggetto a utenti o gruppi specificati. Imposta l'opzione --grants su unelenco di autorizzazioni utilizzando la sintassi seguente. Sostituire Permission, Grantee_Type eGrantee_ID con i propri valori.

Sintassi

--grants Permission=Grantee_Type=Grantee_ID [Permission=Grantee_Type=Grantee_ID ...]

Ogni valore contiene i seguenti elementi:• Permission – Specifica le autorizzazioni concesse. Può essere impostato su read, readacl,writeacl o full.

• Grantee_Type – Specifica come identificare l'assegnatario. Può essere impostato su uri,emailaddress o id.

• Grantee_ID – Specifica l'assegnatario in base a Grantee_Type.• uri – L'URI del gruppo. Per ulteriori informazioni, consulta Chi è un assegnatario?• emailaddress – L'indirizzo e-mail dell'account.• id – L'ID canonico dell'account.

Per ulteriori informazioni sul controllo degli accessi di Amazon S3, consulta Controllo degli accessi.

L'esempio seguente copia un oggetto in un bucket. Concede le autorizzazioni read sull'oggettoa tutti gli utenti e le autorizzazioni full (read, readacl e writeacl) all'account associato [email protected].

$ aws s3 cp file.txt s3://my-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers [email protected]

Puoi anche specificare una classe di storage non predefinita (REDUCED_REDUNDANCY oSTANDARD_IA) per gli oggetti caricati su Amazon S3. Per farlo, utilizza l'opzione --storage-class.

$ aws s3 cp file.txt s3://my-bucket/ --storage-class REDUCED_REDUNDANCY

recursive

Quando si utilizza questa opzione, il comando viene eseguito su tutti i file o gli oggetti nella directory onel prefisso specificati. L'esempio seguente elimina s3://my-bucket/path e tutti i suoi contenuti.

178

Page 184: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteComandi API-level (s3 api)

$ aws s3 rm s3://my-bucket/path --recursive

ReferencesRiferimento AWS CLI:

• aws s3

• aws s3 cp

• aws s3 mb

• aws s3 mv

• aws s3 ls

• aws s3 rb

• aws s3 rm

• aws s3 sync

Riferimento per il servizio:

• Utilizzo dei bucket Amazon S3 nellaGuida per lo sviluppatore di Amazon Simple Storage Service• Utilizzo degli oggetti Amazon S3 inGuida per lo sviluppatore di Amazon Simple Storage Service• Elenco delle chiavi in modo gerarchico utilizzando un prefisso e un delimitatore nellaGuida per lo

sviluppatore di Amazon Simple Storage Service• Interruzione di caricamenti in più parti in un bucket S3 utilizzando SDK AWS per .NET (basso livello)

nellaGuida per lo sviluppatore di Amazon Simple Storage Service

Utilizzando i comandi API-Level (s3api) con il AWSCLII comandi a livello di API (contenuti nel s3api ) fornisce accesso diretto al Amazon Simple StorageService (Amazon S3) le api e consentono alcune operazioni che non sono esposte ad alto livello s3comandi. Questi comandi sono equivalenti agli altri servizi AWS che forniscono l'accesso a livello di APIalle funzionalità dei servizi.

In questa sezione vengono forniti esempi che dimostrano come utilizzare i comandi di livello inferiore chemappano Amazon S3 api. Inoltre, è possibile trovare esempi per ogni comando API S3 nella sezione s3apidella Guida di riferimento CLI.

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Applicazione di una lista di controllo accessi (ACL) personalizzataGrazie ai comandi di alto livello, è possibile utilizzare --acl per applicare elenchi di controllo degli accessipredefiniti (acl) a Amazon S3 oggetti. Ma non è possibile utilizzare questo comando per impostare le ACL alivello di bucket. Tuttavia, è possibile farlo utilizzando il metti-l-acl-secchio Comando livello API.

Il seguente esempio mostra come concedere il controllo completo a due AWS utenti([email protected] e [email protected]) e leggere il permesso a tutti. L'identificatore per "tutti"proviene da un URI speciale passato come parametro.

179

Page 185: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

$ aws s3api put-bucket-acl --bucket MyBucket --grant-full-control 'emailaddress="[email protected]",emailaddress="[email protected]"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'

Per informazioni dettagliate su come costruire gli assi, vedere METTERE l'ACL a secchio nella AmazonSimple Storage Service API Reference. Il s3api Comandi ACL nella CLI, ad esempio put-bucket-acl,utilizzare lo stesso notazione di argomenti in shorthand.

Configurazione di una policy di registrazioneComando API put-bucket-logging configura una policy di registrazione dei bucket.

Nell'esempio seguente, l'utente AWS [email protected] viene concesso il pieno controllo sui file diregistro e tutti gli utenti hanno letto l'accesso a loro. Notare che il put-bucket-acl è anche necessarioper concedere Amazon S3 il sistema di inserimento dei registri (specificato da un URI) le autorizzazioninecessarie per leggere e scrivere i registri sul bucket.

$ aws s3api put-bucket-acl --bucket MyBucket --grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"'$ aws s3api put-bucket-logging --bucket MyBucket --bucket-logging-status file://logging.json

Il logging.json il file nel comando precedente contiene i seguenti contenuti.

{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "MyBucketLogs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "[email protected]" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }}

Esempio di scripting delle operazioni del ciclo di vitadel bucketAmazon S3Questo argomento utilizza un esempio di scripting bash per le operazioni del ciclo di vita del bucketAmazon S3 utilizzando AWS Command Line Interface (AWS CLI). Questo esempio di script utilizza il setdi comandi aws s3api. Gli script di shell sono programmi progettati per essere eseguiti in un'interfaccia ariga di comando.

Argomenti

180

Page 186: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

• Prima di iniziare (p. 181)• Informazioni su questo esempio (p. 181)• Files (p. 181)• References (p. 189)

Prima di iniziarePrima di poter eseguire uno degli esempi seguenti, è necessario completare i seguenti elementi.

• AWS CLI installato, consulta Installazione, aggiornamento e disinstallazione diAWS CLI (p. 5) per ulterioriinformazioni.

• AWS CLI configurato, consulta Nozioni di base sulla configurazione (p. 44) per ulteriori informazioni. Ilprofilo utilizzato deve disporre delle autorizzazioni che consentono le operazioni di AWS eseguite dagliesempi.

• Come best practice di AWS, concedi a questo codice privilegio minimo o solo le autorizzazioni richiesteper eseguire un'attività. Per ulteriori informazioni, consulta Concedere il privilegio minimo nella Guida perl'utente di AWS Identity and Access Management (IAM).

• Questo codice non è stato testato in tutte le regioni AWS. Alcuni servizi AWS sono disponibili soloin regioni specifiche. Per ulteriori informazioni, consulta Endpoint e quote del servizio nella Guida diriferimento generale AWS.

• L'esecuzione di questo codice può comportare addebiti sul tuo account AWS. È tua responsabilitàassicurarti che tutte le risorse create da questo script vengano rimosse al termine dell'utilizzo.

Il servizio Amazon S3 utilizza i seguenti termini:

• Bucket — Una cartella Amazon S3 di livello superiore.• Prefisso — Una cartella Amazon S3 in un bucket.• Oggetto — Qualsiasi voce ospitata in un bucket Amazon S3.

Informazioni su questo esempioQuesto esempio illustra come interagire con alcune delle operazioni Amazon S3 di base utilizzando unset di funzioni nei file di script della shell. Le funzioni si trovano nel file di script della shell denominatobucket-operations.sh. È possibile chiamare queste funzioni in un altro file. Ogni file di script contienecommenti che descrivono ciascuna delle funzioni.

Per visualizzare i risultati intermedi di ogni fase, esegui lo script con un parametro -i. Puoi visualizzare lostato corrente del bucket o il relativo contenuto utilizzando la console Amazon S3. Lo script procede allafase successiva solo quando premi invio al prompt.

Per l'esempio completo e i file di script scaricabili, consulta Operazioni del ciclo di vita del bucket AmazonS3 nel repository degli esempi di codice AWS in .GitHub

FilesL'esempio contiene i seguenti file:

Operazione bucket .sh

Questo file di script principale può essere originato da un altro file. Include funzioni che eseguono leseguenti attività:

181

Page 187: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

• Creazione di un bucket e verifica che esista• Copia di un file dal computer locale a un bucket• Copia di un file da una posizione del bucket a una posizione del bucket diversa• Elenco dei contenuti di un bucket• Eliminazione di un file da un bucket• Eliminazione di un bucket

Code

source ./awsdocs_general.sh

################################################################################ function bucket_exists## This function checks to see if the specified bucket already exists.## Parameters:# $1 - The name of the bucket to check# # Returns:# 0 if the bucket already exists# 1 if the bucket doesn't exist###############################################################################function bucket_exists { be_bucketname=$1

# Check whether the bucket already exists. # We suppress all output - we're interested only in the return code.

aws s3api head-bucket \ --bucket $be_bucketname \ >/dev/null 2>&1

if [[ ${?} -eq 0 ]]; then return 0 # 0 in Bash script means true. else return 1 # 1 in Bash script means false. fi}################################################################################ function create-bucket## This function creates the specified bucket in the specified AWS Region, unless# it already exists.# # Parameters:# -b bucket_name -- The name of the bucket to create# -r region_code -- The code for an AWS Region in which to # create the bucket# # Returns:# The URL of the bucket that was created.# And:# 0 if successful# 1 if it fails###############################################################################function create_bucket { local BUCKET_NAME REGION_CODE RESPONSE local OPTION OPTIND OPTARG # Required to use getopts command in a function

function usage { echo "function create_bucket"

182

Page 188: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

echo "Creates an Amazon S3 bucket. You must supply both of the following parameters:" echo " -b bucket_name The name of the bucket. It must be globally unique." echo " -r region_code The code for an AWS Region in which the bucket is created." echo "" }

# Retrieve the calling parameters while getopts "b:r:" OPTION; do case "${OPTION}" in b) BUCKET_NAME="${OPTARG}";; r) REGION_CODE="${OPTARG}";; h) usage; return 0;; \?) echo "Invalid parameter"; usage; return 1;; esac done

if [[ -z "$BUCKET_NAME" ]]; then errecho "ERROR: You must provide a bucket name with the -b parameter." usage return 1 fi

if [[ -z "$REGION_CODE" ]]; then errecho "ERROR: You must provide an AWS Region code with the -r parameter." usage return 1 fi

iecho "Parameters:\n" iecho " Bucket name: $BUCKET_NAME" iecho " Region code: $REGION_CODE" iecho "" # If the bucket already exists, we don't want to try to create it. if (bucket_exists $BUCKET_NAME); then errecho "ERROR: A bucket with that name already exists. Try again." return 1 fi

# The bucket doesn't exist, so try to create it. RESPONSE=$(aws s3api create-bucket \ --bucket $BUCKET_NAME \ --create-bucket-configuration LocationConstraint=$REGION_CODE)

if [[ ${?} -ne 0 ]]; then errecho "ERROR: AWS reports create-bucket operation failed.\n$RESPONSE" return 1 fi}

################################################################################ function copy_file_to_bucket## This function creates a file in the specified bucket. ## Parameters:# -b bucket_name$1 - The name of the bucket to copy the file to# $2 - The path and file name of the local file to copy to the bucket# $3 - The key (name) to call the copy of the file in the bucket# # Returns:

183

Page 189: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

# 0 if successful# 1 if it fails###############################################################################function copy_file_to_bucket { cftb_bucketname=$1 cftb_sourcefile=$2 cftb_destfilename=$3 local RESPONSE RESPONSE=$(aws s3api put-object \ --bucket $cftb_bucketname \ --body $cftb_sourcefile \ --key $cftb_destfilename)

if [[ ${?} -ne 0 ]]; then errecho "ERROR: AWS reports put-object operation failed.\n$RESPONSE" return 1 fi}

################################################################################ function copy_item_in_bucket## This function creates a copy of the specified file in the same bucket.## Parameters:# $1 - The name of the bucket to copy the file from and to# $2 - The key of the source file to copy# $3 - The key of the destination file# # Returns:# 0 if successful# 1 if it fails###############################################################################function copy_item_in_bucket { ciib_bucketname=$1 ciib_sourcefile=$2 ciib_destfile=$3 local RESPONSE RESPONSE=$(aws s3api copy-object \ --bucket $ciib_bucketname \ --copy-source $ciib_bucketname/$ciib_sourcefile \ --key $ciib_destfile)

if [[ $? -ne 0 ]]; then errecho "ERROR: AWS reports s3api copy-object operation failed.\n$RESPONSE" return 1 fi}

################################################################################ function list_items_in_bucket## This function displays a list of the files in the bucket with each file's # size. The function uses the --query parameter to retrieve only the Key and # Size fields from the Contents collection.## Parameters:# $1 - The name of the bucket# # Returns:# The list of files in text format# And:# 0 if successful# 1 if it fails

184

Page 190: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

###############################################################################function list_items_in_bucket { liib_bucketname=$1 local RESPONSE

RESPONSE=$(aws s3api list-objects \ --bucket $liib_bucketname \ --output text \ --query 'Contents[].{Key: Key, Size: Size}' )

if [[ ${?} -eq 0 ]]; then echo "$RESPONSE" else errecho "ERROR: AWS reports s3api list-objects operation failed.\n$RESPONSE" return 1 fi}

################################################################################ function delete_item_in_bucket## This function deletes the specified file from the specified bucket. ## Parameters:# $1 - The name of the bucket# $2 - The key (file name) in the bucket to delete

# Returns:# 0 if successful# 1 if it fails###############################################################################function delete_item_in_bucket { diib_bucketname=$1 diib_key=$2 local RESPONSE RESPONSE=$(aws s3api delete-object \ --bucket $diib_bucketname \ --key $diib_key)

if [[ $? -ne 0 ]]; then errecho "ERROR: AWS reports s3api delete-object operation failed.\n$RESPONSE" return 1 fi}

################################################################################ function delete_bucket## This function deletes the specified bucket.## Parameters:# $1 - The name of the bucket

# Returns:# 0 if successful# 1 if it fails############################################################################### function delete_bucket { db_bucketname=$1 local RESPONSE

RESPONSE=$(aws s3api delete-bucket \ --bucket $db_bucketname)

if [[ $? -ne 0 ]]; then

185

Page 191: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

errecho "ERROR: AWS reports s3api delete-bucket failed.\n$RESPONSE" return 1 fi}

Test-Bucket-Operations.sh

Il file di script della shell test-bucket-operations.sh illustra come chiamare le funzioniacquisendo il file bucket-operations.sh e chiamando ciascuna delle funzioni. Dopo averrichiamato le funzioni , lo script di test rimuove tutte le risorse create.

Code

source ./awsdocs_general.shsource ./bucket_operations.sh

function usage { echo "This script tests Amazon S3 bucket operations in the AWS CLI." echo "It creates a randomly named bucket, copies files to it, then" echo "deletes the files and the bucket." echo "" echo "To pause the script between steps so you can see the results in the" echo "AWS Management Console, include the parameter -i." echo "" echo "IMPORTANT: Running this script creates resources in your Amazon" echo " account that can incur charges. It is your responsibility to" echo " ensure that no resources are left in your account after the script" echo " completes. If an error occurs during the operation of the script," echo " then resources can remain that you might need to delete manaully."}

# Set default values. INTERACTIVE=false VERBOSE=false

# Retrieve the calling parameters while getopts "ivh" OPTION; do case "${OPTION}" in i) INTERACTIVE=true;VERBOSE=true; iecho;; v) VERBOSE=true;; h) usage; return 0;; \?) echo "Invalid parameter"; usage; return 1;; esac done

if [ "$INTERACTIVE" == "true" ]; then iecho "Tests running in interactive mode."; fiif [ "$VERBOSE" == "true" ]; then iecho "Tests running in verbose mode."; fi

iecho "***************SETUP STEPS******************"BUCKETNAME=$(generate_random_name s3test)REGION="us-west-2"FILENAME1=$(generate_random_name s3testfile)FILENAME2=$(generate_random_name s3testfile)

iecho "BUCKETNAME=$BUCKETNAME"iecho "REGION=$REGION"iecho "FILENAME1=$FILENAME1"iecho "FILENAME2=$FILENAME2"

iecho "**************END OF STEPS******************"

186

Page 192: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

run_test "1. Creating bucket with missing bucket_name" \ "create_bucket -r $REGION" \ 1 \ "ERROR: You must provide a bucket name" \

run_test "2. Creating bucket with missing region_name" \ "create_bucket -b $BUCKETNAME" \ 1 \ "ERROR: You must provide an AWS Region code"

run_test "3. Creating bucket with valid parameters" \ "create_bucket -r $REGION -b $BUCKETNAME" \ 0

run_test "4. Creating bucket with duplicate name and region" \ "create_bucket -r $REGION -b $BUCKETNAME" \ 1 \ "ERROR: A bucket with that name already exists"

run_test "5. Copying local file (copy of this script) to bucket" \ "copy_file_to_bucket $BUCKETNAME ./$0 $FILENAME1" \ 0

run_test "6. Duplicating existing file in bucket" \ "copy_item_in_bucket $BUCKETNAME $FILENAME1 $FILENAME2" \ 0

run_test "7. Listing contents of bucket" \ "list_items_in_bucket $BUCKETNAME" \ 0

run_test "8. Deleting first file from bucket" \ "delete_item_in_bucket $BUCKETNAME $FILENAME1" \ 0

run_test "9. Deleting second file from bucket" \ "delete_item_in_bucket $BUCKETNAME $FILENAME2" \ 0

run_test "10. Deleting bucket" \ "delete_bucket $BUCKETNAME" \ 0

echo "Tests completed successfully."

awsdocs-general.sh

Il file di script awsdocs-general.sh contiene funzioni generiche utilizzate in esempi di codiceavanzati per AWS CLI.

Code

# Set global defaults:VERBOSE=false

################################################################################ function run_test## This function is used to perform a command and compare its output to both# the expected error code and the expected output string. If there isn't a # match, then the function invokes the test_failed function.###############################################################################

187

Page 193: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

function run_test { local DESCRIPTION COMMAND EXPECTED_ERR_CODE EXPECTED_OUTPUT RESPONSE DESCRIPTION="$1" COMMAND="$2" EXPECTED_ERR_CODE="$3" if [[ -z "$4" ]]; then EXPECTED_OUTPUT="$4"; else EXPECTED_OUTPUT=""; fi iecho -n "Running test: $DESCRIPTION..." RESPONSE="$($COMMAND)" ERR="${?}"

# Check to see if we got the expected error code. if [[ "$EXPECTED_ERR_CODE" -ne "$ERR" ]]; then test_failed "The test \"$DESCRIPTION\" returned an unexpected error code: $ERR" fi

#now check the error message, if we provided other than "". if [[ -n "$EXPECTED_OUTPUT" ]]; then MATCH=$(echo "$RESPONSE" | grep "$EXPECTED_OUTPUT") # If there was no match (it's an empty string), then fail. if [[ -z "$MATCH" ]]; then test_failed "The test \"$DESCRIPTION\" returned an unexpected output: $RESPONSE" fi fi iecho "OK" ipause}

################################################################################ function test_failed## This function is used to terminate a failed test and to warn the customer# about possible undeleted resources that could incur costs to their account.###############################################################################

function test_failed { errecho "" errecho "===TEST FAILED===" errecho "$@" errecho "" errecho " One or more of the tests failed to complete successfully. This means that any" errecho " tests after the one that failed test didn't run and might have left resources" errecho " still active in your account." errecho "" errecho "IMPORTANT:" errecho " Resources created by this script can incur charges to your AWS account. If the" errecho " script did not complete successfully, then you must review and manually delete" errecho " any resources created by this script that were not automatically removed." errecho "" exit 1 }

################################################################################ function errecho## This function outputs everything sent to it to STDERR (standard error output).###############################################################################

188

Page 194: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEsempio di scripting del ciclo di vita del bucket (s3api)

function errecho { printf "%s\n" "$*" 2>&1}

################################################################################ function iecho## This function enables the script to display the specified text only if # the global variable $VERBOSE is set to true.###############################################################################function iecho { if [[ $VERBOSE == true ]]; then echo "$@" fi}

################################################################################ function ipause## This function enables the script to pause after each command if interactive# mode is set (by including -i on the script invocation command).###############################################################################function ipause { if [[ $INTERACTIVE == true ]]; then read -r -p "Press ENTER to continue..." fi}

# Initialize the shell's RANDOM variableRANDOM=$$################################################################################ function generate_random_name## This function generates a random file name with using the specified root# followed by 4 groups that each have 4 digits.# The default root name is "test"function generate_random_name {

ROOTNAME="test" if [[ -n $1 ]]; then ROOTNAME=$1 fi

# Initialize the filename variable FILENAME="$ROOTNAME" # Configure random number generator to issue numbers between 1000 and 9999, inclusive DIFF=$((9999-1000+1))

for _ in {1..4} do rnd=$(($((RANDOM%DIFF))+X)) # make sure that the number is 4 digits long while [ "${#rnd}" -lt 4 ]; do rnd="0$rnd"; done FILENAME+="-$rnd" done echo $FILENAME}

ReferencesRiferimento AWS CLI:

• aws s3api• aws s3api create-bucket

189

Page 195: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteAmazon SNS

• aws s3api copy-object• aws s3api, bucket di eliminazione• aws s3api delete-object• aws s3api head-bucket• aws s3api list-objects (aws s3api list-objects)• put-object aws s3api

Altro riferimento:

• Utilizzo dei bucket Amazon S3 nellaGuida per lo sviluppatore di Amazon Simple Storage Service• Utilizzo degli oggetti Amazon S3 inGuida per lo sviluppatore di Amazon Simple Storage Service• Per visualizzare e contribuire a esempi di codice AWS SDK e AWS CLI, consulta il repository degli

esempi di codice AWS in .GitHub

Utilizzo di Amazon SNS con l'AWS CLIPuoi accedere alle caratteristiche di Amazon Simple Notification Service (Amazon SNS) utilizzando AWSCommand Line Interface (AWS CLI). Per elencare i comandi dell'AWS CLI per Amazon SNS, utilizza ilcomando seguente.

aws sns help

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Questo argomento mostra esempi di comandi dell'interfaccia a riga di comando per eseguire operazionicomuni per Amazon SNS.

Argomenti• Creazione di un argomento (p. 190)• Sottoscrizione a un argomento (p. 190)• Pubblicazione in un argomento (p. 191)• Annullamento della sottoscrizione a un argomento (p. 191)• Eliminazione di un argomento (p. 192)

Creazione di un argomentoPer creare un argomento, utilizza il comando create-topic e specifica il nome da assegnareall'argomento.

$ aws sns create-topic --name my-topic{ "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic"}

Prendi nota del valore TopicArn della risposta, che utilizzerai in seguito per pubblicare un messaggio.

Sottoscrizione a un argomentoPer sottoscrivere un argomento, utilizza il comando subscribe.

190

Page 196: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePubblicazione in un argomento

L'esempio seguente specifica il protocollo email e un indirizzo e-mail per notification-endpoint.

$ aws sns subscribe --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic --protocol email --notification-endpoint [email protected]{ "SubscriptionArn": "pending confirmation"}

AWS invia subito un'e-mail di conferma all'indirizzo specificato nel comando subscribe. Il testo dell'e-mailè il seguente.

You have chosen to subscribe to the topic:arn:aws:sns:us-west-2:123456789012:my-topicTo confirm this subscription, click or visit the following link (If this was in error no action is necessary):Confirm subscription

Quando il destinatario fa clic sul collegamento Confirm subscription (Conferma sottoscrizione), il browserdel destinatario visualizza un messaggio di notifica con informazioni simili alle seguenti.

Subscription confirmed!

You have subscribed [email protected] to the topic:my-topic.

Your subscription's id is:arn:aws:sns:us-west-2:123456789012:my-topic:1328f057-de93-4c15-512e-8bb22EXAMPLE

If it was not your intention to subscribe, click here to unsubscribe.

Pubblicazione in un argomentoPer inviare un messaggio a tutti i sottoscrittori di un argomento, utilizza il comando publish.

L'esempio seguente invia il messaggio "Hello World!" a tutti i sottoscrittori dell'argomento specificato.

$ aws sns publish --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic --message "Hello World!"{ "MessageId": "4e41661d-5eec-5ddf-8dab-2c867EXAMPLE"}

In questo esempio, AWS invia un messaggio e-mail con il testo "Hello World!" Da [email protected] .

Annullamento della sottoscrizione a un argomentoPer annullare la sottoscrizione a un argomento e interrompere la ricezione dei messaggi pubblicatinell'argomento, utilizza il comando unsubscribe e specifica l'ARN dell'argomento di cui si desideraannullare la sottoscrizione.

$ aws sns unsubscribe --subscription-arn arn:aws:sns:us-west-2:123456789012:my-topic:1328f057-de93-4c15-512e-8bb22EXAMPLE

Per verificare il corretto annullamento della sottoscrizione, utilizza il comando list-subscriptions perconfermare che l'ARN non appaia più nell'elenco.

191

Page 197: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteEliminazione di un argomento

$ aws sns list-subscriptions

Eliminazione di un argomentoPer eliminare un argomento, esegui il comando delete-topic.

$ aws sns delete-topic --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic

Per verificare che AWS abbia eliminato correttamente l'argomento, utilizza il comando list-topics perconfermare che l'argomento non appaia più nell'elenco.

$ aws sns list-topics

Utilizzo di Amazon SWF con l'AWS CLIPuoi accedere alle caratteristiche di Amazon Simple Workflow Service (Amazon SWF) utilizzando AWSCommand Line Interface (AWS CLI).

Per elencare i comandi dell'AWS CLI per Amazon SWF, utilizza il comando seguente.

aws swf help

Prima di eseguire qualsiasi comando, imposta le tue credenziali di default. Per ulteriori informazioni, vediConfigurazione di AWS CLI (p. 44).

Negli argomenti seguenti vengono illustrati esempi di comandi della CLI che eseguono attività comuni perAmazon SWF.

Argomenti• Elenco dei comandi Amazon SWF per categoria (p. 192)• Utilizzo dei domini Amazon SWF con AWS CLI (p. 195)

Elenco dei comandi Amazon SWF per categoriaÈ possibile utilizzare il AWS Command Line Interface (AWS CLI) per creare, visualizzare e gestire i flussi dilavoro in Amazon Simple Workflow Service (Amazon SWF).

Questa sezione elenca gli argomenti di riferimento per Amazon SWF comandi nella AWS CLI, raggruppatoper categoria funzionale.

Per un alfabetico elenco comandi, vedere la Amazon SWF sezione del AWS CLI Command Reference,oppure utilizzare il comando seguente.

$ aws swf help

Puoi anche ottenere assistenza per un singolo comando, inserendo la direttiva help dopo il nome delcomando. Di seguito viene riportato un esempio .

$ aws swf register-domain help

Argomenti

192

Page 198: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteElenco di Amazon SWF Comandi

• Comandi correlati alle attività (p. 193)• Comandi correlati ai decisori (p. 193)• Comandi correlati alle esecuzioni dei flussi di lavoro (p. 193)• Comandi correlati all'amministrazione (p. 193)• Comandi di visibilità (p. 194)

Comandi correlati alle attivitàI lavoratori che si occupano delle attività usano poll-for-activity-task per ricevere nuovi task.Dopo che un lavoratore riceve un'attività di attività da Amazon SWF, esegue l'attività e risponde utilizzandorespond-activity-task-completed se ha successo o respond-activity-task-failed se nonè riuscito.

Di seguito sono elencati i comandi che vengono eseguiti dai lavoratori che si occupano delle attività:

• poll-for-activity-task• respond-activity-task-completed• respond-activity-task-failed• respond-activity-task-canceled• record-activity-task-heartbeat

Comandi correlati ai decisoriI decisori usano poll-for-decision-task per ottenere i task di decisione. Dopo aver ricevuto untask da Amazon SWF, il decisore esamina la cronologia di esecuzione del flusso di lavoro e decide comeprocedere. Chiama respond-decision-task-completed per completare il task di decisione e proponezero o più decisioni successive.

Di seguito sono elencati i comandi che vengono eseguiti dai decisori:

• poll-for-decision-task• respond-decision-task-completed

Comandi correlati alle esecuzioni dei flussi di lavoroI comandi seguenti agiscono sull'esecuzione di un flusso di lavoro:

• request-cancel-workflow-execution• start-workflow-execution• signal-workflow-execution• terminate-workflow-execution

Comandi correlati all'amministrazioneAnche se è possibile eseguire attività amministrative dalla console Amazon SWF, si possono utilizzarei comandi inclusi in questa sezione per automatizzare le funzioni oppure creare strumenti amministrativipersonali.

Gestione delle attività

• register-activity-type

193

Page 199: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteElenco di Amazon SWF Comandi

• deprecate-activity-type

Gestione dei flussi di lavoro

• register-workflow-type• deprecate-workflow-type

Gestione dei domini

• register-domain• deprecate-domain

Per ulteriori informazioni ed esempi di questi comandi di gestione dei domini, vedi Utilizzo dei dominiAmazon SWF con AWS CLI (p. 195).

Gestione dell'esecuzione dei flussi di lavoro

• request-cancel-workflow-execution• terminate-workflow-execution

Comandi di visibilitàAnche se è possibile eseguire azioni di visibilità dalla console Amazon SWF, si possono utilizzare icomandi inclusi in questa sezione per creare una console o strumenti amministrativi personali.

Visibilità delle attività

• list-activity-types• describe-activity-type

Visibilità dei flussi di lavoro

• list-workflow-types• describe-workflow-type

Visibilità dell'esecuzione dei flussi di lavoro

• describe-workflow-execution• list-open-workflow-executions• list-closed-workflow-executions• count-open-workflow-executions• count-closed-workflow-executions• get-workflow-execution-history

Visibilità dei domini

• list-domains• describe-domain

194

Page 200: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo dei domini Amazon SWF

Per ulteriori informazioni ed esempi di questi comandi di visibilità dei domini, vedi Utilizzo dei dominiAmazon SWF con AWS CLI (p. 195).

Visibilità degli elenchi di attività

• count-pending-activity-tasks• count-pending-decision-tasks

Utilizzo dei domini Amazon SWF con AWS CLIPuoi utilizzare AWS Command Line Interface (AWS CLI) per gestire i domini Amazon Simple WorkflowService (Amazon SWF).

Argomenti• Elencazione dei domini (p. 195)• Ottenimento di informazioni su un dominio (p. 195)• Registrazione di un dominio (p. 196)• Rendere obsoleto un dominio (p. 196)

Elencazione dei dominiPer elencare i domini Amazon SWF che hai registrato per il tuo account AWS, puoi utilizzare swf list-domains. È necessario includere --registration-status e specificare REGISTERED o DEPRECATED.

Di seguito è riportato un esempio minimo.

$ aws swf list-domains --registration-status REGISTERED{ "domainInfos": [ { "status": "REGISTERED", "name": "ExampleDomain" }, { "status": "REGISTERED", "name": "mytest" } ]}

Note

Per un esempio di utilizzo di DEPRECATED, consulta Rendere obsoleto un dominio (p. 196).

Per ulteriori informazioni, vedere list-domains nella AWS CLI Command Reference.

Ottenimento di informazioni su un dominioPer ottenere informazioni dettagliate su un determinato dominio, utilizza swf describe-domain.Esiste un parametro obbligatorio, --name, che assume il nome del dominio su cui si desidera ottenereinformazioni, come mostrato nell'esempio seguente.

$ aws swf describe-domain --name ExampleDomain{ "domainInfo": {

195

Page 201: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo dei domini Amazon SWF

"status": "REGISTERED", "name": "ExampleDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "1" }}

Per ulteriori informazioni, consultare describe-domain nella AWS CLI Command Reference.

Registrazione di un dominioPer registrare nuovi domini, utilizza swf register-domain.

Ci sono due parametri obbligatori: --name e --workflow-execution-retention-period-in-days. Il parametro --name accetta il nome di dominio da registrare. Il parametro --workflow-execution-retention-period-in-days richiede un numero intero per specificare il numero di giorniper conservare i dati di esecuzione del flusso di lavoro in questo dominio, fino a un periodo massimo di 90giorni (per ulteriori informazioni, consultare le domande frequenti Amazon SWF).

Se specifichi zero (0) per questo valore, il periodo di conservazione viene impostato automaticamente sulladurata massima. In caso contrario, i dati di esecuzione dei flussi di lavoro non vengono conservati una voltasuperato il numero di giorni specificato. L'esempio seguente mostra come registrare un nuovo dominio.

$ aws swf register-domain --name MyNeatNewDomain --workflow-execution-retention-period-in-days 0

Il comando non restituisce alcun output, ma è possibile utilizzare swf list-domains o swf describe-domain per visualizzare il nuovo dominio, come illustrato nell'esempio seguente.

$ aws swf describe-domain --name MyNeatNewDomain{ "domainInfo": { "status": "REGISTERED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" }}

Per ulteriori informazioni, consultare register-domain nella AWS CLI Command Reference.

Rendere obsoleto un dominioPer impostare un dominio come obsoleto (è comunque possibile visualizzarlo, ma non è possibile crearenuove esecuzioni di flusso di lavoro o registrarvi tipi), utilizzare swf deprecate-domain. Ha un soloparametro obbligatorio, --name, che prende il nome del dominio da dichiarare obsoleto.

$ aws swf deprecate-domain --name MyNeatNewDomain

Come per register-domain, non viene restituito alcun output. Se tuttavia utilizzi list-domains pervisualizzare i domini registrati, vedrai che il dominio non compare più tra questi. È possibile utilizzare anche--registration-status DEPRECATED.

$ aws swf list-domains --registration-status DEPRECATED{

196

Page 202: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteUtilizzo dei domini Amazon SWF

"domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ]}

Per ulteriori informazioni, consultare deprecate-domain nella AWS CLI Command Reference .

197

Page 203: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteProtezione dei dati

Sicurezza in AWS Command LineInterface

Per AWS, la sicurezza della cloud ha la massima priorità. In quanto cliente AWS, puoi trarre vantaggio daun'architettura di data center e di rete progettata per soddisfare i requisiti delle aziende più esigenti a livellodi sicurezza.

La sicurezza è una responsabilità condivisa tra AWS e l'utente. Il modello di responsabilità condivisadescrive questo modello come sicurezza del cloud e sicurezza nel cloud:

• Sicurezza del cloud: AWS è responsabile della protezione dell'infrastruttura che esegue i servizi AWSnel cloud AWS. AWS fornisce inoltre i servizi che è possibile utilizzare in modo sicuro. I revisori di terzeparti testano regolarmente e verificano l'efficacia della nostra sicurezza nell'ambito dei Programmidi conformità AWS. Per ulteriori informazioni sui programmi di conformità che si applicano a AWSCommand Line Interface, consulta Servizi AWS coperti dal programma di complianceServizi AWS copertidal programma di compliance

• Sicurezza nel cloud – La tua responsabilità è determinata dal servizio AWS che utilizzi. L'utente è ancheresponsabile per altri fattori, tra cui la riservatezza dei dati, i requisiti dell'azienda e leggi e normativeapplicabili.

Questa documentazione aiuta a comprendere come applicare il modello di responsabilità condivisa quandosi usa AWS Command Line Interface (AWS CLI). I seguenti argomenti illustrano come configurare AWSCLI per soddisfare gli obiettivi di sicurezza e conformità. Viene illustrato anche come utilizzare l'AWS CLIper aiutare a monitorare e proteggere le risorse AWS.

Argomenti• Protezione dei dati in AWS CLI (p. 198)• Identity and Access Management per AWS CLI (p. 199)• Convalida della conformità per AWS CLI (p. 200)• Applicazione di una versione minima di TLS 1.2 (p. 200)

Protezione dei dati in AWS CLIIl AWS modello di responsabilità condivisa si applica alla protezione dei dati in AWS Command LineInterface. Come descritto in questo modello, AWS è responsabile della protezione dell'infrastruttura globaleche esegue tutto l’AWS Cloud. L'utente è responsabile di mantenere il controllo sui contenuti ospitati suquesta infrastruttura. Questo contenuto include la configurazione della protezione e le attività di gestioneper i servizi AWS utilizzati. Per ulteriori informazioni sulla privacy dei dati, vedere le FAQ sulla privacy deidati. Per ulteriori informazioni sulla protezione dei dati, consulta il post relativo al modello di responsabilitàcondivisa AWS e GDPR in AWS Security Blog.

Per garantire la protezione dei dati, si consiglia di proteggere le credenziali dell'account AWS e diconfigurare singoli account utente con AWS Identity and Access Management (IAM). In questo modo, aogni utente vengono solo assegnate le autorizzazioni necessarie per svolgere il suo lavoro. Ti consigliamoinoltre di proteggere i dati nei seguenti modi:

• Utilizza l'autenticazione a più fattori (MFA) con ogni account.

198

Page 204: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteCrittografia dei dati

• Utilizza SSL/TLS per comunicare con risorse AWS. È consigliabile TLS 1.2 o versioni successive.• Configura la registrazione dell'API e delle attività degli utenti con AWS CloudTrail.• Utilizza le soluzioni di crittografia AWS, insieme a tutti i controlli di sicurezza predefiniti all'interno dei

servizi AWS.• Utilizza servizi di sicurezza gestiti avanzati, ad esempio Amazon Macie, che aiutano a scoprire e

proteggere i dati personali archiviati in Amazon S3.• Se si richiedono moduli crittografici convalidati FIPS 140-2 quando si accede ad AWS tramite

un'interfaccia a riga di comando o un'API, utilizzare un endpoint FIPS. Per ulteriori informazioni sugliendpoint FIPS disponibili, consulta il Federal Information Processing Standard (FIPS) 140-2.

Ti consigliamo di non inserire mai informazioni identificative sensibili, ad esempio i numeri di account deiclienti, in campi a formato libero, ad esempio un campo Name (Nome). Questo include il lavoro con AWSCLI o altri servizi AWS utilizzando la console, l’API, AWS CLI o gli SDK AWS. Gli eventuali dati immessi inAWS CLI o altri servizi potrebbero essere prelevati per l'inserimento nei log di diagnostica. Quando fornisciun URL a un server esterno, non includere informazioni sulle credenziali nell'URL per convalidare la tuarichiesta a tale server.

Crittografia dei datiUna caratteristica fondamentale di qualsiasi servizio sicuro è che le informazioni vengano crittografatequando non sono utilizzate attivamente.

Crittografia dei dati inattiviAWS CLI non memorizza dati del cliente diversi dalle credenziali di cui ha bisogno per interagire con iservizi AWS per conto dell'utente.

Se utilizzi AWS CLI per richiamare un servizio AWS che trasmette i dati dei clienti al computer locale perl'archiviazione, fai riferimento al capitolo “Sicurezza e conformità” della Guida per l'utente di tale servizio perinformazioni su come tali dati vengono archiviati, protetti e crittografati.

Crittografia in transitoPer impostazione predefinita, tutti i dati trasmessi dal computer client che esegue gli endpoint di AWS CLI edel servizio AWS vengono crittografati inviando ogni elemento tramite una connessione HTTPS/TLS.

Non devi fare nulla per abilitare l'uso di HTTPS/TLS. È sempre abilitato a meno che non si disattivaesplicitamente per un singolo comando utilizzando l'opzione della riga di comando --no-verify-ssl.

Identity and Access Management per AWS CLIL'AWS Command Line Interface (AWS CLI) utilizza gli stessi utenti e ruoli per accedere alle risorse AWSe ai relativi servizi. Le policy che concedono le autorizzazioni sono le stesse perché AWS CLI richiamale stesse operazioni API utilizzate dalla console di servizio. Per ulteriori informazioni, vedere la sezione"Identity and Access Management" nel capitolo "Sicurezza" del servizio AWS che si desidera utilizzare.

L'unica differenza principale è il modo in cui si esegue l'autenticazione quando si utilizza un utente IAMstandard e credenziali a lungo termine. Sebbene un utente IAM richieda una password per accedere allaconsole di un servizio AWS, lo stesso utente IAM richiede una coppia di chiavi di accesso per eseguire lestesse operazioni mediante l'AWS CLI. Tutte le altre credenziali a breve termine vengono utilizzate nellostesso modo in cui vengono utilizzate con la console.

Le credenziali utilizzate dall'AWS CLI sono memorizzate in file di testo normale e non sono crittografate.

199

Page 205: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConvalida della conformità

• Il file $HOME/.aws/credentials memorizza le credenziali a lungo termine necessarie per accederealle risorse AWS. Per recuperare l'ID chiave di accesso e la chiave di accesso segreta

• Le credenziali a breve termine, ad esempio quelle per i ruoli assunti o per i servizi AWS Single Sign-On,vengono archiviate rispettivamente nelle cartelle $HOME/.aws/cli/cache e $HOME/.aws/sso/cache.

Mitigazione del rischio

• Si consiglia vivamente di configurare le autorizzazioni del file system per la cartella $HOME/.aws e per lerelative cartelle e file figlio per limitare l'accesso solo agli utenti autorizzati.

• Utilizzare i ruoli con credenziali temporanee laddove possibile per ridurre l'opportunità di danni in casodi compromissione delle credenziali. Utilizzare le credenziali a lungo termine solo per richiedere eaggiornare le credenziali del ruolo a breve termine.

Convalida della conformità per AWS CLIRevisori di terze parti valutano la sicurezza e la conformità di AWS come parte di più programmi diconformità di AWS. L'utilizzo di AWS Command Line Interface (AWS CLI) per accedere a un servizio nonmodifica la conformità di tale servizio.

Per un elenco dei servizi AWS coperti da programmi di conformità specifici, consulta Servizi AWS copertidal programma di compliance. Per informazioni generali, consulta Programmi per la conformità di AWS.

Puoi scaricare i report di audit di terze parti utilizzando AWS Artifact. Per ulteriori informazioni, consultaDownload dei rapporti in AWS Artifact.

La responsabilità di conformità quando utilizzi AWS CLI è determinata dalla riservatezza dei dati,dagli obiettivi di conformità dell'azienda e dalle normative vigenti. AWS fornisce le risorse seguenti persemplificare la conformità:

• Guide Quick Start Sicurezza e compliance – Queste guide alla distribuzione illustrano considerazionirelative all'architettura e forniscono procedure per la distribuzione di ambienti di base incentrati sullasicurezza e sulla conformità su AWS.

• Whitepaper Architecting for HIPAA Security and Compliance – Questo whitepaper descrive in che modole aziende possono utilizzare AWS per creare applicazioni conformi ai requisiti HIPAA.

• Risorse per la conformità AWS – Questa raccolta di cartelle di lavoro e guide potrebbe essere utile perl'azienda e la posizione.

• Valutazione delle risorse con le regole nella Guida per sviluppatori di AWS Config: il servizio AWSConfig valuta il livello di conformità delle configurazioni delle risorse con pratiche interne, linee guida eregolamenti industriali.

• AWS Security Hub – questo servizio AWS fornisce una visione completa dello stato di sicurezzaall'interno di AWS che consente di verificare la conformità con standard industriali di sicurezza e bestpractice.

Applicazione di una versione minima di TLS 1.2Per aumentare la sicurezza durante la comunicazione con i servizi AWS, è necessario configurare AWSCommand Line Interface (AWS CLI) per l'utilizzo di TLS 1.2 o versioni successive. Quando si utilizza l'AWSCLI, Python viene utilizzato per impostare la versione TLS.

In base alla versione dell'AWS CLI, la procedura eseguita per applicare un TLS con versione minima 1.2varia.

200

Page 206: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione della AWS CLI versione 1 per

l'applicazione di una versione minima di TLS 1.2 Minimo

Argomenti• Configurazione della AWS CLI versione 1 per l'applicazione di una versione minima di TLS 1.2

Minimo (p. 201)• Configurazione della AWS CLI versione 2 per l'applicazione di una versione minima di TLS

1.2 (p. 203)

Configurazione della AWS CLI versione 1 perl'applicazione di una versione minima di TLS 1.2MinimoPer garantire che AWS CLI versione 1 non utilizzi una versione TLS precedente a TLS 1.2, potrebbeessere necessario ricompilare OpenSSL per applicare questo minimo e quindi ricompilare Python perutilizzare il nuovo OpenSSL creato.

Determinare i protocolli attualmente supportatiInnanzitutto, crea un certificato autofirmato da utilizzare per il server di test e l'SDK Python utilizzandoOpenSSL.

$ openssl req -subj '/CN=localhost' -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365

Quindi avviare un server di test utilizzando OpenSSL.

$ openssl s_server -key key.pem -cert cert.pem -www

In una nuova finestra del terminale, creare un ambiente virtuale e installare Python SDK.

$ python3 -m venv test-envsource test-env/bin/activatepip install botocore

Creare un nuovo script Python denominato check.py che utilizza la libreria HTTP sottostante dell'SDK.

$ import urllib3URL = 'https://localhost:4433/'

http = urllib3.PoolManager( ca_certs='cert.pem', cert_reqs='CERT_REQUIRED',)r = http.request('GET', URL)print(r.data.decode('utf-8'))

Eseguire il nuovo script.

$ python check.py

In questo modo vengono visualizzati i dettagli sulla connessione effettuata. Cerca "Protocol : " nell'output.Se l'output è "TLSv1.2" o versione successiva, l'impostazione predefinita dell'SDK è su TLS v1.2 o versionesuccessiva. Se si tratta di una versione precedente, è necessario ricompilare OpenSSL e ricompilarePython.

201

Page 207: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione della AWS CLI versione 1 per

l'applicazione di una versione minima di TLS 1.2 Minimo

Tuttavia, anche se l'installazione di Python è impostata su TLS v1.2 o versioni successive, è comunquepossibile per Python rinegoziare una versione precedente a TLS v1.2 se il server non supporta TLS v1.2o versioni successive. Per verificare che Python non rinegozi automaticamente su versioni precedenti,riavviare il server di test con quanto segue.

$ openssl s_server -key key.pem -cert cert.pem -no_tls1_3 -no_tls1_2 -www

Se si utilizza una versione precedente di OpenSSL, potrebbe non essere disponibile il flag -no_tls_3.In questo caso, rimuovi il flag perché la versione di OpenSSL che stai utilizzando non supporta TLS v1.3.Eseguire lo script Python.

$ python check.py

Se l'installazione di Python non rinegozia correttamente per le versioni precedenti a TLS 1.2, si dovrebbericevere un errore SSL.

$ urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='localhost', port=4433): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: UNSUPPORTED_PROTOCOL] unsupported protocol (_ssl.c:1108)')))

Se sei in grado di effettuare una connessione, devi ricompilare OpenSSL e Python per disabilitare lanegoziazione dei protocolli precedenti a TLS v1.2.

Compilazione di OpenSSL e PythonPer garantire che l'SDK o AWS CLI non negozi nulla precedente a TLS 1.2, è necessario ricompilareOpenSSL e Python. A tale scopo, copiare il contenuto seguente per creare uno script ed eseguirlo.

#!/usr/bin/env bashset -e

OPENSSL_VERSION="1.1.1d"OPENSSL_PREFIX="/opt/openssl-with-min-tls1_2"PYTHON_VERSION="3.8.1"PYTHON_PREFIX="/opt/python-with-min-tls1_2"

curl -O "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz"tar -xzf "openssl-$OPENSSL_VERSION.tar.gz"cd openssl-$OPENSSL_VERSION./config --prefix=$OPENSSL_PREFIX no-ssl3 no-tls1 no-tls1_1 no-sharedmake > /dev/nullsudo make install_sw > /dev/null

cd /tmpcurl -O "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz"tar -xzf "Python-$PYTHON_VERSION.tgz"cd Python-$PYTHON_VERSION./configure --prefix=$PYTHON_PREFIX --with-openssl=$OPENSSL_PREFIX --disable-shared > /dev/nullmake > /dev/nullsudo make install > /dev/null

In questo modo viene compilata una versione di Python che ha un OpenSSL collegato staticamente chenon negozia automaticamente versioni precedenti a TLS 1.2. Questa operazione installa anche OpenSSLnella directory /opt/openssl-with-min-tls1_2 e installa Python nella directory /opt/python-with-min-tls1_2. Dopo aver eseguito questo script, confermare l'installazione della nuova versione diPython.

202

Page 208: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteConfigurazione della AWS CLI versione 2 per

l'applicazione di una versione minima di TLS 1.2

$ /opt/python-with-min-tls1_2/bin/python3 --version

Questa operazione dovrebbe stampare quanto segue.

$ Python 3.8.1

Per confermare che questa nuova versione di Python non negozi una versione precedente a TLS 1.2,eseguire nuovamente le fasi a partire da Determinare i protocolli attualmente supportati (p. 201)utilizzando la versione di Python appena installata (ovvero /opt/python-with-min-tls1_2/bin/python3).

Configurazione della AWS CLI versione 2 perl'applicazione di una versione minima di TLS 1.2AWS CLI versione 2 utilizza uno script Python interno compilato per utilizzare una versione minima di TLS1.2 quando il servizio con cui sta comunicando la supporta. Non sono necessarie ulteriori fasi per applicarequesta versione minima.

203

Page 209: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerale: Assicurati di eseguire

una versione recente dell'AWS CLI.

Risoluzione degli errori AWS CLIGenerale: Assicurati di eseguire una versionerecente dell'AWS CLI.

Se ricevi un errore che indica che un comando non esiste o che un parametro indicato nelladocumentazione non viene riconosciuto, ti consigliamo di eseguire (dopo aver verificato che non sianopresenti errori di ortografia nel comando) prima l'aggiornamento alla versione più recente dell'AWS CLI. Leversioni aggiornate dell'AWS CLI vengono rilasciate quasi ogni giorno lavorativo. In queste nuove versionidell'AWS CLI vengono introdotti nuovi servizi, caratteristiche e parametri AWS. L'unico modo per ottenerel'accesso a questi nuovi servizi, caratteristiche o parametri è eseguire l'aggiornamento a una versionerilasciata dopo che l'elemento è stato introdotto per la prima volta.

Il modo in cui aggiorni la versione dell'AWS CLI dipende dal modo in cui l'hai installata originariamente.Ad esempio, se è stata installata l'AWS CLI mediante pip, eseguire pip install --upgrade, comedescritto in Installazione e disinstallazione di AWS CLI versione 1 utilizzando pip (p. 30).

Se hai utilizzato uno dei programmi di installazione in bundle, devi rimuovere l'installazione esistente equindi scaricare e installare la versione più recente del programma di installazione in bundle per il tuosistema operativo.

Generale: Utilizza l'opzione --debug.Una delle prime operazioni da eseguire quando l'AWS CLI segnala un errore di non facile comprensioneo restituisce risultati non previsti è ottenere maggiori dettagli sull'errore. A tale scopo, esegui nuovamenteil comando includendo l'opzione --debug alla fine della riga di comando. In questo modo, l'AWS CLIrestituisce i dettagli di ogni fase necessaria per elaborare il comando, invia la richiesta ai server AWS,riceve la risposta ed elabora la risposta nell'output visualizzato. I dettagli disponibili nell'output possonoaiutarti a determinare in quale fase si è verificato l'errore e a ottenere il contesto dell'elemento che lo hagenerato.

Puoi inviare l'output in un file di testo per acquisirlo ed esaminarlo in un secondo momento o per inviarlo alsupporto AWS quando richiesto.

Ecco un esempio di un comando eseguito con e senza l'opzione --debug.

$ aws iam list-groups --profile MyTestProfile{ "Groups": [ { "Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA0123456789EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ]}

Quando includi l'opzione --debug, i dettagli includono (tra le altre cose):

204

Page 210: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerale: Utilizza l'opzione --debug.

• Ricerca delle credenziali• Analisi dei parametri specificati• Costruzione della richiesta inviata ai server AWS• Il contenuto della richiesta inviata ad AWS• Il contenuto della risposta non elaborata• L'output formattato

$ aws iam list-groups --profile MyTestProfile --debug2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.2052019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['iam', 'list-groups', '--debug']2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_scalar_parsers at 0x7fdf173161e0>2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function register_uri_param_handler at 0x7fdf17dec400>2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_assume_role_provider_cache at 0x7fdf17da9378>2019-08-12 12:36:18,307 - MainThread - botocore.credentials - DEBUG - Skipping environment variable credential check because profile name was explicitly set.2019-08-12 12:36:18,307 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function attach_history_handler at 0x7fdf173ed9d8>2019-08-12 12:36:18,308 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/service-2.json2019-08-12 12:36:18,317 - MainThread - botocore.hooks - DEBUG - Event building-command-table.iam: calling handler <function add_waiters at 0x7fdf1731a840>2019-08-12 12:36:18,320 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/waiters-2.json2019-08-12 12:36:18,321 - MainThread - awscli.clidriver - DEBUG - OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>)])2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_streaming_output_arg at 0x7fdf17316510>2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_cli_input_json at 0x7fdf17da9d90>2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function unify_paging_params at 0x7fdf17328048>2019-08-12 12:36:18,326 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/paginators-1.json2019-08-12 12:36:18,326 - MainThread - awscli.customizations.paginate - DEBUG - Modifying paging parameters for operation: ListGroups2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_generate_skeleton at 0x7fdf1737eae8>2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method OverrideRequiredArgsArgument.override_required_args of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>>2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.override_required_args of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>>2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event operation-args-parsed.iam.list-groups: calling handler functools.partial(<function check_should_enable_pagination at 0x7fdf17328158>, ['marker', 'max-items'], {'max-items': <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>}, OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c58d0>), ('cli-input-json', <awscli.customizations.cliinputjson.CliInputJSONArgument object at

205

Page 211: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerale: Utilizza l'opzione --debug.

0x7fdf171b0a58>), ('starting-token', <awscli.customizations.paginate.PageArgument object at 0x7fdf171b0a20>), ('page-size', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c5828>), ('generate-cli-skeleton', <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>)]))2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.path-prefix: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.marker: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.max-items: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.cli-input-json: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.starting-token: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.page-size: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.generate-cli-skeleton: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method CliInputJSONArgument.add_to_call_parameters of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>>2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.generate_json_skeleton of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>>2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role-with-web-identity2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file2019-08-12 12:36:18,329 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials2019-08-12 12:36:18,330 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/endpoints.json2019-08-12 12:36:18,334 - MainThread - botocore.hooks - DEBUG - Event choose-service-name: calling handler <function handle_service_name_alias at 0x7fdf1898eb70>2019-08-12 12:36:18,337 - MainThread - botocore.hooks - DEBUG - Event creating-client-class.iam: calling handler <function add_generate_presigned_url at 0x7fdf18a028c8>2019-08-12 12:36:18,337 - MainThread - botocore.regions - DEBUG - Using partition endpoint for iam, us-west-2: aws-global2019-08-12 12:36:18,337 - MainThread - botocore.args - DEBUG - The s3 config key is not a dictionary type, ignoring its value of: None2019-08-12 12:36:18,340 - MainThread - botocore.endpoint - DEBUG - Setting iam timeout as (60, 60)2019-08-12 12:36:18,341 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/_retry.json2019-08-12 12:36:18,341 - MainThread - botocore.client - DEBUG - Registering retry handlers for service: iam2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-parameter-build.iam.ListGroups: calling handler <function generate_idempotent_uuid at 0x7fdf189b10d0>2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-call.iam.ListGroups: calling handler <function inject_api_version_header_if_needed at 0x7fdf189b2a60>2019-08-12 12:36:18,343 - MainThread - botocore.endpoint - DEBUG - Making request for OperationModel(name=ListGroups) with params: {'url_path': '/',

206

Page 212: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGenerale: Utilizza l'opzione --debug.

'query_string': '', 'method': 'POST', 'headers': {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': 'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205'}, 'body': {'Action': 'ListGroups', 'Version': '2010-05-08'}, 'url': 'https://iam.amazonaws.com/', 'context': {'client_region': 'aws-global', 'client_config': <botocore.config.Config object at 0x7fdf16e9a4a8>, 'has_streaming_input': False, 'auth_type': None}}2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event request-created.iam.ListGroups: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7fdf16e9a470>>2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event choose-signer.iam.ListGroups: calling handler <function set_operation_specific_signer at 0x7fdf18996f28>2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - Calculating signature using v4 auth.2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - CanonicalRequest:POST/

content-type:application/x-www-form-urlencoded; charset=utf-8host:iam.amazonaws.comx-amz-date:20190812T193618Z

content-type;host;x-amz-date5f776d91EXAMPLE9b8cb5eb5d6d4a787a33ae41c8cd6eEXAMPLEca69080e1e1f2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - StringToSign:AWS4-HMAC-SHA25620190812T193618Z20190812/us-east-1/iam/aws4_requestab7e367eEXAMPLE2769f178ea509978cf8bfa054874b3EXAMPLE8d043fab6cc92019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - Signature:d85a0EXAMPLEb40164f2f539cdc76d4f294fe822EXAMPLE18ad1ddf58a1a3ce72019-08-12 12:36:18,344 - MainThread - botocore.endpoint - DEBUG - Sending http request: <AWSPreparedRequest stream_output=False, method=POST, url=https://iam.amazonaws.com/, headers={'Content-Type': b'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': b'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205', 'X-Amz-Date': b'20190812T193618Z', 'Authorization': b'AWS4-HMAC-SHA256 Credential=AKIA01234567890EXAMPLE-east-1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=d85a07692aceb401EXAMPLEa1b18ad1ddf58a1a3ce7EXAMPLE', 'Content-Length': '36'}>2019-08-12 12:36:18,344 - MainThread - urllib3.util.retry - DEBUG - Converted retries value: False -> Retry(total=False, connect=None, read=None, redirect=0, status=None)2019-08-12 12:36:18,344 - MainThread - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): iam.amazonaws.com:4432019-08-12 12:36:18,664 - MainThread - urllib3.connectionpool - DEBUG - https://iam.amazonaws.com:443 "POST / HTTP/1.1" 200 5702019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-amzn-RequestId': '74c11606-bd38-11e9-9c82-559da0adb349', 'Content-Type': 'text/xml', 'Content-Length': '570', 'Date': 'Mon, 12 Aug 2019 19:36:18 GMT'}2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response body:b'<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">\n <ListGroupsResult>\n <IsTruncated>false</IsTruncated>\n <Groups>\n <member>\n <Path>/</Path>\n <GroupName>MyTestGroup</GroupName>\n <Arn>arn:aws:iam::123456789012:group/MyTestGroup</Arn>\n <GroupId>AGPA1234567890EXAMPLE</GroupId>\n <CreateDate>2019-08-12T19:34:04Z</CreateDate>\n </member>\n </Groups>\n </ListGroupsResult>\n <ResponseMetadata>\n <RequestId>74c11606-bd38-11e9-9c82-559da0adb349</RequestId>\n </ResponseMetadata>\n</ListGroupsResponse>\n'2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event needs-retry.iam.ListGroups: calling handler <botocore.retryhandler.RetryHandler object at 0x7fdf16e9a780>2019-08-12 12:36:18,665 - MainThread - botocore.retryhandler - DEBUG - No retry needed.2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event after-call.iam.ListGroups: calling handler <function json_decode_policies at 0x7fdf189b1d90>{ "Groups": [ {

207

Page 213: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteViene visualizzato l'errore "command not

found" (Comando non trovato) durante l'esecuzione di aws

"Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA123456789012EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ]}

Viene visualizzato l'errore "command notfound" (Comando non trovato) durante l'esecuzionedi aws

Possibile causa: Il "percorso" del sistema operativonon è stato aggiornato durante l'installazione.Questo errore indica che il sistema operativo non è in grado di trovare il programma dell'AWS CLI.L'installazione potrebbe essere incompleta.

Se utilizzi pip per installare l'AWS CLI, potrebbe essere necessario aggiungere la cartella che contieneil programma aws alla variabile di ambiente PATH del sistema operativo o modificarne la modalità perrenderla eseguibile.

Potrebbe essere necessario aggiungere l'eseguibile aws alla variabile di ambiente PATH del sistemaoperativo in uso. Segui le istruzioni illustrate nella procedura appropriata:

• Windows – Aggiunta dell'eseguibile AWS CLI versione 1 al percorso della riga di comando (p. 41)• macOS – Aggiungere l'eseguibile AWS CLI versione 1 al percorso della riga di comandomacOS (p. 38)• Linux – Aggiunta dell'eseguibile AWS CLI versione 1 al percorso della riga di comando (p. 32)

Vengono visualizzati errori di tipo "accessdenied" (accesso negato)

Possibile causa: Il file di programma AWS CLI nondispone dell'autorizzazione "run".Su Linux o macOS, assicurati che il programma aws disponga delle autorizzazioni di esecuzione perl'utente chiamante. In genere, le autorizzazioni sono impostate su 755.

Per aggiungere l'autorizzazione di esecuzione per l'utente, eseguire il comando seguente, sostituendo~/.local/bin/aws con il percorso al programma sul computer.

$ chmod +x ~/.local/bin/aws

208

Page 214: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePossibile causa: L'identità IAM non dispone

dell'autorizzazione per eseguire l'operazione.

Possibile causa: L'identità IAM non disponedell'autorizzazione per eseguire l'operazione.Quando esegui un comando dell'AWS CLI, le operazioni AWS vengono eseguite per tuo conto utilizzandole credenziali che ti associano a un utente o un ruoloIAM. Le policy collegate a tale utente o ruolo IAMdevono disporre dell'autorizzazione per chiamare le operazioni API corrispondenti ai comandi che eseguicon l'AWS CLI.

La maggior parte dei comandi chiamano una singola operazione con un nome corrispondente al nome delcomando. Tuttavia, comandi personalizzati come aws s3 sync chiamano più APIs. È possibile vederequali APIs un comando chiama utilizzando l'opzione --debug.

Se sei sicuro che l'utente o il ruolo dispongono delle autorizzazioni appropriate assegnate dalla policy,assicurati che il comando dell'AWS CLI utilizzi le credenziali previste. Consulta la sezione successiva sullecredenziali (p. 209) per verificare che le credenziali usate dall'AWS CLI siano quelle previste.

Per informazioni sull'assegnazione di autorizzazioni a utenti e ruoli IAM, consulta Panoramica di Gestionedegli accessi: Autorizzazioni e policy in Guida per l'utente di IAM.

Viene visualizzato un errore di tipo "invalidcredentials" (credenziali non valide)

Possibile causa: sta leggendo le credenziali da unaposizione imprevistaAWS CLIL'AWS CLI potrebbe leggere le credenziali da un percorso diverso rispetto a quello previsto. Puoi eseguireaws configure list per verificare le credenziali utilizzate.

L'esempio seguente mostra come controllare le credenziali utilizzate per il profilo predefinito.

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None Noneaccess_key ****************XYVA shared-credentials-filesecret_key ****************ZAGY shared-credentials-file region us-west-2 config-file ~/.aws/config

L'esempio seguente mostra come controllare le credenziali di un profilo denominato.

$ aws configure list --profile saanvi Name Value Type Location ---- ----- ---- -------- profile saanvi manual --profileaccess_key **************** shared-credentials-filesecret_key **************** shared-credentials-file region us-west-2 config-file ~/.aws/config

209

Page 215: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePossibile causa: L'orologio delcomputer non è sincronizzato.

Possibile causa: L'orologio del computer non èsincronizzato.Se utilizzi credenziali valide, l'orologio potrebbe non essere sincronizzato. In Linux o macOS esegui dateper verificare l'orario.

$ date

Se l'orologio di sistema non viene corretto nel giro di pochi minuti, utilizza ntpd per sincronizzarlo.

$ sudo service ntpd stop$ sudo ntpdate time.nist.gov$ sudo service ntpd start$ ntpstat

In Windows utilizza le opzioni di data e ora nel pannello di controllo per configurare l'orologio di sistema.

Viene visualizzato un errore di tipo "signature doesnot match" (firma non corrispondente)

Quando esegue un comando, l'AWS CLI invia una richiesta crittografata ai server AWS per eseguire leoperazioni del servizio AWS appropriate. Le credenziali (la chiave di accesso e la chiave segreta) vengonousate nella crittografia e consentono ad AWS di autenticare la persona che effettua la richiesta. Ci sonodiversi aspetti che possono interferire con il corretto funzionamento di questo processo, come illustrato diseguito:

Possibile causa: L'orologio non è sincronizzato con iserver AWS.Per proteggersi dagli attacchi di tipo 'replay' (riproduzione), puoi utilizzare l'ora corrente durante il processodi crittografia/decrittografia. Se l'ora del client e quella del server non corrispondono per un intervallosuperiore a quello consentito, il processo può avere esito negativo e la richiesta viene rifiutata. Ciò si puòverificare anche quando esegui un comando in una macchina virtuale il cui orologio non è sincronizzatocon l'orologio del computer host. Una possibile causa è quando la macchina virtuale entra in stato diibernazione e l'intervallo richiesto per la sua riattivazione e la successiva risincronizzazione dell'orologiocon il computer host risulta eccessivo.

In Linux o macOS esegui date per verificare l'orario.

$ date

Se l'orologio di sistema non viene corretto nel giro di pochi minuti, utilizza ntpd per sincronizzarlo.

$ sudo service ntpd stop$ sudo ntpdate time.nist.gov$ sudo service ntpd start$ ntpstat

In Windows utilizza le opzioni di data e ora nel pannello di controllo per configurare l'orologio di sistema.

210

Page 216: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePossibile causa: Il sistema operativo nongestisce correttamente le chiavi segrete

AWS contenenti determinati caratteri speciali.

Possibile causa: Il sistema operativo non gestiscecorrettamente le chiavi segrete AWS contenentideterminati caratteri speciali.Se la chiave segreta AWS include determinati caratteri speciali, ad esempio -, +, / o %, alcune varianti delsistema operativo elaborano la stringa in modo non corretto e causano l'errata interpretazione della stringadella chiave segreta.

Se elabori le chiavi di accesso e le chiavi segrete utilizzando altri strumenti o script, ad esempio strumentiche creano il file delle credenziali su una nuova istanza durante la sua creazione, tali strumenti e scriptpotrebbero gestire i caratteri speciali in modo diverso, trasformando tali caratteri in elementi che AWS nonè più in grado di riconoscere.

La soluzione più semplice è rigenerare la chiave segreta in modo da crearne una che non includa caratterispeciali.

211

Page 217: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteVariabile di ambiente di codifica dei file

Modifiche importanti: migrazione daAWS CLI versione 1 alla versione 2

In questo argomento vengono descritte le modifiche di comportamento tra AWS CLI versione 1 e AWSCLI versione 2 che potrebbero richiedere di apportare modifiche agli script o ai comandi per ottenere nellaversione 2 lo stesso comportamento della versione 1.

Argomenti• AWS CLI versione 2 ora utilizza la variabile di ambiente per impostare la codifica dei file di

testo (p. 212)• AWS CLI versione 2 ora passa i parametri binari come stringhe codificate in base64 per impostazione

predefinita (p. 213)• AWS CLI versione 2 migliora la gestione di Amazon S3 delle proprietà dei file e dei tag durante

l'esecuzione di copie multipart (p. 213)• AWS CLI versione 2 non recupera più automaticamente http:// o https:// URLs per i parametri (p. 214)• AWS CLI versione 2 utilizza un programma di paging per tutti gli output per impostazione

predefinita. (p. 214)• AWS CLI versione 2 restituisce ora tutti i valori time stamp di output in formato ISO 8601. (p. 215)• AWS CLI versione 2 migliora la gestione delle distribuzioni AWS CloudFormation che non comportano

modifiche (p. 216)• AWS CLI versione 2 usa chiavi Amazon S3 in modo più coerente (p. 216)• AWS CLI versione 2 utilizza l'endpoint Amazon S3 regionale corretto per la regione us-east-1 (p. 216)• AWS CLI versione 2 utilizza gli endpoint regionali AWS STS per impostazione predefinita (p. 216)• AWS CLI versione 2sostituisce ecr get-login conecr get-login-password (p. 217)• Supporto per i plugin cambiato in AWS CLI versione 2 (p. 217)• AWS CLI versione 2 non supporta più gli alias "nascosti" (p. 217)

AWS CLI versione 2 ora utilizza la variabile diambiente per impostare la codifica dei file di testo

Per impostazione predefinita, i file di testo utilizzano la stessa codifica delle impostazioni locali installate.Per impostare la codifica per i file di testo in modo che sia diversa dalle impostazioni locali, utilizzare lavariabile di ambiente AWS_CLI_FILE_ENCODING. L'esempio seguente imposta la CLI per aprire i file ditesto utilizzando UTF-8 su Windows.

AWS_CLI_FILE_ENCODING=UTF-8

Per ulteriori informazioni, consulta Variabili di ambiente per configurare l'AWS CLI. (p. 68) .

212

Page 218: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utentePassaggio dei parametri binari

AWS CLI versione 2 ora passa i parametribinari come stringhe codificate in base64 perimpostazione predefinita

AWS CLI versione 1 non ha sempre reso facile passare i parametri binari dall'output di un comando all'inputdi un altro comando senza richiedere qualche elaborazione intermedia. Alcuni comandi richiedevanostringhe codificate in base 64, altri richiedevano stringhe di byte con codifica UTF8. AWS CLI versione 2rende la gestione dei parametri binari più coerente per consentire un passaggio più affidabile dei valori daun comando all'altro.

Per impostazione predefinita, AWS CLI versione 2 ora passa tutti i parametri di input binario e outputbinario come stringhe codificate base64. Un parametro che richiede l'input binario ha il suo tipo specificatocome blob (oggetto binario di grandi dimensioni) nella documentazione. Per passare i dati binari come filea un parametro CLI, AWS CLI versione 2 consente di specificare il file utilizzando i seguenti prefissi:

• file:// – AWS CLI considera il contenuto del file come testo codificato in base 64. Ad esempio: --some-param file://~/my/path/file-with-base64.txt

• fileb:// – AWS CLI considera il contenuto del file come binario non codificato. Ad esempio: --some-param fileb://~/my/path/file-with-raw-binary.bin

È possibile dire a AWS CLI versione 2 di ripristinare il comportamento AWS CLI versione 1 specificando laseguente riga nel file ~/.aws/config per un profilo.

cli_binary_format=raw-in-base64-out

È inoltre possibile ripristinare l'impostazione di un singolo comando, sovrascrivendo l'impostazione delprofilo attivo, includendo il parametro --cli-binary-format raw-in-base64-out nella riga dicomando.

Se si ripristina il comportamento AWS CLI versione 1 e si specifica un file per un parametro binarioutilizzando file:// o fileb://, il contenuto del file AWS CLI viene considerato come binario grezzonon codificato.

AWS CLI versione 2 migliora la gestione diAmazon S3 delle proprietà dei file e dei tag durantel'esecuzione di copie multipart

Quando utilizzi la versione AWS CLI versione 1 dei comandi nello spazio dei nomi aws s3 per copiareun file da un percorso di bucket Amazon S3 in un altro percorso di bucket Amazon S3 e tale operazioneutilizza la copia multipart, nessuna proprietà del file dall'oggetto di origine viene copiata nell'oggetto didestinazione.

Per impostazione predefinita, i comandi AWS CLI versione 2 nello spazio dei nomi s3 che eseguono copiemultipart ora trasferiscono tutti i tag e il seguente set di proprietà dall'origine alla copia di destinazione:content-type – content-language, content-encoding, content-disposition, cache-control, expires e metadata.

Questa impostazione può comportare ulteriori chiamate API AWS all'endpoint Amazon S3 chenon verrebbero effettuate con AWS CLI versione 1. Queste possono includere: HeadObject ,GetObjectTagging e PutObjectTagging.

213

Page 219: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteNessun recupero automatico

delle pagine Web per i parametri

Se è necessario modificare questo comportamento predefinito nei comandi AWS CLI versione 2, utilizza ilparametro --copy-props per specificare una delle seguenti opzioni:

• default – Il valore predefinito. Specifica che la copia include tutti i tag collegati all'oggetto di origine ele proprietà racchiuse nel parametro --metadata-directive utilizzato per le copie non multipart:content-type – content-language, content-encoding, content-disposition, cache-control, expires e metadata.

• metadata-directive – Specifica che la copia include solo le proprietà racchiuse nel parametro --metadata-directive utilizzato per le copie non multipart. Non copia alcun tag.

• none – Specifica che la copia non include nessuna delle proprietà dell'oggetto di origine.

AWS CLI versione 2 non recupera piùautomaticamente http:// o https:// URLs per iparametri

L'AWS CLI versione 2 non esegue più un'operazione GET quando un valore di parametro inizia conhttp:// o https://, quindi utilizza il contenuto restituito come il valore del parametro. Se è necessariorecuperare un URL e passare il contenuto letto da tale URL come valore di un parametro, si consiglia diutilizzare curl o uno strumento simile per scaricare il contenuto dell'URL in un file locale. Quindi utilizzarela sintassi file:// per leggere il contenuto di tale file e utilizzarlo come valore del parametro.

Ad esempio, il comando seguente non tenta più di recuperare il contenuto della pagina trovata all'indirizzohttp://www.google.com e passare tali contenuto come parametro. Invece, passa la stringa di testoletterale https://google.com come parametro.

$ aws ssm put-parameter --value http://www.google.com --name prod.microservice1.db.secret --type String 2

Se si desidera recuperare e utilizzare il contenuto di un URL Web come un parametro, è possibileeffettuare le seguenti operazioni nella versione 2.

$ curl https://my.example.com/mypolicyfile.json -o mypolicyfile.json$ aws iam put-role-policy --policy-document file://./mypolicyfile.json --role-name MyRole --policy-name MyReadOnlyPolicy

Nell'esempio precedente, il parametro -o indica a curl di salvare il file nella cartella corrente con lo stessonome del file di origine. Il secondo comando recupera il contenuto di tale file scaricato e lo passa come ilvalore di --policy-document.

AWS CLI versione 2 utilizza un programmadi paging per tutti gli output per impostazionepredefinita.

Per impostazione predefinita, AWS CLI versione 2 restituisce tutto l'output attraverso il programma pagerpredefinito del sistema operativo. Per impostazione predefinita questo programma è il programma lesssu Linux e macOS, mentre more su Windows. Ciò può semplificare la navigazione di una grande quantitàdi output di un servizio visualizzando l'output una pagina alla volta. Tuttavia, a volte potresti volere tutto

214

Page 220: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteTutti i valori di data/ora in formato ISO 8601

l'output senza dover premere un tasto per visualizzare ogni pagina, ad esempio quando esegui gli script.Per fare ciò, puoi configurare l'AWS CLI versione 2 per utilizzare un programma di paging diverso o nonutilizzarlo affatto. A tale scopo, configura la variabile di ambiente AWS_PAGER o l'impostazione cli_pagernel file ~/.aws/config e specifica il comando che vuoi utilizzare. Puoi specificare un comando nelpercorso di ricerca oppure specificare il percorso completo e il nome del file per qualsiasi comandodisponibile nel computer.

Puoi disabilitare completamente l'utilizzo di un programma di paging esterno impostando la variabile su unastringa vuota, come mostrato negli esempi seguenti.

Impostando un'opzione nel file~/.aws/config

L'esempio seguente mostra l'impostazione per il profilo default, ma puoi aggiungere l'impostazione aqualsiasi profilo nel file ~/.aws/config.

[default]cli_pager=

Impostando una variabile di ambiente

Linux o macOS:

$ export AWS_PAGER=""

Windows:

C:\> setx AWS_PAGER ""

AWS CLI versione 2 restituisce ora tutti i valori timestamp di output in formato ISO 8601.

AWS CLI versione 2 restituisce tutti i valori timestamp di risposta nel formato ISO 8601. In AWS CLIversione 1, i comandi restituivano valori di time stamp in qualsiasi formato che veniva restituito dallarisposta API HTTP, che potrebbe variare da servizio a servizio.

I timestamp in formato ISO 8601 assomigliano ai seguenti esempi. Il primo esempio mostra l'ora in formatoUTC (Coordinated Universal Time) includendo una Z dopo l'ora. La data e l'ora sono separati da una T.

2019-10-31T22:21:41Z

Per specificare un fuso orario diverso, invece di Z specificare + o - e il numero di ore in avanti o indietro delfuso orario desiderato rispetto a UTC, come un valore a due cifre. L'esempio seguente mostra la stessa oradell'esempio precedente, ma regolata all'ora standard del Pacifico, che è otto ore indietro rispetto a UTC.

2019-10-31T14:21:41-08

Per visualizzare i time stamp nel formato restituito dalla risposta API HTTP, aggiungere la seguente riga alprofilo .aws/config.

cli_timestamp_format = wire

215

Page 221: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteGestione della distribuzione AWS CloudFormation migliorata

AWS CLI versione 2 migliora la gestione delledistribuzioni AWS CloudFormation che noncomportano modifiche

In AWS CLI versione 1, se è stato distribuito un modello AWS CloudFormation che non ha portato amodifiche, per impostazione predefinita, AWS CLI dà esito negativo con codice di errore. Questo potrebbeessere un problema se non lo consideri un errore e desideri che il tuo script continui. Puoi aggirare questoproblema in AWS CLI versione 1, aggiungendo il flag -–no-fail-on-empty-changeset che restituisce0 e non causa un errore nello script.

Poiché questo è lo scenario del caso comune, AWS CLI versione 2 ora restituisce un codice di uscitariuscito 0 quando non vi è alcuna modifica causata dalla distribuzione e l'operazione restituisce unchangeset vuoto.

In AWS CLI versione 2, per ripristinare il comportamento originale, è necessario aggiungere il nuovo flag--fail-on-empty-changeset.

AWS CLI versione 2 usa chiavi Amazon S3 in modopiù coerente

Per i comandi di personalizzazione Amazon S3 nello spazio dei nomi s3, abbiamo migliorato la coerenza divisualizzazione dei percorsi. Nella AWS CLI versione 2, i percorsi vengono sempre visualizzati rispetto allachiave pertinente. L'AWS CLI versione 1 a volte mostrava i percorsi in forma assoluta e talvolta in formarelativa.

AWS CLI versione 2 utilizza l'endpoint Amazon S3regionale corretto per la regione us-east-1

Quando si configura AWS CLI versione 1 per l'utilizzo della regione us-east-1, AWS CLI ha utilizzatol'endpoint s3.amazonaws.com globale fisicamente ospitato nella regione us-east-1. AWS CLIversione 2 ora utilizza il vero endpoint regionale s3.us-east-1.amazonaws.com quando tale regione èspecificata. Per forzare a utilizzare l'endpoint globale, è possibile impostare la regione per un comando suaws-global.

AWS CLI versione 2 utilizza gli endpoint regionaliAWS STS per impostazione predefinita

Per impostazione predefinita, AWS CLI versione 2 invia tutte le richieste API AWS STS all'endpointregionale per la regione AWS attualmente configurata.

Per impostazione predefinita, AWS CLI versione 1 invia le richieste AWS STS all'endpoint AWS STSglobale. È possibile controllare questo comportamento predefinito in V1 utilizzando l'impostazionests_regional_endpoints (p. 57).

216

Page 222: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteRendere obsoleto ecr get-login

AWS CLI versione 2sostituisce ecr get-loginconecr get-login-password

L'AWS CLI versione 2 sostituisce il comando aws ecr get-login con il nuovo comando aws ecrget-login-password che migliora l'integrazione automatica con l'autenticazione del contenitore.

Il comando aws ecr get-login-password riduce il rischio di esporre le credenziali nell'elenco deiprocessi, nella cronologia della shell o in altri file di log. Migliora anche la compatibilità con il comandodocker login, consentendo una migliore automazione.

Il comando aws ecr get-login-password è disponibile in AWS CLI versione 1.17.10 e versionisuccessive e l'AWS CLI versione 2. Il comando aws ecr get-login precedente è ancora disponibilenella versione AWS CLI versione 1 per la compatibilità con le versioni precedenti.

Il comando aws ecr get-login-password consente di sostituire il codice seguente che recupera unapassword.

$(aws ecr get-login -no-include-email)

Per ridurre il rischio di esporre la password alla cronologia o ai log della shell, utilizza invece il seguentecomando di esempio. In questo esempio, la password viene reindirizzata direttamente al comando dockerlogin, dove viene assegnata al parametro password tramite l'opzione --password-stdin.

aws ecr get-login-password | docker login --username AWS --password-stdin MY-REGISTRY-URL

Supporto per i plugin cambiato in AWS CLI versione2

Il supporto plugin nell'AWS CLI versione 2 è completamente provvisorio e destinato ad aiutare gli utentia migrare da AWS CLI versione 1 fino a quando non verrà rilasciata un'interfaccia per i plugin stabilee aggiornato. Non ci sono garanzie che un particolare plugin o anche l'interfaccia plugin della CLI saràsupportato nelle versioni future dell'AWS CLI versione 2. Se devi utilizzare i plugin, assicurati di bloccareuna particolare versione della CLI e testa la funzionalità del plugin quando esegui l'aggiornamento.

Per abilitare il supporto plugin, crea una sezione [plugins] in ~/.aws/config.

[plugins]cli_legacy_plugin_path = <path-to-plugins>/python3.7/site-packages<plugin-name> = <plugin-module>

Nella sezione [plugins], inizia definendo la variabile cli_legacy_plugin_path e impostando il suovalore sul percorso dei pacchetti del sito Python in cui è presente il modulo plugin. Quindi puoi configurareun plugin fornendo un nome per il plugin (plugin-name) e il nome file del modulo Python, (plugin-module), che contiene il codice sorgente del plugin. La CLI carica ogni plugin importandone il plugin-module e chiamandone la funzione awscli_initialize.

AWS CLI versione 2 non supporta più gli alias"nascosti"

AWS CLI versione 2 non supporta più i seguenti alias nascosti che erano supportati nella versione 1.

217

Page 223: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utenteNessun alias nascosto

Nella tabella seguente, nella prima colonna vengono visualizzati il servizio, il comando e il parametro chefunzionano in tutte le versioni, inclusa AWS CLI versione 2. Nella seconda colonna viene visualizzato l'aliasche non funziona più in AWS CLI versione 2

Servizio, comando e parametro di lavoro Alias obsoleto

cognito-identity create-identity-pool open-id-connect-provider-arns open-id-connect-provider-ar-ns

storagegateway describe-tapes tape-arns tape-ar-ns

storagegateway.describe-tape-archives.tape-arns tape-ar-ns

storagegateway.describe-vtl-devices.vtl-device-arns vtl-device-ar-ns

storagegateway.describe-cached-iscsi-volumes.volume-arns volume-ar-ns

storagegateway.describe-stored-iscsi-volumes.volume-arns volume-ar-ns

route53domains.view-billing.start-time avvio

deploy.create-deployment-group.ec2-tag-set ec-2-tag-set

deploy.list-application-revisions.s3-bucket s-3-bucket

deploy.list-application-revisions.s3-key-prefix s-3-key-prefix

deploy.update-deployment-group.ec2-tag-set ec-2-tag-set

iam.enable-mfa-device.authentication-code1 authentication-code-1

iam.enable-mfa-device.authentication-code2 authentication-code-2

iam.resync-mfa-device.authentication-code1 authentication-code-1

iam.resync-mfa-device.authentication-code2 authentication-code-2

importexport.get-shipping-label.street1 street-1

importexport.get-shipping-label.street2 street-2

importexport.get-shipping-label.street3 street-3

lambda.publish-version.code-sha256 code-sha-256

lightsail.import-key-pair.public-key-base64 public-key-base-64

opsworks.register-volume.ec2-volume-id ec-2-volume-id

218

Page 224: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utente

Cronologia dei documenti della Guidaper l'utente di AWS CLI

Nella seguente tabella sono descritte le aggiunte significative apportate alla Guida per l'utente di AWSCommand Line Interface a partire da gennaio 2019. Per ricevere notifiche sugli aggiornamenti delladocumentazione, puoi sottoscrivere il feed RSS.

update-history-change update-history-description update-history-date

Informazioni aggiornatesull'installazione della versione

Le informazioni di installazioneper Linux, macOS e Windowsvengono aggiornate coninformazioni su come scaricaree installare versioni specifiche diAWS CLI versione 2.

May 19, 2020

Informazioni aggiornatesull'installazione

Le informazioni di installazione,aggiornamento e disinstallazioneper Linux, macOS e Windowsvengono aggiornate.

May 19, 2020

Sono state aggiunte leinformazioni per la codifica deifile di testo in AWS CLI versione2

Per impostazione predefinita,AWS CLI versione 2 utilizza lastessa codifica del file di testolocale. È ora possibile utilizzarele variabili di ambiente perimpostare la codifica dei file ditesto.

May 14, 2020

Rilasciata l'immagine Dockerufficiale per AWS CLI versione 2

L'immagine Docker di supportoufficiale per AWS CLI versione 2viene rilasciata per tutti i sistemiLinux, macOS e Windows.

March 31, 2020

Aggiunte informazioni relative aipager lato client per AWS CLIversione 2

Per impostazione predefinita,AWS CLI versione 2 utilizza ilprogramma pager less per tuttigli output lato client.

February 19, 2020

AWS Command Line Interface(AWS CLI) versione 2 è stataufficialmente rilasciata

L'AWS CLI versione 2 ègeneralmente disponibile ed è laversione consigliata ai clienti perl'installazione.

February 10, 2020

Il programma di installazione dimacOS per AWS CLI versione 2è ora un file .pkg del programmadi installazione del pacchettoApple.

Il programma di installazionemacOS per AWS CLI versione2 è stato aggiornato da un file.zip con uno script della shella un pacchetto completo delprogramma di installazionemacOS. Questo semplifical'installazione e la rendecompatibile con le versioni piùrecenti di macOS.

February 3, 2020

219

Page 225: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utente

Contenuto aggiunto permigliorare la gestione predefinitaAWS CLI versione 2 degliendpoint regionali S3 e STS

Per impostazione predefinita,AWS CLI versione 2 ora indirizzale richieste per i servizi AmazonS3 e AWS STS all'endpointregionale attualmente configuratoanziché all'endpoint globale.

January 13, 2020

Aggiornato per rimuovere ilsupporto per Python 2.6 e 3.3 daAWS CLI versione 1

A partire dal 10 gennaio 2020,AWS CLI versione 1 nonsupporta più l'utilizzo di Pythonversioni 2.6 o 3.3. È necessarioeseguire l'aggiornamento a unaversione più recente di Pythonper utilizzare AWS CLI versione1.17 o successiva.

January 10, 2020

Versione preliminare persviluppatori per AWS CLIversione 2

Annuncio della versionepreliminare di AWS CLIversione 2. Aggiunte istruzionisull'installazione della versione2. Aggiungi argomento dimigrazione per discutere ledifferenze tra le versioni 1 e 2.

November 7, 2019

Aggiunto il supporto perAWS Single Sign-On a profilidenominati AWS CLI

AWS CLI versione 2 aggiungeil supporto per la creazionedi un profilo denominato chepuò accedere direttamentea un account utente AWSSSO e ottenere le credenzialitemporanee AWS per l'utilizzo incomandi AWS CLI successivi.

November 7, 2019

Nuova sezione MFA Aggiunta una nuova sezioneche descrive come accederealla CLI utilizzando i ruoli el'autenticazione a più fattori.

May 3, 2019

Aggiornamento della sezione"Utilizzo della CLI"

Miglioramenti e aggiunteimportanti alle istruzioni e alleprocedure di utilizzo.

March 7, 2019

Aggiornamento della sezione"Installazione della CLI"

Miglioramenti e aggiunteimportanti alle istruzioni e alleprocedure di installazione dellaCLI.

March 7, 2019

Aggiornamento della sezione"Configurazione della CLI"

Miglioramenti e aggiunteimportanti alle istruzioni e alleprocedure di configurazione dellaCLI.

March 7, 2019

220

Page 226: AWS Command Line Interface · 2020. 8. 12. · viene utilizzato come prompt. Non includere il prompt quando digiti i comandi. • Directory – Quando i comandi devono essere eseguiti

AWS Command Line Interface Guida per l'utente

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di unatraduzione e la versione originale in Inglese, quest'ultima prevarrà.

ccxxi