Комментарий пользователя
Мы храним резервные копии баз данных в вашем S3-хранилище. Недавно у коллег вирус-шифровальщик добрался до бэкапов. Как нам защитить свои архивы в S3 так, чтобы их нельзя было ни изменить, ни удалить даже при компрометации учетных данных?
Ответ специалиста
Привет, Алексей! Безопасность бэкапов — действительно критичный вопрос, и опасения абсолютно оправданы. Современные вирусы-шифровальщики умеют искать S3-ключи в конфигурационных файлах серверов, чтобы целенаправленно уничтожить резервные копии перед атакой на основную инфраструктуру.
Для гарантированной защиты от подобных сценариев в S3 используется механизм Object Lock. Он реализует отраслевую концепцию WORM (Write Once, Read Many — пишем единожды, читаем многократно). Объект записывается один раз, после чего его содержимое физически невозможно изменить или удалить в течение заданного срока.
Для вашей задачи — защита при утечке кредов — критически важно выбрать правильный режим удержания, его еще называют retention mode. Их существует два.
- GOVERNANCE (управление) — защищает объекты от случайного удаления обычными пользователями или кривыми скриптами. Однако, если злоумышленник получит ключи с административными привилегиями, он сможет обойти эту блокировку через право
s3:BypassGovernanceRetentionи уничтожить бэкап. - COMPLIANCE (соответствие требованиям) — именно этот режим нужен вам. При его использовании снять блокировку, изменить или удалить объект до истечения заданного срока не сможет абсолютно никто — ни администратор, ни владелец аккаунта, ни даже техническая поддержка провайдера.
Как это работает на практике
Для работы механизма в S3-бакете обязательно должно быть включено версионирование объектов.
В настройках бакета вы активируете Object Lock и устанавливаете политику по умолчанию: режим COMPLIANCE и срок удержания — например, 14 или 30 дней, в зависимости от регламента хранения бэкапов.
Важно
Параметры Object Lock применяются только на новые объекты которые будут загружены в бакет и не устанавливаются на уже существующие объекты.
Система резервного копирования загружает свежий дамп базы данных именно в этот бакет.
С этого момента бэкап «цементируется». Если шифровальщик попытается загрузить поверх него зашифрованную версию, S3 просто создаст новую, также зашифрованную версию файла, но оригинальный архив останется нетронутым и доступным для скачивания. Если же вирус попытается послать команду на удаление — S3 отклонит операцию.
Таким образом, даже при полной компрометации сервера и учетных данных, всегда будет гарантированный «чистый» бэкап для восстановления.
Исчерпывающую инструкцию вы найдете в нашей статье «Как защититься от удаления в S3 с помощью Object Lock / WORM». В ней приведено множество примеров от создания сервисного пользователя до работы с бакетами и настройкой политик.