Перейти к основному содержимому

Object Lock: защита от удаления

S3 Object Lock защищает объекты от удаления и изменения на заданный срок. Механизм работает на уровне хранилища: обойти его нельзя ни ключами доступа, ни правами администратора тенанта.

Зачем это нужно​

Защита от программ-вымогателей. Шифровальщики целенаправленно уничтожают резервные копии и архивы. Заблокированный объект удалить невозможно, даже располагая действующими ключами доступа.

Защита от действий изнутри. Ни ошибочное, ни намеренное удаление не пройдёт — ни со стороны ваших администраторов, ни со стороны нашей поддержки.

Соответствие требованиям. Там, где регулятор требует хранить данные неизменными заданный срок, Object Lock даёт технически подтверждаемую неизменность.

Два режима​

РежимКто может снять защиту досрочноГде доступен
GovernanceПользователь со специальными правами может снять блокировку или сократить срокХранилище общего пользования и частные инсталляции
ComplianceНикто. Срок нельзя сократить, объект нельзя удалить до его истеченияТолько частные инсталляции

Governance подходит там, где нужна защита от случайностей, но допустима управляемая отмена. Compliance — там, где отмена недопустима принципиально.

примечание

В хранилище общего пользования режим Compliance отключён на уровне платформы: попытка задать его возвращает 400 InvalidArgument — Compliance mode has been disabled by your grid administrator. Это осознанное ограничение общего контура — необратимая блокировка объектов доступна в частной инсталляции.

Помимо срока хранения объект можно поставить на бессрочное удержание (Legal Hold). Оно не привязано ко времени: удержание включается и снимается отдельной операцией и действует, пока не будет снято.

aws s3api put-object-legal-hold --bucket BUCKET --key OBJECT \
--legal-hold Status=ON --endpoint-url https://s3-msk.itgstore.io

Пока удержание включено, объект нельзя удалить независимо от того, истёк ли срок retention. Механизм рассчитан на разбирательства и проверки, когда срок хранения заранее неизвестен.

Связь с версионированием​

Object Lock работает поверх версионирования бакета: блокировка применяется к конкретной версии объекта. Поэтому версионирование должно быть включено на бакете, и включается оно до начала работы с блокировками.

Что учесть​

  • Object Lock включается на уровне бакета и настраивается при его создании.
  • Срок хранения задаётся в правилах и применяется к версиям объектов.
  • Объём под заблокированные данные планируйте с запасом: освобождение места происходит только после истечения срока.
  • Проверяйте не только запись, но и чтение: неизменяемость гарантирует сохранность объекта, но не заменяет проверку того, что данные пригодны к использованию.

Документация вендора​

Поведение Object Lock в StorageGRID описано в документации NetApp.