Ricerca nel sito web

Gestisci le operazioni su S3 Bucket utilizzando aws-cli dall'istanza EC2


Possiamo creare e gestire il bucket S3 utilizzando la console AWS. A volte può essere necessario creare ed eseguire operazioni sul bucket S3 dalla riga di comando. Se non sei a conoscenza del bucket S3 e vuoi saperne di più clicca qui dove puoi trovare un articolo sul bucket S3 scritto da me.

Prima di procedere con questo articolo presumo che tu abbia familiarità con il bucket S3.

In questo articolo, vedremo i passaggi e i comandi per creare un bucket S3 dalla riga di comando ed eseguire operazioni di base su di esso come copiare file, sincronizzare file, ecc.

Prerequisiti

  1. Account AWS  (crealo se non ne hai uno).
  2. Comprensione di base del bucket S3 (fare clic qui per ulteriori informazioni sui bucket S3).
  3. Ubuntu 20.04 EC2 Instance(Fai clic qui per informazioni sull'istanza EC2 e sui passaggi per crearla dalla console AWS. Puoi scegliere un'AMI di Ubuntu 20.04 anziché 18.04).
  4. Ruolo IAM con policy S3FullAccess collegata (fai clic qui per scoprire come creare un ruolo IAM).

Che cosa faremo?

  1. Accedi all'account AWS.
  2. Installa aws-cli.
  3. Allega un ruolo IAM all'istanza EC2.
  4. Crea un bucket utilizzando aws-cli.
  5. Esegui l'operazione di base su S3 Bucket utilizzando aws-cli.

Accedi ad AWS

Prima di procedere con l'installazione del comando aws-cli su un'istanza EC2, accediamo al nostro account.

Fare clic qui per accedere alla pagina di accesso AWS.

Dopo aver premuto il link sopra, vedrai la pagina di accesso come segue.

Una volta effettuato l'accesso con successo al tuo trovato, vedrai la dashboard principale di AWS come di seguito.

Installa aws-cli

Connettiti alla tua istanza AWS EC2.

Aggiorniamo prima il repository.

sudo apt-get update

Installa il comando aws-cli utilizzando il seguente comando sul server Ubuntu.

sudo apt install awscli

Prendi la versione del comando aws-cli.

aws --version

Fino a questo punto, abbiamo solo un'istanza EC2 senza alcun ruolo IAM richiesto ad essa collegato.

Ora se proviamo a verificare l'identità utilizzando il seguente comando ci verrà chiesto di configurare le credenziali da utilizzare per eseguire qualsiasi operazione.

aws sts get-caller-identity

Collega un ruolo IAM all'istanza EC2.

Vai alla console AM nel tuo account AWS e verifica se alla regola è collegata la policy richiesta.

Qui puoi vedere al ruolo è collegata la policy AmazonS3FullAccess.

Ora vai alla console EC2 e seleziona l'istanza che stai utilizzando per eseguire operazioni sul bucket S3.

Qui, fai clic su Azioni --> Sicurezza --> Modifica ruolo IAM per collegare una regola all'istanza.

Vedrai la schermata in cui puoi selezionare una regola da allegare dall'elenco a discesa. Fare clic su Salva per procedere ulteriormente.

Esegui l'operazione di base su S3 Bucket utilizzando aws-cli

Torniamo al terminale EC2 ed eseguiamo il seguente comando.

aws sts get-caller-identity

Poiché abbiamo allegato la regola richiesta all'istanza, dopo l'esecuzione del comando precedente per verificare l'identità del ruolo utilizzato per eseguire operazioni dal terminale, possiamo vedere l'ID utente, l'account e il suo ARN in risposta. Ciò significa che abbiamo autenticato correttamente la nostra istanza EC2. Ora siamo pronti per eseguire operazioni dal terminale utilizzando il ruolo associato all'istanza EC2.

Per controllare i bucket S3 esistenti nell'account AWS, esegui il comando seguente

aws s3 ls

Creiamo un nuovo bucket denominato \rahul-new-bucket-dec-2020\. Assicurati che il nome del bucket sia univoco a livello globale.

aws s3 mb s3://rahul-new-bucket-dec-2020

Ora, ancora una volta, se elenchiamo i bucket, possiamo vedere che un nuovo bucket è stato creato correttamente ed è disponibile nell'elenco dei bucket esistenti.

aws s3 ls

Creiamo un nuovo file sulla nostra macchina locale

touch file-for-s3

Possiamo copiare i file dalla nostra macchina locale al bucket S3

aws s3 cp file-for-s3  s3://rahul-new-bucket-dec-2020

Possiamo persino elencare il contenuto del bucket S3

aws s3 ls s3://rahul-new-bucket-dec-2020

Nel modo in cui copiamo i file dalla macchina locale al bucket S3, possiamo anche sincronizzare una directory locale con il bucket.

La sincronizzazione non copia i file e le cartelle esistenti dal computer locale al bucket. Copia solo i file che sono stati appena creati o modificati

Creiamo un nuovo file che chiamiamo la nostra macchina locale

touch new-file

Ora useremo la sincronizzazione.

aws s3 sync . s3://rahul-new-bucket-dec-2020

Ora creiamo di nuovo un nuovo file

touch file-after-sync

Ora puoi vedere che se eseguiamo nuovamente la sincronizzazione, vengono copiati solo i file appena creati. I file che sono già stati copiati nel bucket non vengono copiati.

aws s3 sync . s3://rahul-new-bucket-dec-2020

Ma questo non è il caso dell'opzione di copia. Copia tutti i file indipendentemente dai file disponibili su S3.

aws s3 cp . s3://rahul-new-bucket-dec-2020 --recursive

Fare riferimento allo screenshot seguente per comprendere i comandi che abbiamo appena provato.

Controlliamo quali file sono disponibili nel nostro bucket S3.

aws s3 ls s3://rahul-new-bucket-dec-2020

Possiamo eliminare un determinato file dal bucket S3 utilizzando il sottocomando \rm\.

aws s3 rm s3://rahul-new-bucket-dec-2020/new-file

Controlla se il file è stato eliminato o meno dal bucket

aws s3 ls s3://rahul-new-bucket-dec-2020

Possiamo persino eliminare tutti gli oggetti dal bucket utilizzando l'opzione --recursive

aws s3 rm s3://rahul-new-bucket-dec-2020 --recursive

Controlla se gli oggetti sono stati eliminati dal bucket o meno

aws s3 ls s3://rahul-new-bucket-dec-2020

Fare riferimento allo screenshot seguente per comprendere le operazioni appena eseguite.

Il modo in cui potremmo eliminare gli oggetti dal bucket, possiamo anche eliminare il bucket stesso

Innanzitutto, elenca tutti i bucket disponibili nell'account.

 aws s3 ls

Elimina il bucket richiesto utilizzando il sottocomando \rb\.

 aws s3 rb s3://rahul-new-bucket-dec-2020

Ora possiamo vedere che il bucket specificato è stato eliminato dal conteggio

aws s3 ls

Possiamo rimuovere la regola che avevamo allegato all'istanza in modo che l'istanza non possa più essere in grado di autorizzarsi.

Per rimuovere il ruolo allegato, vai all'istanza EC2, fai clic su Azioni --> Sicurezza --> Modifica ruolo IAM e rimuovi la regola che era allegata e salva la configurazione.

Conferma la tua operazione.

Questa volta, se eseguiamo il comando \aws s3 ls\, non saremo in grado di elencare i bucket dall'account. Non saremo in grado di eseguire alcuna operazione dall'istanza EC2.

Conclusione

Il modo in cui gestiamo il bucket AWS S3 dalla console AWS, possiamo gestirlo anche dalla CLI. Abbiamo visto i passaggi per installare l'utilità della riga di comando aws-cli. Abbiamo anche visto i passaggi per collegare e scollegare il ruolo I am dall'istanza EC2. Abbiamo eseguito alcune operazioni di base sul bucket S3 utilizzando l'utilità della riga di comando aws-cli.