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

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

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

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

Когда объектное блокирование активировано для объекта или бакета (контейнера):

  • Объекты нельзя изменить или удалить до истечения срока блокировки
  • Поддерживаются два типа блокировок:
    • Retention (Временное удержание)
    • Блокировка на определенный срок

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

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

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

Важно!

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

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

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

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

Управление параметрами Object Locking будет доступно в консоли 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. Помните о необратимости. Объектное блокирование — необратимая операция в течение установленного срока. Убедитесь в корректности настроек перед применением.