- tocdepth
2
Защита WORM от удаления и перезаписи
Сервис OBS поддерживает функцию WORM (write-once-read-many) для защиты объектов от удаления или изменения в течение заданного периода. WORM работает в режиме «compliance» как на уровне бакета, так и на уровне объекта. В этом режиме никто, даже корневой пользователь тенанта, не может перезаписать или удалить версию объекта, пока не закончился период защиты.
WORM защищает каждый объект, используя идентификатор его конкретной версии.
Если защита WORM настроена для определенной версии объекта, а на уровне бакета защита не настроена, то будет защищена только эта версия.
Предположим, что объект file.txt
с идентификатором версии 001
защищен WORM.
Если загрузить другой файл с тем же именем, будет создана новая версия 002
объекта file.txt
без настроенной функции WORM.
В этом случае версия 002
объекта file.txt
не защищена и ее можно удалить.
Ограничения и особенности
Чтобы использовать защиту от удаления и перезаписи, включите WORM во время создания бакета.
Когда вы активируете WORM для бакета, сервис OBS автоматически включает версионирование, отключить которое нельзя.
После активации WORM для бакета отключить эту функцию для бакета нельзя. Если вы больше не хотите ее использовать, можно отключить настройки WORM по умолчанию или создать новый бакет и использовать его.
Защита WORM на уровне бакета применяется только для объектов, которые вы загрузите в него после настройки этой защиты.
Настройки WORM для бакета распространяются на все объекты в этом бакете. Если объект защищен WORM одновременно на уровне бакета и на уровне объекта, приоритет имеют настройки WORM на уровне объекта.
Когда вы настраиваете WORM для версии объекта, защита применяется только к текущей версии этого объекта.
Правило жизненного цикла не может удалять объекты, защищенные WORM, но может перемещать их в другой класс хранения. Когда защита WORM перестанет действовать, объект будет удален по истечении срока, указанного в конфигурации жизненного цикла.
При удалении тенанта защищенные с помощью WORM объекты будут удалены без возможности восстановления.
Защиту WORM нельзя мигрировать.
Метаданные объекта, защищенного WORM, можно изменять.
Настроить WORM
Настроить защиту WORM можно только для тех бакетов, для которых функция WORM включена. Включить WORM можно только во время создания бакета.
Задать срок действия защиты от удаления можно как во время создания бакета, так и после.
Чтобы настроить защиту WORM для бакета:
Войдите в консоль управления Advanced:
В списке сервисов выберите Object Storage Service.
Выберите нужный бакет из списка.
На панели слева выберите Overview.
В секции Basic Configurations нажмите WORM Retention.
В Default Retention выберите Configure.
Доступный режим защиты — Compliance. В этом режиме никто не может удалить защищенные версии объектов, пока не закончился период защиты.
В Default Retention Period задайте период защиты по умолчанию. В течение этого периода защищенные версии объектов нельзя удалить.
Можно указать от 1 до 36 500 дней или от 1 до 100 лет.
Нажмите OK.
По умолчанию объекты наследуют настройки WORM от бакета, в который они загружаются. Вы можете задать для объекта собственные настройки WORM во время загрузки объекта в бакет.
Если на объект распространяется защита WORM на уровне бакета и на уровне объекта, то используются настройки WORM на уровне объекта.
Отключить настройку WORM
Отключить функцию WORM для бакета, где она была активирована, нельзя. Если вам больше не нужна защита WORM для бакета, вы можете отключить для него опцию Default Retention. В этом случае новые объекты не будут наследовать настройки защиты от бакета, а для существующих объектов продолжат действовать настройки защиты, заданные ранее.
Чтобы отключить Default Retention:
В списке сервисов выберите Object Storage Service.
Выберите нужный бакет из списка.
На панели слева выберите Overview.
В секции Basic Configurations нажмите WORM Retention.
В Default Retention выберите Skip.
Нажмите OK.
Продлить период защиты
Для объекта с настроенной защитой WORM можно увеличить период, в течение которого защищенную версию объекта нельзя удалить.
Период защиты можно только продлить, сократить его нельзя. Предположим, что 1 марта вы решили продлить защиту для версии объекта, которая действует до 30 марта. В этом случае вы можете указать 31 марта или более позднюю дату. Если же вы решили продлить период защиты для этого же объекта 1 апреля, когда она уже не действует, то можно указать текущую дату или более позднюю. Срок защиты истекает после 24:00 указанного дня.
Чтобы продлить период защиты WORM для объекта:
В списке сервисов выберите Object Storage Service.
Выберите нужный бакет из списка.
На странице Objects выберите объект, для которого хотите продлить защиту WORM.
На странице с информацией об объекте перейдите на вкладку Versions.
Найдите в списке версию объекта, для которой хотите продлить защиту, и в столбце Operation выберите .
В Extend To задайте дату, до которой версия объекта будет защищена от удаления.
Нажмите OK.
Удалить объекты при помощи правила жизненного цикла
Удалить можно только те объекты, для которых истек срок защиты WORM или она не настроена. Для автоматического удаления объектов из бакета, в котором включена защита WORM, вы можете настроить правило жизненного цикла.
Также можно вручную удалить объекты из бакета через консоль управления.
При помощи правила жизненного цикла можно удалять объекты, которые не обновлялись в течение определенного периода. Предположим, что 10 ноября вы решили создать правило, согласно которому объекты, которые не обновлялись дольше 1 дня, должны удаляться. В бакете есть файлы, которые в последний раз обновлялись 7 ноября, и файлы, которые обновлялись 10 ноября. При этом некоторые файлы находятся под защитой WORM до 30 ноября, а у некоторых защита уже истекла:
После настройки правила произойдет следующее:
Объект
0711-WORM-expired.log
, который последний раз обновлялся 7 ноября, будет удален 10 или 11 ноября в зависимости от того, когда запустится следующее сканирование системы.Объект
1011-WORM-expired.log
, который обновлялся 10 ноября, будет удален 11 или 12 ноября. Точная дата зависит от того, пройдет ли один день после обновления файла на момент сканирования системы.Объекты
0711-WORM-active.log
и1011-WORM-active.log
не будут удалены, так как для них действует защита WORM.
Чтобы настроить удаление объекта правилом жизненного цикла:
В списке сервисов выберите Object Storage Service.
Нажмите на нужный бакет.
На панели слева выберите Create.
и нажмитеВ Basic Information задайте следующие параметры:
Status — выберите Enable, чтобы включить правило жизненного цикла сразу после создания.
Rule Name — задайте название правила. Максимальное количество символов — 255.
Prefix — (опционально) укажите префикс к названию объектов.
Если префикс указан, правило будет действовать только на те объекты, в названии которых есть этот префикс. Префикс не может начинаться с косой черты (
/
) или содержать две косые черты подряд (//
), а также не может содержать следующие специальные символы:\
,:
,*
,?
,"
,<
,>
,|
.Если оставить это поле пустым, правило будет действовать на все объекты в бакете.
В Current Version (для текущей версии объектов) или в Historical Version (для предыдущих версий объектов) настройте следующее:
Delete Objects After (Days) — активируйте опцию и задайте нужное количество дней. OBS удалит объекты, которые не обновлялись дольше указанного срока.
Нажмите ОК.
Операции API
Настройками WORM можно управлять также через API. С помощью OBS API вы можете:
для Dev & Test