2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】S3 オブジェクトロックの「デフォルトの保持」を無効化したときの挙動

Last updated at Posted at 2025-08-26

はじめに

S3 オブジェクトロックには、「デフォルトの保持」という設定項目があり、有効化するとデフォルトの保持モード(ガバナンス、コンプライアンス)やデフォルトの保持期間を設定できます。

今回は、この「デフォルトの保持」を「無効」にした場合のオブジェクト削除時の挙動を確認しました。
image.png

経緯

お客様より、「オブジェクトロックを有効化しているのですが、デフォルトの保持は無効にしています。この状態だと、オブジェクトは削除できてしまうのでしょうか?」という問い合わせを受けたため、調査することになりました。

いきなり結論

AWS CLI から実行する場合は、s3:BypassGovernanceRetention 権限がなくても削除可能ですが、S3 コンソールから削除するには、s3:BypassGovernanceRetention 権限が必要です。

※s3:BypassGovernanceRetention:ガバナンスモードで保護されているオブジェクトを上書き、削除する許可

オブジェクトロックと権限の関係

・バケットの設定でオブジェクトロックを有効化し、「デフォルトの保持」を無効化した場合、バケットにオブジェクトをアップロードしても「保持モード」が適用されないため、オブジェクトはロックされません。

・オブジェクトがロックされていないため、s3:BypassGovernanceRetention 権限がないユーザーでもCLIからは削除できます。ところが、S3 コンソールから削除するにはs3:BypassGovernanceRetention 権限が必要となります。

公式ドキュメントの記述

公式ドキュメントには、以下のように記載されています。
S3 オブジェクトロックの仕組み

Amazon S3 コンソールにはデフォルトで、x-amz-bypass-governance-retention:true ヘッダーが含まれています。ガバナンスモードで保護されているオブジェクトを削除する場合、s3:BypassGovernanceRetention アクセス許可があれば、そのオペレーションは正常に完了します。

"ガバナンスモードで保護されているオブジェクトを削除する場合、"とありますが、「ガバナンスモード」でオブジェクトがロックされていなくても、「デフォルトの保持」を「無効」にした場合、S3 コンソールから削除するにはこの権限が必要です。これは現状のS3コンソールの仕様です。(2025年8月時点)

検証

オブジェクトロックを有効化、デフォルトの保持を無効にしたバケットを作成し、そこにファイルをアップロードします。
image.png

AmazonS3FullAccess権限を持つユーザーで、オブジェクト(バケットにアップロードしたファイル)を削除してみます。
※バージョンの表示を「オン」で実行
image.png
                   ⇩
image.png
⇒ 完全に削除されました。

次に先程のユーザーと同じ権限を持つユーザーに以下のとおり、s3:BypassGovernanceRetentionを明示的に拒否したポリシーをアタッチします。
image.png

このユーザーで同様に削除してみます。
【マネジメントコンソールで削除した場合】
※バージョンの表示を「オン」で実行
image.png
                   ⇩
image.png
⇒ 「アクセスが拒否されました」となり、削除できないことが確認できました。

【CLIで削除した場合】
同じユーザーで、CLIから削除してみます。
image.png
                    ⇩
image.png
                    ⇩
image.png
⇒ 完全に削除されました。

まとめ

オブジェクトロックを有効化し、かつ、デフォルトの保持が無効なバケットにアップロードされたオブジェクトは、オブジェクトがロックされていない状態です。そのため、s3:BypassGovernanceRetention 権限がないユーザーでもAWS CLI から削除できますが、S3 コンソールから削除するには、s3:BypassGovernanceRetention 権限が必要です。これは現時点(2025年8月時点)でのS3 コンソールの仕様になります。

このように、S3 オブジェクトロックにおいては、CLIから実行した場合とS3 コンソールから実行した場合で、動作仕様が異なる点にご注意ください。

最後までお読みいただきありがとうございました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?