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

Объектное блокирование (Object Locking) в системе Космос

Объектное блокирование (Object Lock) — это функция, которая защищает объекты (файлы) в хранилище от изменения или удаления в течение заданного периода времени. Она реализует модель WORM (Write Once Read Many), обеспечивая неизменяемость данных.

Параметры работы объектного блокирования

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

  1. Retention (временное удержание).
  2. Блокировка на определенный срок.

Блокировка на определенный срок имеет два режима:

  1. Governance mode (режим управления) — мягкий режим. Объект можно удалить при наличии прав администратора.
  2. Compliance mode (режим соответствия) — жесткий режим. Объект нельзя удалить даже используя права администратора.

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

Важно!

Legal Hold настраивается только на определенное количество дней. Retention можно настраивать с точностью до минуты.

Включение объектного блокирования

Функцию Object Lock можно активировать только при создании нового бакета, для этого нужно:

  1. Перейти на вкладку Бакеты раздела OnCloud PaaS -> S3.
  2. Нажать кнопку + Добавить, расположенную над таблицей со списком бакетов.
  3. На открывшейся странице установить размер бакета.
  4. Включить функцию Object Locking.
  5. Нажать на кнопку Создать.
Внимание!

Управление параметрами функции Object Lock будет доступно в консоли S3 после создания бакета. Сроки хранения и Legal Hold настраиваются через консоль S3.

Установка Retention (через консоль Linux)

Установка блокировки в режиме Governance

mc retention set governance <СРОК> oncloud/название_бакета/"важный_файл.расширение"

Проверка установленной блокировки

mc retention info oncloud/название_бакета/"важный_файл.расширение"

В клиентских программах, таких как S3 Browser для Windows, можно включить Legal Hold или указать срок удержания через контекстное меню объекта (нажав на правую кнопка мыши на файле)

Важно!

Управление параметрами Retention и Legal Hold в «OnCloud.Космос» осуществляется исключительно через консольные команды (CLI) или клиентское ПО, а не через веб-интерфейс

Удаление и восстановление объектов с Object Lock

При попытке удалить объект, защищенный Object Lock:

  • консоль вернет ошибку WORM protected;
  • в большинстве случаев будет создан маркер удаления (Delete Marker), который скрывает объект из списка, но сам объект (его версия) останется в хранилище и будет защищен от реального удаления;
  • при удалении версии с маркером удаления объект станет активным.

Визуальный эффект:

  • объект пропадает из списка активных;
  • в консоли объект отмечен как удаленный, но его исходная версия сохраняется и не поддается удалению.

Рекомендации по использованию:

  1. Базовое управление объектным блокированием выполнять на платформе OnCloud.Космос.
  2. Настройку параметров Retention и Legal Hold выполнять через консоль.
  3. Помнить, что объектное блокирование — необратимая операция в течение установленного срока.

Сценарий работы с Object Lock в S3-совместимом хранилище через консоль (Linux/Unix) и стороннее клиентское ПО (Windows)

Создание бакета c Object Lock

Для создания бакета с использованием объектного блокирования:

  1. Перейти на вкладку Бакеты раздела OnCloud PaaS -> S3.
  2. Нажать кнопку + Добавить, расположенную над таблицей со списком бакетов.
  3. На открывшейся странице установить размер бакета.
  4. Включить функцию Object Locking.
  5. Нажать на кнопку Создать.

Проверка (Linux):

mc stat oncloud/название_бакета

Для проверки включения функции Object Lock для объекта без установленного retention или legal hold, используются команды:

mc retention info mc legalhold info

в полученном ответе будет указано, что Object Lock не включён. Функция Object Lock работает только при наличии политики на объект.

Добавление защиты объекта

Для установки retention (Linux) введите команду:

mc retention set governance (срок блокировки) oncloud/название_бакета/"важный файл.расширение"

Для проверки используется команда:

mc retention info oncloud/название_бакета/"важный файл.расширение"

В Windows-клиенте (например, S3 Browser) — можно включить Legal Hold или указать срок удержания через контекстное меню объекта.

Удаление объектов при Object Lock

При попытке удалить объект с установленными retention/legal hold консоль вернёт ошибку WORM protected. В некоторых случаях будет создана еще одна версия файла с delete marker (DEL), при этом первая версия объекта останется.

В S3 Browser объект исчезнет из списка активных, но останется в предыдущих версиях.

Как найти удаленные объекты

Для поиска удаленного объекта нужно в консольной строке Linux/Unix ввести:

mc ls --versions oncloud/название_бакета/"важный файл.расширение"

В открывшемся списке отобразится строка DEL (delete marker). Старые версии объекта при этом останутся.

В Windows (S3 Browser) для поиска можно включить Show Versions, появятся все версии объекта. Delete marker будет показан отдельной строкой без размера.

Восстановление

Используя консоль удалить delete-marker по versionId командой:

mc rm --version-id <VID_DEL> oncloud/название_бакета/"важный файл. расширение"

В S3 Browser выделить delete marker и удалить его. После этого объект снова появится в списке активных.

Важно!

Удалить основную версию объекта не получится до истечения срока установленного для retention.

Особенности и рекомендации

  1. Активация на бакете ≠ защита объектов. Включение Object Lock на уровне бакета не защищает автоматически все объекты внутри. Для каждого объекта политику (Retention или Legal Hold) нужно назначать индивидуально.
  2. Удаленный объект не исчезает. Объект, защищенный Object Lock, не удаляется физически при обычном удалении. Он скрывается маркером удаления и остается доступным через механизм версионирования.
  3. Версионирование обязательно. Работа Object Lock тесно связана с версионированием объектов. Именно комбинация версий и маркеров удаления создает эффект «удалено, но защищено».
  4. Для базового управления следует использовать «OnCloud.Космос». Для включения функции на бакете используется личный кабинет.
  5. Для тонкой настройки следует использовать консоль. Управление сроками и режимами блокировок (Retention, Legal Hold) производится через CLI или сторонние клиенты.
  6. Объектное блокирование — необратимая операция в течение установленного срока. Перед применением нужно убедится в корректности настроек.