Come usare la CLI AWS per gestire i secchi AWS S3

Come usare la CLI AWS per gestire i secchi AWS S3
“AWS CLI può essere utilizzato per eseguire diversi secchi S3 e operazioni a livello di oggetto. L'uso della CLI AWS per eseguire operazioni diverse su secchi S3 è un modo rapido per controllare il servizio AWS S3. Le operazioni S3 semplici come la creazione, l'eliminazione e l'inserimento dei dati nel bucket S3 possono essere automatizzate utilizzando la funzione di riga di comando AWS. Possiamo scrivere script diversi per eseguire operazioni diverse su S3. È importante utilizzare l'interfaccia della riga di comando AWS quando si desidera inserire o eliminare i dati su S3 tramite alcuni script. Prima di utilizzare l'interfaccia della riga di comando AWS, dovresti avere una comprensione di base dei diversi comandi utilizzati per gestire il bucket S3."

In questo blog, discuteremo alcuni comandi di base utilizzati per gestire i bucket S3 usando l'interfaccia della riga di comando. In questo articolo, discuteremo delle seguenti operazioni che possono essere eseguite su S3.

  • Creazione di un secchio S3
  • Inserimento di dati nel secchio S3
  • Eliminazione dei dati dal secchio S3
  • Eliminazione di un secchio S3
  • Versioning bucket
  • Crittografia predefinita
  • Politica del secchio S3
  • Registrazione dell'accesso al server
  • Notifica per eventi
  • Regole del ciclo di vita
  • Regole di replica

Prima di iniziare questo blog, in primo luogo, è necessario configurare le credenziali AWS per utilizzare l'interfaccia della riga di comando sul sistema. Visita il seguente blog per saperne di più sulla configurazione delle credenziali della riga di comando AWS sul tuo sistema.

https: // linuxhint.com/configure-aws-cli-credentials/

Creazione di un secchio S3

Il primo passo per gestire le operazioni del bucket S3 utilizzando l'interfaccia della riga di comando AWS è creare il bucket S3. Puoi usare il Mb metodo del S3 comanda per creare il secchio S3 su AWS. Di seguito è riportata la sintassi per utilizzare il Mb metodo di S3 Per creare il secchio S3 usando AWS CLI.

ubuntu@ubuntu: ~ $ AWS S3 MB

Il nome del secchio è universalmente unico, quindi prima di creare un secchio S3, assicurati che non sia già preso da nessun altro account AWS. Il seguente comando creerà il secchio S3 chiamato Linuxhint-Demo-S3-bucket.

ubuntu@ubuntu: ~ $ aws s3 mb \
S3: // Linuxhint-demo-S3-Bucket \
--Regione US-WEST-2

Il comando sopra creerà un secchio S3 nella regione USA-WEST-2.

Dopo aver creato il secchio S3, ora usa il ls metodo del S3 Per assicurarsi che il secchio sia creato o meno.

ubuntu@ubuntu: ~ $ aws s3 ls

Otterrai il seguente errore sul terminale se provi a utilizzare un nome di secchio che esiste già.

Inserimento di dati nel secchio S3

Dopo aver creato il secchio S3, ora è il momento di inserire alcuni dati nel secchio S3. Per spostare i dati nel secchio S3, sono disponibili i seguenti comandi.

  • cp
  • MV
  • sincronizzazione

IL cp Il comando viene utilizzato per copiare i dati dal sistema locale al bucket S3 e viceversa utilizzando AWS CLI. Può anche essere utilizzato per copiare i dati da un bucket S3 di origine in un'altra destinazione S3 Bucket. La sintassi per copiare i dati da e verso il secchio S3 è come di seguito.

ubuntu@ubuntu: ~ $ aws s3 cp \
(Copia da locale a s3) ubuntu@ubuntu: ~ $ aws s3 cp \
(Copia da S3 a locale) Ubuntu@ubuntu: ~ $ AWS S3 CP \
(Copia da un S3 a un altro)

IL MV metodo del S3 viene utilizzato per spostare i dati dal sistema locale al secchio S3 o viceversa utilizzando AWS CLI. Proprio come il cp comando, possiamo usare il MV comanda di spostare i dati da un bucket S3 a un altro secchio S3. Di seguito è riportata la sintassi per utilizzare il MV comando con AWS CLI.

ubuntu@ubuntu: ~ $ aws s3 mv \
(Passa dal locale a S3) ubuntu@ubuntu: ~ $ AWS S3 MV \
(Passa da S3 a locale) Ubuntu@ubuntu: ~ $ AWS S3 MV \
(Passa da un S3 a un altro S3)

IL sincronizzazione Il comando nell'interfaccia della riga di comando AWS S3 viene utilizzato per sincronizzare una directory locale e un secchio S3 o due secchi S3. IL sincronizzazione Comando prima controlla la destinazione e quindi copia solo i file che non esistono nella destinazione. non mi piace il sincronizzazione comando, il cp E MV I comandi spostano i dati dalla sorgente a destinazione anche se il file con lo stesso nome esiste già sulla destinazione.

ubuntu@ubuntu: ~ $ aws s3 sync \
(sincronizzazione directory locale a S3)

Il comando sopra sincronizzerà tutti i dati dalla directory locale al bucket S3 e copierà solo i file che non sono presenti nel bucket di destinazione S3.

Ora sincronizzeremo il secchio S3 con la directory locale usando il sincronizzazione Comando con l'interfaccia della riga di comando AWS.

ubuntu@ubuntu: ~ $ aws s3 sync \
(Sincronizzazione S3 alla directory locale)

Il comando sopra sincronizzerà tutti i dati dal bucket S3 alla directory locale e copierà solo i file che non esistono nella destinazione poiché abbiamo già sincronizzato il bucket S3 e la directory locale, quindi non sono stati copiati dati questa volta.

Eliminazione dei dati dal secchio S3

Nella sezione precedente, abbiamo discusso di diversi metodi per inserire i dati nel bucket AWS S3 utilizzando cp, MV, E sincronizzazione comandi. Ora in questa sezione, discuteremo diversi metodi e parametri per eliminare i dati dal secchio S3 usando AWS CLI.

Per eliminare un file da un secchio S3, il Rm viene utilizzato il comando. Di seguito è riportata la sintassi per utilizzare il Rm comanda per rimuovere l'oggetto S3 (un file) utilizzando l'interfaccia della riga di comando AWS.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // LinuxHint-Demo-S3-bucket/Data-Copy.TXT

L'esecuzione del comando sopra eliminerà solo un singolo file nel bucket S3. Per eliminare una cartella completa che contiene più file, il -ricorsivo L'opzione viene utilizzata con questo comando.

Per eliminare una cartella denominata File che contiene più file all'interno, è possibile utilizzare il seguente comando.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-demo-s3-bucket/file \
--ricorsivo

Il comando sopra rimuoverà prima tutti i file da tutte le cartelle nel secchio S3 e quindi rimuove le cartelle. Allo stesso modo, possiamo usare il -ricorsivo opzione insieme al s3 rm Metodo per svuotare un intero secchio S3.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-demo-S3-Bucket \
--ricorsivo

Eliminazione di un secchio S3

In questa sezione dell'articolo, discuteremo di come possiamo eliminare un secchio S3 su AWS usando l'interfaccia della riga di comando. IL Rb La funzione viene utilizzata per eliminare il secchio S3, che accetta il nome del secchio S3 come parametro. Prima di rimuovere il secchio S3, è necessario prima svuotare il secchio S3 rimuovendo tutti i dati utilizzando il Rm metodo. Quando si elimina un secchio S3, il nome del secchio è disponibile per gli altri.

Prima di eliminare il secchio, svuotare il secchio S3 rimuovendo tutti i dati utilizzando il Rm metodo del S3.

ubuntu@ubuntu: ~ $ aws s3 rm \
\
--ricorsivo

Dopo aver svuotato il secchio S3, puoi usare il Rb metodo del S3 comando per eliminare il secchio S3.

ubuntu@ubuntu: ~ $ aws s3 rb \

Versioning bucket

Al fine di mantenere le varianti multiple di un oggetto S3 in S3, la versione di S3 Bucket può essere abilitata. Quando il versioning del bucket è abilitato, è possibile tenere traccia delle modifiche apportate a un oggetto bucket s3. In questa sezione, utilizzeremo la CLI AWS per configurare il versioning del bucket S3.

Innanzitutto, controlla lo stato di versioning del bucket del bucket S3 con il seguente comando.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-wioning \
--secchio

Poiché la versione del bucket non è abilitata, il comando sopra non ha generato alcun output.

Dopo aver controllato lo stato di versioning del bucket S3, ora abilita la versionistica del bucket utilizzando il comando seguente nel terminale. Prima di abilitare la versione di versione, tieni presente che la versione non può essere disabilitata dopo averlo abilitato, ma è possibile sospenderlo.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-wioning \
--secchio \
--Stato di configurazione del versioning = abilitato

Questo comando non genererà alcun output e abiliterà correttamente la versioning del bucket S3.

Ora di nuovo, controlla lo stato del versioni del secchio S3 del bucket S3 con il seguente comando.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-wioning \
--secchio

Se la versioning del bucket è abilitata, può essere sospesa utilizzando il seguente comando nel terminale.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-wioning \
--secchio \
--Stato di configurazione del versioning = sospeso

Dopo aver sospeso la versione di S3 Bucket, il seguente comando può essere utilizzato per verificare nuovamente lo stato della versioni del bucket.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-wioning \
--secchio

Crittografia predefinita

Per assicurarsi che ogni oggetto nel bucket S3 sia crittografato, la crittografia predefinita può essere abilitata in S3. Dopo aver abilitato la crittografia predefinita, ogni volta che si inserisce un oggetto nel secchio, verrà automaticamente crittografato. In questa sezione del blog, useremo la CLI AWS per configurare la crittografia predefinita su un secchio S3.

Innanzitutto, controlla lo stato della crittografia predefinita del bucket S3 usando il Get-Bucket-Cryption metodo del s3api. Se la crittografia predefinita del secchio non è abilitata, lancerà ServerSideencryptionConfigurationNotFounderror eccezione.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-cription \
--secchio

Ora per abilitare la crittografia predefinita, il Put-Bucket-Cryption verrà utilizzato il metodo.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-cription \
--secchio \

-Server-lato-crittografia-configurazione '"Regole": ["ApplServerSideencryptionByDefault": "ssealgorithm": "aes256"] "

Il comando sopra abiliterà la crittografia predefinita e ogni oggetto verrà crittografato utilizzando la crittografia lato server AES-256 quando inserito nel bucket S3.

Dopo aver abilitato la crittografia predefinita, ora controlla nuovamente lo stato della crittografia predefinita utilizzando il comando seguente.

Se la crittografia predefinita è abilitata, è possibile disabilitare la crittografia predefinita utilizzando il comando seguente nel terminale.

ubuntu@ubuntu: ~ $ aws s3api delete-bucket-cription \
--secchio

Ora, se controlli di nuovo lo stato di crittografia predefinita, lancerà il ServerSideencryptionConfigurationNotFounderror eccezione.

Politica del secchio S3

La politica del bucket S3 viene utilizzata per consentire ad altri servizi AWS all'interno o attraverso gli account di accedere al secchio S3. Viene utilizzato per gestire l'autorizzazione del secchio S3. In questa sezione del blog, utilizzeremo la CLI AWS per configurare le autorizzazioni di secchio S3 applicando la politica del secchio S3.

Innanzitutto, controlla la politica del bucket S3 per vedere se esiste o meno su un bucket S3 specifico utilizzando il seguente comando nel terminale.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-policy \
--secchio

Se il secchio S3 non ha alcuna politica del secchio associato al secchio, lancerà l'errore sopra sul terminale.

Ora configureremo la politica del secchio S3 sul secchio S3 esistente. Per questo, in primo luogo, dobbiamo creare un file che contiene la politica in formato JSON. Crea un file denominato politica.JSON e incolla i seguenti contenuti lì dentro. Cambia la politica e metti il ​​nome del secchio S3 prima di usarlo.


"Dichiarazione": [

"Effetto": "Deny",
"Principal": "*",
"Azione": "S3: getObject",
"Resource": "Arn: AWS: S3 ::: Mys3Bucket/*"

"

Ora esegui il seguente comando nel terminale per applicare questa politica al bucket S3.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-policy \
--secchio \
--File dei criteri: // Politica.JSON

Dopo aver applicato la politica, ora controlla lo stato della politica del secchio eseguendo il seguente comando nel terminale.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-policy \
--secchio

Al fine di eliminare la politica del secchio S3 allegato al bucket S3, il comando seguente può essere eseguito nel terminale.

ubuntu@ubuntu: ~ $ aws s3api delete-bucket-policy \
--secchio

Registrazione dell'accesso al server

Per registrare tutte le richieste effettuate a un bucket S3 in un altro bucket S3, la registrazione dell'accesso al server deve essere abilitata per un bucket S3. In questa sezione del blog, discuteremo di come possiamo configurare l'accesso al server Accesso e S3 Bucket utilizzando l'interfaccia della riga di comando AWS.

Innanzitutto, ottenere lo stato corrente della registrazione dell'accesso al server per un bucket S3 utilizzando il comando seguente nel terminale.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-logging \
--secchio

Quando la registrazione dell'accesso al server non è abilitata, il comando sopra non lancerà alcun output nel terminale.

Dopo aver controllato lo stato della registrazione, ora proviamo a abilitare la registrazione sul secchio S3 di mettere i registri in un'altra destinazione S3 Bucket. Prima di abilitare la registrazione, assicurarsi che il bucket di destinazione abbia una politica allegata che consente al bucket di origine di inserire i dati.

Innanzitutto, crea un file denominato registrazione.JSON e incolla il seguente contenuto lì dentro e sostituisci TargetBucket con il nome del secchio di destinazione S3.


"LoggingEnabled":
"TargetBucket": "MyBucket",
"TargetPrefix": "Logs/"

Ora usa il comando seguente per abilitare la registrazione su un secchio S3.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-logging \
--secchio \
--filetto-logging-status file: // registrazione.JSON

Dopo aver abilitato la registrazione dell'accesso al server sul bucket S3, è possibile verificare nuovamente lo stato della registrazione S3 utilizzando il comando seguente.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-logging \
--secchio

Notifica per eventi

AWS S3 ci fornisce una proprietà per attivare una notifica quando si verifica un evento specifico a S3. Possiamo utilizzare le notifiche degli eventi S3 per attivare argomenti SNS, una funzione Lambda o una coda SQS. In questa sezione, vedremo come possiamo configurare le notifiche dell'evento S3 utilizzando l'interfaccia della riga di comando AWS.

Prima di tutto, usa il Get-Bucket-Notification-Configuration metodo del s3api Per ottenere lo stato della notifica dell'evento su un secchio specifico.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-notification-configuration \
--secchio

Se il bucket S3 non ha alcuna notifica di eventi configurata, non genererà alcun output sul terminale.

Al fine di consentire a una notifica dell'evento per attivare l'argomento SNS, è necessario prima allegare una politica all'argomento SNS che consente al bucket S3 di attivarlo. Dopo questo, è necessario creare un file denominato notifica.JSON, che include i dettagli dell'argomento SNS e dell'evento S3. Crea un file notifica.JSON e incolla i seguenti contenuti lì dentro.


"TopicConfigurazioni": [

"Topicarn": "ARN: AWS: SNS: US-WEST-2: 123456789012: S3-Notification-Topic",
"Eventi": [
"S3: Object Created:*"
"

"

Secondo la configurazione sopra, ogni volta che si inserisce un nuovo oggetto nel bucket S3, attiverà l'argomento SNS definito nel file.

Dopo aver creato il file, ora crea la notifica dell'evento S3 sul bucket S3 specifico con il seguente comando.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-notification-configuration \
--secchio \
--File di configurazione della notifica: // Notifica.JSON

Il comando sopra creerà una notifica di evento S3 con le configurazioni fornite in notifica.JSON file.

Dopo aver creato la notifica dell'evento S3, ora elenca di nuovo tutte le notifiche dell'evento utilizzando il seguente comando AWS CLI.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-notification-configuration \
--secchio

Questo comando elencherà la notifica dell'evento sopra aggiunta nell'output della console. Allo stesso modo, puoi aggiungere più notifiche di eventi a un singolo secchio S3.

Regole del ciclo di vita

Il bucket S3 fornisce regole del ciclo di vita per gestire il ciclo di vita degli oggetti memorizzati nel bucket S3. Questa funzione può essere utilizzata per specificare il ciclo di vita delle diverse versioni degli oggetti S3. Gli oggetti S3 possono essere spostati in diverse classi di archiviazione o possono essere eliminati dopo un periodo di tempo specifico. In questa sezione del blog, vedremo come possiamo configurare le regole del ciclo di vita utilizzando l'interfaccia della riga di comando.

Prima di tutto, ottenere tutte le regole del ciclo di vita del bucket S3 configurate in un secchio usando il comando seguente.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-lifecycle \
--secchio

Se le regole del ciclo di vita non sono configurate con il bucket S3, otterrai il NosuchlifecycleConfiguration Eccezione in risposta.

Ora creiamo una configurazione della regola del ciclo di vita utilizzando la riga di comando. IL put-bucket-lifecycle Il metodo può essere utilizzato per creare la regola di configurazione del ciclo di vita.

Prima di tutto, crea un file regole.JSON File che include le regole del ciclo di vita in formato JSON.


"Regole": [

"Id": "Passa al ghiacciaio dopo 1 mese",
"Prefisso": "Dati/",
"Stato": "Abilitato",
"Transizione":
"Days": 30,
"Storageclass": "Glacier"

,

"Scadenza":
"Data": "2025-01-01T00: 00: 00.000Z "
,
"ID": "Elimina i dati nel 2025.",
"Prefisso": "Old Data/",
"Stato": "Abilitato"

"

Dopo aver creato il file con le regole in formato JSON, ora crea la regola di configurazione del ciclo di vita utilizzando il comando seguente.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-lifecycle \
--secchio \
--Lifecycle-Configuration File: // Regole.JSON

Il comando sopra creerà correttamente una configurazione del ciclo di vita ed è possibile ottenere la configurazione del ciclo di vita utilizzando il Get-bucket-lifecycle metodo.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-lifecycle \
--secchio

Il comando sopra elencherà tutte le regole di configurazione create per il ciclo di vita. Allo stesso modo, è possibile eliminare la regola di configurazione del ciclo di vita utilizzando il delete-bucket-lifecycle metodo.

ubuntu@ubuntu: ~ $ aws s3api delete-bucket-lifecycle \
--secchio

Il comando sopra eliminerà correttamente le configurazioni del ciclo di vita del bucket S3.

Regole di replica

Le regole di replica nei secchi S3 vengono utilizzate per copiare oggetti specifici da un bucket di origine S3 a un secchio di destinazione S3 all'interno dello stesso o diverso account. Inoltre, è possibile specificare la classe di archiviazione di destinazione e l'opzione di crittografia nella configurazione della regola di replica. In questa sezione, applicheremo la regola di replica su un bucket S3 usando l'interfaccia della riga di comando.

Innanzitutto, ottenere tutte le regole di replica configurate su un secchio S3 usando il Get-Bucket-Replication metodo.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-replication \
--secchio

Se non esiste una regola di replica configurata con un secchio S3, il comando lancerà il ReplicationConfigurationNotFounderror eccezione.

Per creare una nuova regola di replica utilizzando l'interfaccia della riga di comando, in primo luogo, è necessario abilitare la versione sia sul bucket di origine che di destinazione S3. Abilitare la versioning è stato discusso in precedenza in questo blog.

Dopo aver abilitato la versione di S3 Bucket sul secchio di origine e di destinazione, ora crea un replica.JSON file. Questo file include la configurazione delle regole di replica in formato JSON. Sostituisci il Iam_role_arn E Destinazione_bucket_arn Nella seguente configurazione prima di creare la regola di replica.


"Ruolo": "iam_role_arn",
"Regole": [

"Stato": "Abilitato",
"Priorità": 100,
"DeletemarkerReplication": "status": "abilitato",
"Filtro": "prefisso": "dati",
"Destinazione":
"Bucket": "Destination_bucket_arn"


"

Dopo aver creato il replica.JSON file, ora crea la regola di replica utilizzando il comando seguente.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-replication \
--secchio \
--Replication-Configuration File: // Replication.JSON

Dopo aver eseguito il comando sopra, creerà una regola di replica nel bucket di origine S3 che copierà automaticamente i dati nel bucket di destinazione S3 specificato nel replica.JSON file.

Allo stesso modo, è possibile eliminare la regola di replica del bucket S3 usando il Elimina-bucket-replicazione Metodo nell'interfaccia della riga di comando.

ubuntu@ubuntu: ~ $ aws s3api delete-bucket-replication \
--secchio

Conclusione

Questo blog descrive come possiamo utilizzare l'interfaccia della riga di comando AWS per eseguire operazioni di base per avanzate come la creazione e l'eliminazione di un bucket S3, inserendo ed eliminando i dati dal bucket S3, abilitando la crittografia predefinita, la versione, la registrazione dell'accesso al server, la notifica degli eventi, le regole di replica e configurazioni del ciclo di vita. Queste operazioni possono essere automatizzate utilizzando i comandi di interfaccia della riga di comando AWS negli script e quindi aiutano ad automatizzare il sistema.