跳至內容

當刪除失敗時,如何刪除 Amazon EBS 快照?

3 分的閱讀內容
0

我無法刪除 Amazon Elastic Block Store (Amazon EBS) 快照。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

請根據您收到的錯誤訊息或遇到的問題,選擇對應的解決方法。

編碼授權失敗錯誤

在 AWS CloudTrail 中,您會收到以下錯誤訊息:

「You are not authorized to perform this operation.Encoded authorization failure message: Bght_tAZ...」

發生此錯誤的原因是,AWS Identity and Access Management (IAM) 使用者或角色沒有執行 DeleteSnapshot API 作業的權限。

若要解碼授權失敗訊息,請執行以下命令:

aws sts decode-authorization-message --encoded-message your_encoded_message

**注意:**將 your_encoded_message 替換為您收到的編碼授權失敗訊息。

您也可以使用 IAM 政策模擬器來疑難排解此錯誤。檢查附加到 IAM 使用者或角色的政策是否具有拒絕 ec2:DeleteSnapshot 動作的規則。

拒絕 ec2:DeleteSnapshot 動作的 JSON 政策範例:

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

也請檢查是否有拒絕條件的規則,且這些條件必須滿足作業才能完成,例如 ec2:SnapshotID。更新 IAM 使用者或角色政策,以允許刪除快照。

快照不存在錯誤

您會收到以下錯誤訊息:

「The snapshot 'snap-abcdef1234567890' does not exist.」

發生此錯誤的原因是另一個 AWS 帳戶擁有該快照,並將其與您的帳戶共用。

如果您有權限存取共用該快照的帳戶,則可以刪除該快照。否則,您必須要求另一個帳戶的擁有者刪除該快照。

若要檢查快照的擁有者,請執行以下 describe-snapshots AWS CLI 命令:

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

**注意:**將 snap-abcdef1234567890 替換為您的快照 ID。

您也可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 主控台來取得快照的資訊

如果您擁有該快照,且不再想要與其他帳戶共用該快照,請完成以下步驟:

  1. 開啟 Amazon EC2 console (Amazon EC2 主控台)。
  2. 在導覽窗格中,選擇 Snapshots (快照)。
  3. 選取您共用的快照,然後選擇 Actions (動作)。
  4. 選擇 Snapshot settings (快照設定),然後選擇 Modify permissions (修改權限)。
  5. Shared accounts (共用帳戶) 下,選取您要撤銷快照共用的帳戶 ID。
  6. 選擇 Remove selected (移除所選項目)。
  7. 選擇 Save changes (儲存變更)。

AMI 使用中的快照錯誤

您會收到以下錯誤訊息:

「The snapshot 'snap-abcdef1234567890' is currently in use by ami-abcdef1234567890.」

發生此錯誤的原因是,已註冊的 Amazon Machine Image (AMI) 正在使用 EBS 磁碟區根裝置的快照。

若要解決此問題,請先取消註冊您的 AMI,然後再刪除快照

如果您已無法再看到包含 AMI ID 的錯誤訊息,請執行以下 describe-snapshots AWS CLI 命令:

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

**注意:**將 snap-abcdef1234567890 替換為您的快照 ID。

您可以在 JSON 檔案的 Description (描述) 區段中找到 AMI ID:

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

DeleteSnapshot 作業錯誤

您會收到以下錯誤訊息:

「An error occurred (InvalidSnapshot.NotFound) when calling the DeleteSnapshot operation.The snapshot 'snap-abcdef1234567890' does not exist.」

如果您使用 AWS CLI 刪除快照時收到前述錯誤訊息,則該快照可能位於 Recycle Bin (資源回收筒) 中。

您無法刪除位於資源回收筒中的快照。只有在保留期間到期後,您才能刪除該快照。

若要檢查快照是否位於資源回收筒中,請執行 list-snapshots-in-recycle-bin AWS CLI 命令:

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

**注意:**將 snap-abcdef1234567890 替換為您的快照 ID,並將 region 替換為您的 AWS 區域。

輸出範例:

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

如果您必須在快照仍位於資源回收筒中時將其刪除,請先從資源回收筒還原快照。確認您的 IAM 使用者或角色具有檢視和復原位於資源回收筒中快照的正確權限

然後,檢查您區域中的保留規則。對於標籤層級的保留規則,請修改快照標籤,使其不符合保留規則。然後,使用 AWS CLI 刪除快照。對於區域層級規則,請先刪除保留規則,然後使用 AWS CLI 刪除快照。您無法使用 AWS Backup 主控台刪除在 AWS Backup 中建立,並從資源回收筒還原的快照。

**注意:**當您刪除快照的保留規則時,資源回收筒中的其他快照不會受到影響。

由 AWS Backup 管理的快照錯誤

您會收到以下錯誤訊息:

「snap-abcdef1234567890 This snapshot is managed by AWS Backup service and cannot be deleted via EC2 APIs.If you wish to delete this snapshot, please do so via the Backup console.」

當您使用 Amazon EC2 主控台或 AWS CLI 刪除由 AWS Backup 建立的快照時,會發生此錯誤。或者,由 AWS Backup 建立的快照位於資源回收筒中,而您嘗試還原該快照。

您必須使用 AWS Backup 主控台來手動刪除快照

**重要:**您無法使用 AWS Backup 主控台刪除由 AWS Backup 建立、傳送到資源回收筒,然後又還原的快照。您必須使用 Amazon EC2 console (Amazon EC2 主控台) 或 AWS CLI 刪除該快照。

ResourceNotFound 錯誤

當您嘗試刪除快照時,收到「ResourceNotFound」錯誤。發生此錯誤的原因是,您使用 Amazon Data Lifecycle Manager 建立快照後又將其刪除,但 Amazon EBS 仍將其保留在資源回收筒中。

Amazon Data Lifecycle Manager 不會管理透過 Amazon Data Lifecycle Manager 或快照政策建立且位於資源回收筒中的快照。您必須使用 Amazon EC2 console (Amazon EC2 主控台) 或 AWS CLI 刪除該快照。

DeleteSnapshot API 結果不會立即顯示

由於 Amazon EC2 API 採用最終一致性模型,因此在您執行 DeleteSnapshot 之後,結果可能不會立即顯示在後續執行的命令中。

若要檢查最近刪除之快照的狀態,請執行以下 describe-snapshots AWS CLI 命令:

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

**注意:**將 region 替換為您的區域,並將 snap-abcdef1234567890 替換為您的快照 ID。

如果您收到以下錯誤訊息,則表示您已成功刪除快照:

「An error occurred (InvalidSnapshot.NotFound) when calling the DescribeSnapshots operation: The snapshot 'snap-abcdef1234567890' does not exist.」

AWS 官方已更新 6 個月前