Amazon EBS スナップショットの削除に関する問題の解決方法を教えてください。
Amazon Elastic Block Store (Amazon EBS) スナップショットを削除しようとしていますが、削除できません。この問題を解決するにはどうすればよいですか。
簡単な説明
Amazon EBS スナップショットの削除が失敗する一般的な理由は次のとおりです。
- AWS Identity and Access Management (IAM) ユーザーまたはロールには、DeleteSnapshot API アクションを実行する権限がありません。
- 別のアカウントがスナップショットを所有し、ユーザーの AWS アカウントと共有します。
- EBS ボリュームルートデバイスのスナップショットは、登録された Amazon マシンイメージ (AMI) によって使用されます。
- スナップショットは ごみ箱 にあります。
- スナップショットは AWS Backup で作成されるか、または AWS Backup で作成されてごみ箱から復元されます。
- スナップショットは Amazon データライフサイクルマネージャーを使って作成され、ごみ箱に保存されるか、ごみ箱から復元されます。
- DeleteSnapshot API の結果は、以降のコマンドではすぐには表示されません。
解決方法
注: AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行中にエラーが発生した場合、使用している AWS CLI が最新バージョンになっていることを確認してください。
IAM ユーザーまたはロールには、DeleteSnapshot API アクションを実行する権限がありません
AWS CloudTrail では、次のエラーメッセージが表示されます。「You are not authorized to perform this operation.Encoded authorization failure message: Bght_tAZ...... 」 (この操作を実行する権限がありません。エンコードされた認証エラーメッセージ: Bght_tAZ......)
認証失敗メッセージをデコードするには、以下のコマンドを実行します。
$ aws sts decode-authorization-message --encoded-message encoded_message
**注:**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 ユーザーまたはロールポリシーを更新します。
関連する条件キーのリストは、「 Amazon EC2 のアクション、リソース、および条件キーの DeleteSnapshot セクション」を参照してください。
スナップショットは別の AWS アカウントによって所有および共有されています
次のエラーメッセージが表示されます。「The snapshot 'snap-abcdef1234567890' does not exist. 」(スナップショット 'snap-abcdef1234567890' は存在しません。)
別のアカウントが所有し、またユーザーのアカウントと共有しているスナップショットは、アカウントから削除することはできません。スナップショットを所有するアカウントにアクセスできる場合は、スナップショットを削除できます。そうでない場合、アカウントの所有者に連絡する必要があります。
スナップショットの所有者を確認するには、次の describe-snapshots AWS CLI コマンドを実行します。
$ aws ec2 describe-snapshots --snapshot-id snap-abcdef1234567890
**注:**snap-abcdef1234567890 をスナップショットの ID に置き換えてください。
スナップショットに関する情報は、Amazon Elastic Compute Cloud (Amazon EC2) コンソールでも確認できます。詳細については、「Amazon EBS スナップショット情報を表示する」を参照してください。
スナップショットを所有していて、他のアカウントとのスナップショットの共有を取り消したい場合は、次の手順に従ってください。
- Amazon EC2 コンソール を開きます。
- ナビゲーションペインで、[Snapshots] (スナップショット) を選択します。
- 共有したスナップショットを選択し、[Actions、Modify permissions] (アクション、権限の変更) を選択します。
- [Shared accounts] (共有アカウント) で、スナップショットの共有を取り消すアカウントのアカウント ID を選択します。次に、[Remove selected] (選択項目を削除) を選択します。
- [Save Changes] (変更を保存) を選択します。
Amazon EBS ボリュームルートデバイスのスナップショットは、登録された AMI によって使用されます
次のエラーメッセージが表示されます。「The snapshot 'snap-abcdef1234567890' is currently in use by ami-abcdef1234567890.」(スナップショット 'snap-abcdef1234567890' は現在 ami-abcdef1234567890 が使用中です。)
AWS マネジメントコンソールまたは AWS CLI を使用して AMI の登録を解除 します。次に、スナップショットを削除 します。
AMI ID はエラーメッセージに記載されています。または、次の describe-snapshots AWS CLI コマンドを実行することもできます。
$ aws ec2 describe-snapshots --snapshot-ids snap-abcdef1234567890
AMI ID は**[Description]** (説明) セクションで確認できます。
{ "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" } ] }
スナップショットはごみ箱にあります
次のエラーメッセージが表示されます。「An error occurred (InvalidSnapshot.NotFound) when calling the DeleteSnapshot operation. The snapshot 'snap-abcdef1234567890' does not exist.」(DeleteSnapshot 操作を呼び出す際、エラー (InvalidSnapshot.NotFound) が発生しました。スナップショット 'snap-abcdef1234567890' は存在しません。)
AWS CLI を使ってスナップショットを削除すると上記のエラーメッセージが表示される場合、スナップショットはごみ箱にある可能性があります。ごみ箱にあるスナップショットは削除できません。スナップショットは、保存期間が終了したときにのみ削除されます。
スナップショットがごみ箱にあるかどうかを確認するには、list-snapshots-in recycle-bin AWS CLI コマンドを実行します。
aws ec2 list-snapshots-in-recycle-bin --snapshot-id snap-abcdef1234567890 --region region
注: 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 リージョンの保存ルールを確認します。タグレベルの保持ルールでは、スナップショットタグが保持ルールと一致しないように変更します。次に、スナップショットを削除します。リージョンレベルのルールでは、保存ルールを削除 してからスナップショットを削除します。保存ルールを削除しても、ごみ箱内の他のスナップショットには影響しません。
スナップショットは 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.」(snap-abcdef1234567890 このスナップショットは AWS バックアップサービスによって管理されており、EC2 API では削除できません。このスナップショットを削除する場合は、バックアップコンソールから行ってください。)
Amazon EC2 コンソールまたは AWS CLI を使って、AWS Backup で作成および管理されているスナップショットを削除することはできません。スナップショットを AWS Backup コンソールから削除する必要があります。スナップショット ID をメモしてから、「バックアップを削除する」の手順に従います。
ただし、AWS Backup で作成され、ごみ箱に送られて復元されたスナップショットを削除するために AWS Backup コンソールを使用することはできません。Amazon EC2 コンソールまたは AWS CLI を使用してスナップショットを削除する必要があります。
スナップショットは Amazon データライフサイクルマネージャーを使って作成され、ごみ箱に保存されます。
Amazon データライフサイクルマネージャーでは、Amazon データライフサイクルマネージャーまたはスナップショットポリシーを使って作成されたごみ箱内のスナップショットは管理されません。スナップショットを削除するには、Amazon EC2 コンソールまたは AWS CLI を使用する必要があります。
DeleteSnapshot API の結果は、以降の要求にすぐには表示されません
すべての Amazon EC2 API は、最終整合性モデル に従います。つまり、DeleteSnapshot API を使用しても、以降で実行するコマンドに結果がすぐには表示されない場合があります。
最近削除されたスナップショットのステータスを確認するには、次の describe-snapshots AWS CLI コマンドを実行します。
$ aws ec2 describe-snapshots --region region --snapshot-ids snap-abcdef1234567890
次のエラーメッセージが表示される場合、スナップショットは正常に削除されます。「An error occurred (InvalidSnapshot.NotFound) when calling the DescribeSnapshots operation: The snapshot 'snap-abcdef1234567890' does not exist.」(DescribeSnapshots 操作を呼び出すときにエラーが発生しました(InvalidSnapshot.NotFound):スナップショット 'snap-abcdef1234567890' は存在しません。)

関連するコンテンツ
- 質問済み 5日前lg...
- 質問済み 3年前lg...
- AWS公式更新しました 6ヶ月前
- AWS公式更新しました 6ヶ月前