Salta al contenuto

Perché non riesco a eliminare il mio bucket Amazon S3?

5 minuti di lettura
0

Desidero capire perché non riesco a eliminare il mio bucket Amazon Simple Storage Service (Amazon S3).

Risoluzione

Prerequisiti

Prima di eliminare un bucket Amazon S3, esegui le seguenti azioni:

  • Per i bucket ospitati come sito web statico, rivedi e aggiorna le impostazioni delle zone ospitate di Amazon Route 53 relative al bucket.
  • Se il bucket riceve dati di log da Elastic Load Balancing (ELB), interrompi la consegna dei log al bucket prima di eliminarlo.

Nota: se elimini il nome di un bucket, il nome diventa disponibile per tutti gli utenti. Se un altro account AWS utilizza il nome del bucket, non puoi riutilizzarlo. Come best practice, non eliminare il bucket. Piuttosto svuotalo.

Il bucket S3 non è vuoto

Per eliminare un bucket Amazon S3, è necessario che il bucket sia vuoto. Utilizza la console Amazon S3, l'interfaccia della linea di comando AWS (AWS CLI) o l'SDK per svuotare manualmente il bucket. Se il bucket è grande e hai configurato il controllo delle versioni, l'eliminazione manuale dell'oggetto richiede molto tempo. In questo caso, utilizza la configurazione del ciclo di vita di Amazon S3 per svuotare i bucket.

Nota: se ricevi errori quando esegui i comandi della linea di comando di AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per i bucket che hai configurato con il controllo delle versioni o che sono nello stato Sospeso, includi le seguenti regole nella configurazione del ciclo di vita:

  • Regola 1: fai scadere tutte le versioni correnti degli oggetti dopo X giorni dalla creazione. Elimina definitivamente tutte le versioni non correnti degli oggetti dopo Y giorni dal momento in cui diventano non correnti.
  • Regola 2: fai scadere tutti i singoli indicatori di eliminazione e i caricamenti in più parti incompleti dopo Z giorni.

Per i bucket che non hai configurato con il controllo delle versioni, includi le seguenti regole nella configurazione del ciclo di vita:

  • Regola 1: fai scadere tutte le versioni correnti degli oggetti dopo X giorni dalla creazione dell'oggetto.
  • Regola 2: fai scadere tutti i caricamenti in più parti incompleti dopo Z giorni.

Nota: per eliminare rapidamente il bucket, imposta X, Y e Z su 1 giorno.

Le regole del ciclo di vita di Amazon S3 vengono eseguite una volta al giorno. Dopo l'esecuzione delle regole del ciclo di vita, tutti gli oggetti idonei alla scadenza vengono contrassegnati per l'eliminazione. Poiché le azioni della policy del ciclo di vita sono asincrone, occorrono diversi giorni prima che gli oggetti vengano eliminati fisicamente dal bucket. Dopo che un oggetto è stato contrassegnato per l'eliminazione, non ti verrà più addebitato lo spazio di archiviazione associato all'oggetto.

Utilizzo dell'interfaccia della linea di comando AWS (AWS CLI)

Esegui il seguente comando per eliminare definitivamente oggetti da un bucket Amazon S3 che non hai configurato con il controllo delle versioni:

aws s3 rm s3://bucket-name --recursive

Esegui il seguente comando per eliminare definitivamente tutti gli oggetti da un bucket Amazon S3 sospeso o configurato con il controllo delle versioni:

aws s3api delete-objects --bucket bucket-name --delete "$(aws s3api list-object-versions --bucket bucket-name --output=json --query='{Objects: Versions[].{Key:Key,VersionId:VersionId}}')"

Nota: sostituisci bucket-name con il nome del tuo bucket Amazon S3.

Utilizzo della console Amazon S3

Completa i seguenti passaggi:

  1. Apri la console Amazon S3.
  2. Nel pannello di navigazione, seleziona il bucket che desideri svuotare, quindi scegli Vuoto.
  3. Nella pagina Svuota il bucket, inserisci permanently delete nel campo di testo per eliminare tutti gli oggetti contenuti nel bucket, quindi scegli Vuoto.
  4. (Facoltativo) Nella pagina Bucket vuoto: stato è visibile lo stato di avanzamento.

Nota: se le versioni degli oggetti in un bucket Amazon S3 sono in modalità di governance, l'identità AWS Identity and Access Management (IAM) richiede l'autorizzazione s3:BypassGovernanceRetention. Per bypassare la modalità di governance, devi includere l'intestazione x-amz-bypass-governance-retention:true nella richiesta. Per le richieste effettuate dalla Console di gestione AWS, la Console applica automaticamente l'intestazione alle richieste che dispongono delle autorizzazioni necessarie per bypassare la modalità di governance.

Durante il periodo di conservazione, un'identità IAM non può eliminare versioni di oggetti protette in modalità di conformità, neanche l'utente root dell'account AWS. Elimina gli oggetti protetti in modalità di conformità una volta trascorso il periodo di conservazione. Nel momento in cui il bucket Amazon S3 è vuoto, puoi procedere con l’eliminazione.

Al bucket sono associati punti di accesso

Prima di eliminare il bucket Amazon S3, elimina tutti i punti di accesso associati al bucket. Non puoi eliminare bucket a cui sono associati punti di accesso S3 o punti di accesso multiregionali all'interno dello stesso account.

L'identità IAM non dispone di autorizzazioni sufficienti

Concedi le autorizzazioni DeleteBucket nella policy IAM per l'identità IAM utilizzata per eliminare il bucket. Oppure includi l'azione API delete-bucket nella policy del bucket.

Un'istruzione DENY esplicita impedisce l'eliminazione

Un'istruzione DENY esplicita ha la precedenza su un'istruzione ALLOW esplicita. Verifica che le policy dell'identità IAM, del bucket e del cloud privato virtuale (VPC) non contengano istruzioni DENY esplicite.

Quando AWS Elastic Beanstalk crea un bucket, per impostazione predefinita, le policy contengono istruzioni DENY esplicite. Prima di eliminare il bucket Amazon S3, elimina l'istruzione DENY esplicita o la policy del bucket.

AWS UFFICIALEAggiornata un anno fa