Обзор
Блокировка версии объекта (object lock) — механизм, который защищает версию объекта от удаления или перезаписи. Блокировку можно установить на определенный срок либо бессрочно.
Блокировка версии может использоваться в ситуациях, в которых нужно обеспечить неизменяемость данных: соблюдение отраслевых и законодательных требований, реализация политик хранения, юридическое удержание и т.п.
Блокировка версии основана на принципе WORM (Write Once Read Many). Защищенная с помощью блокировки версия не может быть ни удалена, ни изменена, при этом загрузка новых версий объекта никак не ограничивается.
Блокировку можно включить только в бакетах с включенным версионированием. При включении указываются настройки, которые будут применяться ко всем новым объектам.
Также вы можете включить блокировку для конкретной версии любого ранее загруженного объекта.
Виды и режимы блокировки
Блокировка версии объекта (object lock) может быть временной или бессрочной.
Временная блокировка (retention)
Временная блокировка действует до заданной даты и времени. У нее есть два режима:
Управляемый (governance mode).
Блокировку в управляемом режиме может установить пользователь с ролью
storage.bucket.admin. Пользователи с другими ролями не могут ни удалить, ни перезаписать заблокированную версию. При этом пользователи с рольюstorage.bucket.adminмогут:- изменить или удалить заблокированную версию;
- изменить срок блокировки;
- отменить блокировку.
Все эти действия нужно явно подтверждать: например, запрос к API на изменение версии должен обязательно включать заголовок
Х-Amz-Bypass-Governance-Retention: true.Строгий (compliance mode).
Блокировку в строгом режиме может установить пользователь с ролью
storage.bucket.admin. Обойти или снять ее невозможно, можно только продлить.
Бессрочная блокировка (legal hold)
Бессрочную блокировку может устанавливать и снимать только пользователь с ролью storage.bucket.admin. После этого версию объекта нельзя ни удалить, ни изменить, пока блокировка не будет снята.
Внимание
Бессрочная блокировка всегда имеет приоритет: если одновременно с ней действует временная блокировка, перезаписать или удалить версию объекта будет невозможно.
Сравнение видов и режимов блокировки
Критерий | Блокировка в управляемом режиме (governance mode) | Блокировка в строгом режиме (compliance mode) | Бессрочная блокировка (legal hold) |
|---|---|---|---|
| Кто может установить блокировку? | Пользователь с ролью storage.bucket.admin | Пользователь с ролью storage.bucket.admin | Пользователь с ролью storage.bucket.admin |
| Можно ли удалить или изменить объект? | Да (для роли storage.bucket.admin) | Нет | Нет |
| Кто может удалять или изменить объект? | Пользователь с ролью storage.bucket.admin | Никто | Никто |
| Можно ли снять блокировку раньше срока? | Да (для роли storage.bucket.admin) | Нет | — |
| Можно ли продлить блокировку? | Да (для роли storage.bucket.admin) | Да (для роли storage.bucket.admin) | — |
| Кто может снять блокировку? | Пользователь с ролью storage.bucket.admin | Никто | Пользователь с ролью storage.bucket.admin |