ADG Оставить заявку
Блог Инфраструктура 5 мин чтения

Selectel Object Storage с Object Lock: мигрируем клиентские бэкапы с AWS S3 и тестируем immutable под 187-ФЗ

Мигрируем клиентские бэкапы с AWS S3 на Selectel Object Storage: совместимость rclone, Veeam v12 и Restic. Object Lock появился - проверяем на сценарий 187-ФЗ.

Контекст момента

Selectel расширяет S3-совместимое хранилище - корпоративные тарифы и поддержка Object Lock для immutable-сценариев

Ещё в феврале, когда мы сравнивали Yandex Cloud, VK Cloud и Selectel по задачам реального клиента, Selectel S3 выглядел как крепкий и дешёвый вариант для хранилища - без сюрпризов, зато и без Object Lock. Теперь Object Lock появился, Selectel анонсировал корпоративные тарифы, и это сразу дало нам повод закрыть два открытых вопроса: посмотреть, как идёт практическая миграция с AWS S3, и проверить, работает ли immutable-сценарий под требования 187-ФЗ.

Контекст: зачем вообще двигаться с AWS S3

Несколько клиентов у нас до сих пор использовали AWS S3 как endpoint для бэкапов - исторически, ещё до 2022 года. Юридически это серая зона: данные уходят за рубеж, для части клиентов это сначала было неудобством, потом превратилось в требование к миграции. Selectel - очевидный кандидат: уже знаком нам по прошлым проектам, данные в РФ, тарифы заметно ниже AWS при сопоставимых объёмах.

Стек у клиентов разный, поэтому смотрели на три инструмента: rclone для файловых бэкапов, Veeam Backup & Replication v12 (тут у нас уже был опыт direct-to-S3) и Restic для application-level бэкапов.

rclone: просто поменять endpoint

Это была самая предсказуемая часть. rclone работает с любым S3-совместимым хранилищем через s3 provider или через совместимый endpoint с --s3-provider Other. Selectel предоставляет стандартный S3 endpoint с подписями v4 - для rclone это означает что конфиг меняется буквально в двух строках:

[selectel]
type = s3
provider = Other
access_key_id = ...
secret_access_key = ...
endpoint = s3.storage.selcloud.ru

rclone sync прошёл без переписывания скриптов. Скорость записи - нормальная для облачного S3, скорость чтения при восстановлении - аналогично. Ничего захватывающего, что и хорошо.

Одна деталь: rclone при работе с объектами больше 5 GB использует multipart upload. На AWS это давно работает без вопросов, на Selectel мы проверили явно - тоже работает. Маленький чеклист, который стоит прогнать при любой такой миграции.

Veeam v12: direct-to-S3 плюс Object Lock

Здесь интереснее. Когда в феврале вышел Veeam v12 GA, у Selectel ещё не было Object Lock - и Governance, и Compliance режимы отсутствовали. Сейчас поддержка появилась, и мы добавили Selectel в тест.

Настройка object storage repository в VBR v12 на Selectel выглядит так же, как на любом S3-совместимом провайдере: добавляешь endpoint, указываешь bucket, включаешь Object Lock галочкой в wizard-е. Veeam при этом сам проверяет, что bucket создан с включённым Object Lock на уровне конфигурации bucket (это обязательное условие - Object Lock нельзя включить на уже существующем bucket, только при создании).

Результат: Governance-режим заработал. Задание создаёт объекты с retention lock на заданный период, попытка удалить объект из консоли Selectel возвращает ошибку пока lock активен. Expire policy в Veeam отрабатывает правильно: задание не трогает объект до истечения lock-периода, просто убирает из своей базы как устаревший.

Compliance-режим мы тоже поставили в тест - и тут небольшой нюанс: на момент нашего тестирования Selectel поддерживает Compliance, но документация по нему скуднее чем по Governance. На практике поведение правильное, но при настройке enterprise-сценария стоит уточнить у Selectel поддержки текущие ограничения - не потому что что-то сломано, а потому что продукт свежий.

Restic: репозиторий на S3

Restic умеет работать с S3 через встроенный backend - достаточно передать переменные окружения:

export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export RESTIC_REPOSITORY=s3:s3.storage.selcloud.ru/bucket-name

restic init и restic backup прошли без изменений в скриптах. Restic не использует S3 Object Lock напрямую - он строит свою структуру репозитория с pack-файлами и индексами, и immutability на уровне S3 здесь не даёт того же эффекта что в Veeam: Restic сам же управляет жизненным циклом объектов при restic forget --prune. Это не баг, это архитектурное решение Restic, просто надо понимать разницу.

Проверка под 187-ФЗ: immutable-сценарий

Один из клиентов попадает под 187-ФЗ (объекты КИИ), и там есть требование обеспечить целостность резервных копий в течение определённого срока - конкретику в публичный пост не пишем, но диапазон типовой: от 7 до 30 суток хранения с защитой от удаления.

Схема, которую мы отдали на согласование регулятору: Veeam v12 + Selectel Object Storage + Object Lock Compliance, retention на bucket = 30 дней. Логика простая: даже если учётные данные Veeam-сервера скомпрометированы, объекты с активным lock удалить нельзя без обращения к Selectel на уровне самого аккаунта. Это не абсолютная защита (компрометация самого аккаунта Selectel - отдельная история), но для требований 187-ФЗ в части защиты резервных копий от несанкционированного удаления - достаточный аргумент.

Регулятор документы принял - это важнее любой технической оценки.

Что не без вопросов

Трафик. Исходящий трафик из Selectel S3 за пределы их сети тарифицируется отдельно. При восстановлении данных в on-premise инфраструктуру это уже не копейки - считать надо. Внутри Selectel (например, восстановление в их же облачные VM) - бесплатно.

Мультирегион. Geo-репликация у Selectel есть в планах, но текущий Object Lock работает в рамках одного датацентра. Для клиентов, которым нужна копия бэкапа в другом регионе РФ с аналогичными гарантиями immutability, - пока надо строить двойную запись руками через rclone или аналог.

SLA по Object Lock. Продукт новый, публичного SLA специфично на Object Lock как фичу мы в документации не нашли. Для некритичных задач это нормально, для КИИ-клиентов - вопрос, который стоит поднять напрямую с их enterprise-командой.


В целом переход с AWS S3 на Selectel оказался технически менее болезненным, чем мы ожидали. Работающий Object Lock Compliance - это закрывает сценарий, который раньше требовал либо AWS, либо собственного MinIO. Для клиентов, у которых уже есть managed-инфраструктура в нашем сопровождении, миграция endpoint-а это полдня работы - остальное настройка и документация.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.