Object Lock хранит объекты в режиме WORM (write once, read many — однократная запись, многократное чтение): заблокированный объект нельзя удалить или перезаписать до окончания срока хранения. Это защищает резервные копии от случайного удаления и от шифровальщиков.
В примерах используется AWS CLI, настроенный для UzCloud. Замените my-bucket на имя своего бакета.
Важно
Object Lock можно включить только при создании бакета, и отключить его потом нельзя. Он автоматически включает версионирование.
Создание бакета с Object Lock
В консоли: при создании бакета включите Bucket Versioning и Object Locking.
Через AWS CLI:
aws s3api create-bucket --bucket my-backups --object-lock-enabled-for-bucket
Режимы хранения
- GOVERNANCE — объекты защищены, но пользователь со специальным правом может снять блокировку с
--bypass-governance-retention. Подходит для большинства случаев. - COMPLIANCE — ни один пользователь не может удалить объект или сократить срок до его окончания, включая владельца аккаунта.
Внимание
В режиме COMPLIANCE заблокированные объекты хранятся и оплачиваются до конца срока, даже если они больше не нужны. Начинайте с GOVERNANCE и коротких сроков.
Срок хранения по умолчанию
Все новые объекты в бакете будут блокироваться на указанный срок:
aws s3api put-object-lock-configuration --bucket my-backups \
--object-lock-configuration \
'ObjectLockEnabled=Enabled,Rule={DefaultRetention={Mode=GOVERNANCE,Days=30}}'
aws s3api get-object-lock-configuration --bucket my-backups
Блокировка отдельного объекта
aws s3api put-object-retention --bucket my-backups --key db/2026-11-01.sql.gz \
--retention 'Mode=GOVERNANCE,RetainUntilDate=2026-12-31T00:00:00Z'
aws s3api get-object-retention --bucket my-backups --key db/2026-11-01.sql.gz
Legal hold блокирует объект бессрочно — до снятия блокировки:
aws s3api put-object-legal-hold --bucket my-backups --key db/2026-11-01.sql.gz \
--legal-hold Status=ON