Come posso risolvere i problemi relativi all'eliminazione del mio snapshot Amazon EBS?

7 minuti di lettura
0

Sto cercando di eliminare il mio snapshot di Amazon Elastic Block Store (Amazon EBS), ma non ci riesco. Come risolvere questo problema?

Breve descrizione

Di seguito sono riportati i motivi più comuni per cui l'eliminazione degli snapshot di Amazon EBS non riesce:

  • L'utente o il ruolo di AWS Identity and Access Management (IAM) non dispongono dell'autorizzazione per eseguire l'azione DeleteSnapshot API.
  • Un altro account possiede lo snapshot e lo condivide con il tuo account AWS.
  • Lo snapshot del dispositivo root del volume EBS viene utilizzato da un'Amazon Machine Image (AMI) registrata.
  • Lo snapshot si trova nel Cestino.
  • Lo snapshot viene creato in AWS Backup oppure quello creato in AWS Backup viene ripristinato dal Cestino.
  • Lo snapshot viene creato utilizzando Amazon Data Lifecycle Manager e viene inserito o ripristinato dal Cestino.
  • I risultati dell'API DeleteSnapshot non sono immediatamente visibili ai comandi successivi.

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

L'utente o il ruolo IAM non dispongono dell'autorizzazione per eseguire l'azione DeleteSnapshot API

In AWS CloudTrail, viene visualizzato il messaggio di errore: "Non sei autorizzato a eseguire questa operazione. Messaggio di errore di autorizzazione codificato: Bght_tAZ... "

Per decodificare il messaggio di errore di autorizzazione, esegui il comando seguente:

$  aws sts decode-authorization-message --encoded-message encoded_message

Nota: sostituisci encoded_message con il messaggio di errore di autorizzazione codificato che hai ricevuto.

Puoi anche utilizzare il simulatore di policy IAM per risolvere i problemi. Verifica la policy correlata all'utente o al ruolo IAM per vedere se ha una regola che nega l'azione ec2:DeleteSnapshot.

Esempio di policy JSON che nega l'azione ec2:DeleteSnapshot:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Deny",
      "Action": "ec2:DeleteSnapshot",
      "Resource": "*"
    }
  ]
}

Inoltre, verifica le regole che negano qualsiasi condizione che deve essere soddisfatta per il completamento dell'operazione, ad esempio ec2:SnapshotID. Aggiorna la policy degli utenti o dei ruoli IAM per consentire l'eliminazione degli snapshot.

Per un elenco delle chiavi di condizione correlate, consulta la sezione DeleteSnapshot di Azioni, risorse e chiavi di condizione per Amazon EC2.

Lo snapshot è di proprietà e condiviso da un altro account AWS

Viene visualizzato il messaggio di errore: "Lo snapshot "snap-abcdef1234567890' non esiste."

Non puoi eliminare uno snapshot dal tuo account che un altro account possiede e condivide con il tuo. Se hai accesso all'account proprietario dello snapshot, puoi eliminarlo. In caso contrario, devi contattare il proprietario di quell'account.

Per verificare il proprietario dello snapshot, esegui il seguente comando describe-snapshots dell'interfaccia a riga di comando di AWS:

$ aws ec2 describe-snapshots --snapshot-id snap-abcdef1234567890

Nota: sostituisci snap-abcdef1234567890 con l'ID dello snapshot.

Puoi anche trovare informazioni sullo snapshot nella console Amazon Elastic Compute Cloud (Amazon EC2). Per ulteriori informazioni, consulta Visualizza le informazioni sugli snapshot di Amazon EBS.

Se possiedi lo snapshot e desideri revocarne la condivisione con altri account, segui questi passaggi:

  1. Apri la console Amazon EC2.
  2. Nel pannello di navigazione, scegli Snapshot.
  3. Seleziona lo snapshot che hai condiviso, quindi scegli Azioni, Modifica autorizzazioni.
  4. In Account condivisi, seleziona l'ID dell'account da cui desideri revocare la condivisione degli snapshot. Quindi, scegli Rimuovi selezionato.
  5. Seleziona Save changes (Salva le modifiche).

Lo snapshot del dispositivo root del volume Amazon EBS viene utilizzato da un'AMI registrata

Viene visualizzato il messaggio di errore: "Lo snapshot "snap-abcdef1234567890" è attualmente utilizzato da ami-abcdef1234567890."

Usa la Console di gestione AWS o l'interfaccia a riga di comando di AWS per annullare la registrazione della tua AMI. Quindi, elimina lo snapshot.

Puoi trovare l'ID AMI nel messaggio di errore. In alternativa, puoi eseguire il seguente comando describe-snapshots dell'interfaccia a riga di comando di AWS:

$ aws ec2 describe-snapshots --snapshot-ids snap-abcdef1234567890

Puoi trovare l'ID AMI nella sezione Descrizione:

{
  "Snapshots": [
    {
      "Description": "Created by CreateImage(i-abcdef1234567890) for ami-abcdef1234567890",
      "Encrypted": false,
      "OwnerId": "111122223333",
      "Progress": "100%",
      "SnapshotId": "snap-abcdef1234567890",
      "StartTime": "2022-11-12T03:15:16.272000+00:00",
      "State": "completed",
      "VolumeId": "vol-abcdef1234567890",
      "VolumeSize": 8,
      "StorageTier": "standard"
    }
  ]
}

Lo snapshot si trova nel Cestino

Viene visualizzato il messaggio di errore: "Si è verificato un errore (InvalidSnapshot.NotFound) durante la chiamata all'operazione DeleteSnapshot. Lo snapshot "snap-abcdef1234567890" non esiste."

Se elimini uno snapshot utilizzando l'interfaccia a riga di comando di AWS e ricevi il messaggio di errore precedente, questo potrebbe trovarsi nel Cestino. Non è possibile eliminare uno snapshot contenuto nel Cestino. Lo snapshot viene eliminato solo alla scadenza del periodo di conservazione.

Per verificare se lo snapshot si trova nel Cestino, esegui il comando list-snapshots-in recycle-bin AWS CLI:

aws ec2 list-snapshots-in-recycle-bin --snapshot-id snap-abcdef1234567890 --region region

Nota: sostituisci il campo regione con la tua regione AWS.

Output di esempio:

{
  "Snapshots": [
    {
      "SnapshotId": "snap-0460a240fc523552e",
      "RecycleBinEnterTime": "2022-11-13T16:33:54.707000+00:00",
      "RecycleBinExitTime": "2022-11-14T16:33:54.707000+00:00",
      "Description": "",
      "VolumeId": "vol-08d1428974b817a18"
    }
  ]
}

Se è necessario eliminare lo snapshot prima della scadenza del periodo di conservazione, è possibile ripristinarlo dal Cestino. Assicurati che il tuo utente o ruolo IAM dispongano delle autorizzazioni corrette per visualizzare e recuperare gli snapshot presenti nel Cestino.

Quindi, verifica le regole di conservazione della tua regione AWS. Per una regola di conservazione a livello di tag, modifica i tag degli snapshot in modo che non corrispondano alla regola di conservazione. Quindi, elimina lo snapshot. Per una regola a livello di regione, elimina la regola di conservazione e quindi elimina lo snapshot. L'eliminazione della regola di conservazione non influisce sugli altri snapshot nel Cestino.

Lo snapshot viene creato in AWS Backup oppure quello creato in AWS Backup è stata ripristinato dal Cestino

Viene visualizzato il messaggio di errore: "snap-abcdef1234567890 Questo snapshot è gestito dal servizio AWS Backup e non può essere eliminato tramite le API EC2. Se desideri eliminare questo snapshot, fallo tramite la console di backup."

Non puoi usare la console Amazon EC2 o l'interfaccia a riga di comando di AWS per eliminare uno snapshot creato e gestito in AWS Backup. È necessario eliminare lo snapshot dalla console AWS Backup. Annota l'ID dello snapshot, quindi segui i passaggi per l'eliminazione dei backup.

Tuttavia, non è possibile utilizzare la console AWS Backup per eliminare uno snapshot creato in AWS Backup, inviato al Cestino e quindi ripristinato. È necessario eliminare lo snapshot utilizzando la console Amazon EC2 o l'interfaccia a riga di comando di AWS.

Lo snapshot viene creato utilizzando Amazon Data Lifecycle Manager e archiviato nel Cestino.

Amazon Data Lifecycle Manager non gestisce gli snapshot nel Cestino creati utilizzando Amazon Data Lifecycle Manager o le policy loro relative. È necessario utilizzare la console Amazon EC2 o l'interfaccia a riga di comando di AWS per eliminare lo snapshot.

I risultati dell'API DeleteSnapshot non sono immediatamente visibili alle richieste successive

Tutte le API Amazon EC2 seguono un eventuale modello di coerenza. Ciò significa che quando si utilizza l'API DeleteSnapshot, i risultati potrebbero non essere immediatamente visibili ai comandi successivi eseguiti.

Per verificare lo stato di uno snapshot eliminato di recente, esegui il seguente comando describe-snapshots dell'interfaccia a riga di comando di AWS:

$ aws ec2 describe-snapshots --region region --snapshot-ids snap-abcdef1234567890

Se viene visualizzato il seguente messaggio di errore, lo snapshot viene eliminato correttamente: "Si è verificato un errore (InvalidSnapshot.NotFound) durante la chiamata all'operazione DescribeSnapshots: lo snapshot "snap-abcdef1234567890" non esiste."


AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa