Резервные копии часто становятся мишенью злоумышленников при атаках с вымогательством. Атакующие, получив доступ к инфраструктуре, сначала ищут и уничтожают хранилища бэкапов, а затем шифруют рабочие системы. Если копии хранятся на том же сервере, что и основной сервис, или доступны через те же административные учётки, что и продакшн, злоумышленник может удалить их легитимными токенами. Для защиты от таких сценариев используется механизм WORM (Write Once, Read Many) через функцию Object Lock в объектных хранилищах. Она делает объекты неудаляемыми и перезаписываемыми до истечения заданного срока хранения, предотвращая удаление данных даже при наличии валидных прав администратора.
В рамках Object Lock реализуются три основных режима: Governance, Compliance и Legal Hold, которые различаются по уровню защиты и условиям снятия блокировки. Режим Governance позволяет уполномоченному пользователю досрочно снять защиту, что подходит для защиты от случайных ошибок, но не гарантирует сохранность данных при компрометации администратора. Режим Compliance обеспечивает полную неизменяемость до истечения срока хранения, и никто, включая владельца проекта, не может удалить или изменить объект. Legal Hold устанавливает бессрочную блокировку, действующую до ручного снятия уполномоченным лицом, и используется для аудита и судебных разбирательств.
Выбор режима блокировки и срока хранения происходит при создании бакета и изменить его позже нельзя. Ошибка в настройке срока для режима Compliance может привести к переплате за хранение, так как удалить лишние данные невозможно. Важно учитывать, что блокировка применяется только к новым копиям, записываемым после её включения, а старые данные останутся в обычном бакете. Также стоит помнить, что Object Lock не влияет на скорость восстановления данных: при использовании инкрементальных копий процесс развертывания может занять больше времени из-за необходимости последовательного применения всех инкрементов после полной копии.