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

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.