AWS S3には、オブジェクトロックという機能があるのをご存知でしょうか?

S3が非常に便利で、最高に使いやすいソリューションであるのは間違いないのですが、誤ってデータが削除されてしまうリスクはどうしても避けられません。
そんなリスクに対応できるのが、S3オブジェクトロックです。
この記事では、S3オブジェクトロックの概要について、初心者にも分かりやすく解説していきます。
S3オブジェクトロックとは?
S3オブジェクトロックは、Amazon S3の機能の一つでデータの削除や上書きを防ぐための仕組みです。
特定の期間、または無期限でオブジェクトを保護し、意図しないデータの改変や削除を防ぐことができます。
S3オブジェクトロック 2つの管理方法
S3オブジェクトロックには2つの管理方法があります。
種類 | 説明 |
---|---|
保持期間 | オブジェクトごとに「この期間は上書き、削除できない」と期限を指定することができます。 |
リーガルホールド | 法的な理由などでデータを保持し続ける場合、一時的に上書き、削除を禁止できます。 保持期間と違い、期限なしで設定・解除が可能です。 |
一見同時に設定できなさそうに見えますが、それぞれ独立しているため設定できます。
リーガルホールドは期限がないためいつでも解除ができますが、それは明示的に解除をしない限りは操作ができないと言うことです。
例えば、保持期間が過ぎた後でも、リーガルホールドが有効であれば削除できません。
S3オブジェクトロック 2つの保持モード
S3オブジェクトロックには2つの保持モードがあります。
モード | 説明 |
---|---|
ガバナンスモード (Governance Mode) | 特定のIAMユーザーやロールはオブジェクトを上書き、削除できるが、通常のユーザーはできない |
コンプライアンスモード (Compliance Mode) | rootユーザを含めた全てのユーザーが削除や変更できない完全な保護モード |
コンプライアンスモードはかなり強力で、保持期間内に万一削除が必要になった場合は、AWSアカウントごと削除をしなければならない徹底ぶりです。間違って設定しないようにしましょう。
S3のオブジェクトロックにおける「ガバナンス」と「コンプライアンス」ってなに?
保持モードに何故このような名前がついているのか、ちょっと寄り道して見ていきましょう。
ガバナンスモード(Governance Mode)
前述の通り、ガバナンスモードは、「特定の管理者が解除できる」モードです。
- 通常のユーザーはオブジェクトを削除・上書きできないが、特定の権限(
s3:BypassGovernanceRetention
)を持つ管理者は解除できる。 - 「ガバナンス=ルールを作り、その守らせる仕組み」 の言葉通り、原則ロックを強制はするが、適切な管理者が例外的に変更できる。
- ルール管理が設定の目的
コンプライアンスモード(Compliance Mode)
コンプライアンスモードは「誰も解除できない絶対的なロック」です。
- 一度設定した後は、管理者であっても削除・変更できない。
- 「コンプライアンス=決められたルールを必ず守ること」 の言葉通り、オブジェクトが確実に保護され、一定期間変更できない。
- 法律や規制に厳格に従うための強固なモードで、法令遵守が設定の目的
まとめると、「ガバナンス」はルールを運用しながら管理、「コンプライアンス」は決めたルールを完全に守ることを強制するために利用します。
S3オブジェクトロックはどんな時に使える?
- オブジェクト誤削除の防止
誤って重要なデータを削除してしまうのを防ぐために活用 - バックアップデータの保護
定期的なバックアップデータを一定期間削除されないようにすることで、安全にデータを保持することができます - コンプライアンス対応
コンプライアンス要件として一定期間データを保持することが義務付けられている場合に、オブジェクトロックを利用することで規制を満たせます - ランサムウェア対策
データを変更不可とするため、データを暗号化して身代金を要求するランサムウェア攻撃から防御するために、オブジェクトロックを活用できます
S3オブジェクトロックにコストはかかる?
S3オブジェクトロック自体には追加料金は発生しません。
ただし、当たり前ですがオブジェクトロックを有効にしたデータそのもののストレージ料金は発生します。
そのため、データが削除できない期間が長くなればなるほど、ストレージコストがかかる点に注意してください。
S3オブジェクトロックの設定方法
前提条件
- バージョニング有効化必須
オブジェクトが変更されていないことを確認する必要があるため、バージョニング有効化が必須です。
設定手順(AWSマネジメントコンソール)
- AWSマネジメントコンソールで、S3コンソールでバケットを選択、または作成する。
- バケットのプロパティでバージョニングとオブジェクトロックを有効にする。
- 保存したいオブジェクトを作成したバケットにアップロード
※ マネジメントコンソール上では、アップロードと同時にオブジェクトロックの有効化はできません - アップロードしたオブジェクトの「プロパティ」を開き、「オブジェクトロック」を設定
- 保持モード(ガバナンスモード/コンプライアンス)を選択
- 保持期日を指定
- 必要に応じてリーガルホールドを設定
- 設定を保存
まとめ:オブジェクトロックでデータを守る
S3オブジェクトロックは、データの削除や変更を防ぎ、安全性を向上させてくれます。
項目 | 内容 |
---|---|
モード | ガバナンスモード / コンプライアンスモード |
用途 | 誤削除防止、コンプライアンス対応、バックアップ保護 |
コスト | 通常のS3ストレージ料金が発生 |
設定方法 | バケット作成時に有効化、オブジェクトごとに設定 |
ただし、設定を間違えると管理者でもオブジェクトを削除できなくなりますので、間違って設定しないように注意しましょう。

にほんブログ村

AWSランキング