Amazon S3 バケットのファイル誤削除を防止する方法を教えてください

2022.12.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

この記事は アノテーション株式会社 AWS Technical Support Advent Calendar 2022 | Advent Calendar 2022 - Qiita 12日目の記事です。

困っていること

誤って Amazon S3 バケットから重要なファイルを削除しました。Amazon S3 バケットのファイルが誤って削除されるのを防ぎたいと考えています。
Amazon S3 の機能を利用して誤削除を防止する方法を教えてください。

どう対応すればいいの?

ドキュメント 記載の通り、Amazon S3 バケットでは下記を設定することが誤削除に対しての有用な方法となります。

  • バージョニングを有効化する
  • MFA (多要素認証) Delete が有効になるように設定する

Amazon S3 バケットで S3 バージョニングを行うときに、MFA (多要素認証) Delete が有効になるようにバケットを設定すれば、セキュリティをさらに強化できます。

S3 バージョニングについて

S3 バージョニング を使用すると、オブジェクトの複数のバージョンを 1 つのバケットに保持し、誤って削除または上書きされたオブジェクトを復元できます。
オブジェクトを削除した場合、Amazon S3 はオブジェクトを完全に削除する代わりに削除マーカーを挿入します。これが最新のオブジェクトバージョンになります。これにより、以前のバージョンを復元することが可能になります。
詳細や実装方法については、S3 バージョニングの仕組みバケットでのバージョニングの有効化 を参考に実装してください。

MFA (多要素認証) Delete 設定について

MFA Delete は、認証情報に不正なアクセスがあった場合などにセキュリティを強化します。削除アクションを開始したユーザーに MFA コードを使って MFA デバイスの物理的所有を証明するように要求したりすることで、バケットの偶発的な削除を防ぎます。
詳細や実装方法については、MFA 削除の設定 を参考に実装してください。

注記
バージョニングで MFA Delete を使用するには、MFA Delete を有効にします。ただし、AWS Management Console を使用して MFA Delete を有効にすることはできません。AWS Command Line Interface (AWS CLI) または API を使用する必要があります。

参考資料