Wie behebe ich Probleme beim Löschen meines Amazon EBS-Snapshots?

Lesedauer: 6 Minute
0

Ich versuche, meinen Amazon Elastic Block Store (Amazon EBS) -Snapshot zu löschen, kann es aber nicht. Wie kann ich dieses Problem beheben?

Kurzbeschreibung

Im Folgenden sind die häufigsten Gründe aufgeführt, warum das Löschen von Amazon EBS-Snapshots fehlschlägt:

  • Der Benutzer oder die Rolle von AWS Identity and Access Management (IAM) hat keine Berechtigung, die DeleteSnapshot-API-Aktion auszuführen.
  • Ein anderes Konto besitzt den Snapshot und teilt ihn mit Ihrem AWS-Konto.
  • Der Snapshot des EBS-Volume-Root-Geräts wird von einem registrierten Amazon Machine Image (AMI) verwendet.
  • Der Snapshot befindet sich im Papierkorb.
  • Der Snapshot wird in AWS Backup erstellt, oder der Snapshot, der in AWS Backup erstellt wurde, wird aus dem Papierkorb wiederhergestellt.
  • Der Snapshot wurde mit Amazon Data Lifecycle Manager erstellt und befindet sich im Papierkorb oder wurde aus dem Papierkorb wiederhergestellt.
  • Die Ergebnisse der DeleteSnapshot-API sind für nachfolgende Befehle nicht sofort sichtbar.

Lösung

Hinweis: Wenn Sie beim Ausführen von Befehlen von AWS Command Line Interface (AWS CLI) Fehlermeldungen erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Der IAM-Benutzer oder die IAM-Rolle hat keine Berechtigung, die DeleteSnapshot-API-Aktion auszuführen

In AWS CloudTrail erhalten Sie die Fehlermeldung: "Sie sind nicht berechtigt, diesen Vorgang auszuführen. Fehlermeldung bei verschlüsselter Autorisierung: Bght_tAZ...

Führen Sie den folgenden Befehl aus, um die Meldung über den Fehler bei der Autorisierung zu dekodieren:

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

Hinweis: Ersetzen Sie encoded_message durch die verschlüsselte Autorisierungsfehlermeldung, die Sie erhalten haben.

Sie können auch den IAM-Richtliniensimulator zur Fehlerbehebung verwenden. Überprüfen Sie die Richtlinie, die sich auf den IAM-Benutzer oder die IAM-Rolle bezieht, um festzustellen, ob sie eine Regel enthält, die Aktion ec2:DeleteSnapshot ablehnt.

Beispiel für eine JSON-Richtlinie, die Aktion ec2:DeleteSnapshot ablehnt:

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

Suchen Sie außerdem nach Regeln, die alle Bedingungen ablehnen, die erfüllt sein müssen, damit der Vorgang abgeschlossen werden kann, z. B. ec2:SnapshotID. Aktualisieren Sie die IAM-Benutzer- oder Rollenrichtlinie, um das Löschen von Snapshots zuzulassen.

Eine Liste der zugehörigen Bedingungsschlüssel finden Sie im Abschnitt DeleteSnapshot unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon EC2.

Der Snapshot gehört einem anderen AWS-Konto und wird von diesem gemeinsam genutzt.

Sie erhalten die Fehlermeldung: "Der Snapshot 'snap-abcdef1234567890' existiert nicht.

Du kannst keinen Snapshot aus deinem Konto löschen, den ein anderes Konto besitzt und den er mit deinem Konto teilt. Wenn Sie Zugriff auf das Konto haben, dem der Snapshot gehört, können Sie ihn löschen. Wenn nicht, müssen Sie den Besitzer dieses Kontos kontaktieren.

Führen Sie den folgenden AWS-CLI-Befehl describe-Snapshots aus, um den Besitzer des Snapshots zu überprüfen:

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

Hinweis: Ersetzen Sie snap-abcdef1234567890 durch die ID Ihres Snapshots.

Informationen zum Snapshot finden Sie auch in der Amazon Elastic Compute Cloud (Amazon EC2) -Konsole. Weitere Informationen finden Sie unter Amazon EBS-Snapshot-Informationen anzeigen.

Wenn Sie Eigentümer des Snapshots sind und die gemeinsame Nutzung des Snapshots für andere Konten widerrufen möchten, gehen Sie wie folgt vor:

  1. Öffnen Sie die Amazon-EC2-Konsole.
  2. Wählen Sie Snapshots im Navigationsbereich aus.
  3. Wählen Sie den Snapshot aus, den Sie geteilt haben, und wählen Sie dann Aktionen, Berechtigungen ändern.
  4. Wählen Sie unter Geteilte Konten die Konto-ID des Kontos aus, für das Sie die Snapshot-Freigabe widerrufen möchten. Wählen Sie dann Ausgewählte entfernen.
  5. Wählen Sie Änderungen speichern.

Der Snapshot des Amazon EBS-Volume-Root-Geräts wird von einem registrierten AMI verwendet

Sie erhalten die Fehlermeldung: "Der Snapshot 'snap-abcdef1234567890' wird derzeit von ami-abcdef1234567890 verwendet.

Verwenden Sie die AWS Management Console oder AWS CLI, um Ihr AMI abzumelden. Löschen Sie dann den Snapshot.

Die AMI-ID finden Sie in der Fehlermeldung. Sie können auch den folgenden AWS-CLI-Befehl describe-Snapshots ausführen:

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

Sie finden die AMI-ID im Abschnitt Beschreibung:

{
  "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"
    }
  ]
}

Der Snapshot befindet sich im Papierkorb

Beim Aufrufen des DeleteSnapshot-Vorgangs ist ein Fehler aufgetreten (InvalidSnapshot.NotFound). Der Snapshot 'snap-abcdef1234567890' ist nicht vorhanden.

Wenn Sie einen Snapshot mit der AWS-CLI löschen und die vorherige Fehlermeldung erhalten, befindet sich der Snapshot möglicherweise im Papierkorb. Sie können einen Snapshot, der sich im Papierkorb befindet, nicht löschen. Der Snapshot wird erst gelöscht, wenn die Aufbewahrungsfrist abgelaufen ist.

Um zu überprüfen, ob sich der Snapshot im Papierkorb befindet, führen Sie den AWS CLI-Befehl list-snapshots-in recycle-bin aus:

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

Hinweis: Ersetzen Sie die Region durch Ihre AWS-Region.

Beispielausgabe:

{
  "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"
    }
  ]
}

Wenn Sie den Snapshot vor Ablauf der Aufbewahrungsfrist löschen müssen, können Sie den Snapshot aus dem Papierkorb wiederherstellen. Stellen Sie sicher, dass Ihr IAM-Benutzer oder Ihre IAM-Rolle über die richtigen Berechtigungen zum Anzeigen und Wiederherstellen von Snapshots im Papierkorb verfügt.

Überprüfen Sie anschließend die Aufbewahrungsregeln Ihrer AWS-Region. Ändern Sie für eine Aufbewahrungsregel auf Tag-Ebene die Snapshot-Tags so, dass sie nicht mit der Aufbewahrungsregel übereinstimmen. Löschen Sie dann den Snapshot. Löschen Sie für eine Regel auf Regionsebene die Aufbewahrungsregel und dann den Snapshot. Das Löschen der Aufbewahrungsregel hat keine Auswirkungen auf die anderen Snapshots im Papierkorb.

Der Snapshot wird in AWS Backup erstellt, oder der Snapshot, der in AWS Backup erstellt wurde, wurde aus dem Papierkorb wiederhergestellt

Sie erhalten die Fehlermeldung: "snap-abcdef1234567890 Dieser Snapshot wird vom AWS Backup Service verwaltet und kann nicht über EC2-APIs gelöscht werden. Wenn Sie diesen Snapshot löschen möchten, tun Sie dies bitte über die Backup-Konsole.

Sie können die Amazon EC2-Konsole oder AWS CLI nicht verwenden, um einen Snapshot zu löschen, der in AWS Backup erstellt und verwaltet wurde. Sie müssen den Snapshot aus der AWS Backup-Konsole löschen. Notieren Sie sich die Snapshot-ID und folgen Sie dann den Schritten zum Löschen von Backups.

Sie können die AWS Backup-Konsole jedoch nicht verwenden, um einen Snapshot zu löschen, der in AWS Backup erstellt, in den Papierkorb gesendet und dann wiederhergestellt wurde. Sie müssen den Snapshot mithilfe der Amazon EC2-Konsole oder der AWS-CLI löschen.

Der Snapshot wird mit Amazon Data Lifecycle Manager erstellt und im Papierkorb gespeichert.

Amazon Data Lifecycle Manager verwaltet keine Snapshots im Papierkorb, die mithilfe von Amazon Data Lifecycle Manager oder Snapshot-Richtlinien erstellt wurden. Sie müssen die Amazon EC2-Konsole oder AWS CLI verwenden, um den Snapshot zu löschen.

Die Ergebnisse der DeleteSnapshot-API sind für nachfolgende Anforderungen nicht sofort sichtbar

Alle Amazon EC2-APIs folgen einem eventuellen Konsistenzmodell. Das bedeutet, dass bei Verwendung der DeleteSnapshot-API die Ergebnisse möglicherweise nicht sofort für nachfolgende Befehle sichtbar sind, die Sie ausführen.

Führen Sie den folgenden AWS-CLI-Befehl describe-Snapshots aus, um den Status eines kürzlich gelöschten Snapshots zu überprüfen:

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

Wenn Sie die folgende Fehlermeldung erhalten, wurde der Snapshot erfolgreich gelöscht: "Beim Aufrufen des DescribeSnapshots-Vorgangs ist ein Fehler aufgetreten (InvalidSnapshot.NotFound): Der Snapshot 'snap-abcdef1234567890' existiert nicht.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr