S3バージョニング
バケットにあるオブジェクトのバージョンidを知るには
aws s3api list-object-versions --bucket <bucket-name>
オブジェクトロックを理解する
Default retensionの設定
- bucket作成時に設定可能、変更も可能
- consoleで修正可能
- consoleからbucketにObjectを入れるときは必ずこの設定になる
CLIでput-objectで設定する
- オブジェクトごとに設定できる
- 指定しないとDefaultになる
Legal Hold
- 削除不可になる
- ON/OFFを変えられる
- オブジェクトの上書きはできる。前のは前のバージョンとして残る。
以下では、sample-lock.txt というファイルに対して設定する
ON/OFFを変える
aws s3api put-object-legal-hold --bucket <bucket-name> --key sample-lock.txt --legal-hold Status=ON
ON/OFFを調べる
aws s3api get-object-legal-hold --bucket <bucket-name> --key sample-lock.txt
{
"LegalHold": {
"Status": "OFF"
}
}
- bucket全体に同時にセットすることはできない
- オブジェクトに対してなので, 都度設定する
ストレージクラスの変更はできる?
できる。コピーが作られる、そのコピーにはObject Lock設定はされていない。
コピーしない場合は、Lifecycle ruleを使う
- This action creates a new version of the object with updated settings and a new last-modified date. You can change
the storage class without making a new copy of the object using a lifecycle rule.
- Copied objects will not retain the Object Lock settings from the original objects.
- Objects copied with customer-provided encryption keys (SSE-C) will fail to be copied using the S3 console. To copy
objects encrypted with SSE-C, use the AWS CLI, AWS SDK, or the Amazon S3 REST API.
消せないけど上書きできる
Object Lockはversionに対してセットされる。
つまり、Object(versionなし)自体は削除できる。DeleteMarkerがつく。
このDeleteMarkerは削除できる→Objectは戻る
aws s3api put-object --bucket <bucket-name> --key sample-lock.txt --body sample-lock.txt --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2021-07-10"
retensionは100年まで可能。ポリシーで最大10日等に変更する
Setting retention limits
https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-retention-limits
S3 Object Lock追加されたのは November 26, 2018
Amazon S3 now offers Object Lock functionality that provides Write Once Read Many protections for Amazon S3 objects.