Версия 1.8.2 «+Альянс Бэкап» умеет защищать копии Яндекс 360 через S3 Object Lock: удалить или перезаписать их нельзя, пока идёт срок защиты. Разбираю, что нужно от бакета и ключей доступа и чем отличаются режимы Governance и Compliance.
Резервная копия помогает, пока цела она сама.
В версии 1.8.2 «+Альянс Бэкап» для Яндекс 360 умеет защищать копии средствами самого S3-хранилища. Пока идёт заданный срок, хранилище не даст удалить или перезаписать объекты копии — ни через приложение, ни напрямую, ни с украденными ключами. В режиме Governance запрет может снять только тот, у кого есть отдельное право на обход защиты.
Статья нужна, чтобы решить, включать ли защиту у себя. Вы проверите бакет и права ключей. Выберете режим и срок защиты. Решите, что защищать: только архивные копии или обычные вместе с цепочкой. И заранее прикинете, что станет с объёмом бакета и со счётом провайдера. Начать можно прямо сейчас. В приложении, в разделе «Подключение» → «S3 хранилище», есть кнопка «Проверить WORM», и результат она показывает значком у бакета.
Коротко
- «+Альянс Бэкап» 1.8.2 делает неизменяемые копии (WORM) на S3 Object Lock: пока идёт срок защиты, объекты копии в бакете не удаляются и не перезаписываются. В режиме Governance запрет снимает только обладатель особого права на обход.
- Бакету нужна поддержка блокировки объектов, ключам доступа к S3 — права
s3:PutObjectRetentionиs3:GetObjectRetention. Без этих двух прав копия создаётся без защиты. - Режим и срок в днях фиксируются при создании копии. Защищаются копии, создаваемые после включения, а изменённые в политиках режим или срок действуют только на новые копии. Сократить срок нельзя, а в режиме Compliance удалить копию раньше не сможет никто.
- Пока срок не истёк, защищённую копию нельзя удалить из приложения или перенести в другое хранилище; в Governance выход один — консоль провайдера и отдельное право на обход. Глубина хранения и очистка на такую копию не действуют, и объём в бакете только растёт.
- Сейчас неизменяемые копии есть во всех трёх тарифах «+Альянс Бэкап». По умолчанию защищаются архивные копии, а опция архивного хранения недоступна на «Старте», платная на «Бизнесе» и включена в «Корпоративном».
Что такое неизменяемая копия
Неизменяемая копия — это резервная копия, которую само S3-хранилище не даёт удалить или изменить, пока не кончится заданный срок. В «+Альянс Бэкап» такая защита появилась в версии 1.8.2 и работает на технологии S3 Object Lock. Пока она действует, объект копии в бакете не удалить и не перезаписать. Не поможет ни приложение, ни прямой доступ к хранилищу, ни украденные ключи S3. В режиме Governance есть оговорка: запрет не остановит того, у кого есть особое право на снятие защиты.
Когда неизменяемые копии нужны:
- шифровальщик или злоумышленник добрался до учётной записи или до ключей хранилища;
- сотрудник удалил копии случайно или по ошибке;
- регулятор или внутренняя политика требуют хранить данные неизменными заданный срок;
- данные уволенных сотрудников нужно долго держать в архиве, и удалить этот архив раньше срока не должны.
Я бы примерял функцию к своей организации именно по этому перечню. Если ни один пункт не про вас, я бы её не включал: защита стоит денег у провайдера хранилища.
Начните с бакета: умеет ли он блокировать объекты
Неизменяемая копия в «+Альянс Бэкап» живёт только в бакете с блокировкой объектов (S3 Object Lock). Блокировку включают при создании бакета, на стороне провайдера хранилища. Бакет у вас уже создан? Спросите провайдера S3, что с ним можно сделать. Я бы задал этот вопрос до всего остального.
Проверить бакет можно в самом приложении. Откройте «Подключение» → «S3 хранилище» и нажмите у нужного подключения кнопку «Проверить WORM». Приложение запишет в бакет тестовый защищённый объект и убедится, что удалить его нельзя. Итог появится значком у бакета: «WORM», «Нет WORM» или «WORM не проверен». Нужен первый.
Подключение с несколькими бакетами проверяется строже. Защиту можно включить, только когда её поддерживают все включённые бакеты. Когда в одном бакете кончается место, копирование продолжается в следующем, и защищена должна быть каждая его часть. Поэтому значок «WORM» нужен у каждого включённого бакета подключения. Один бакет без блокировки не даст включить защиту на всём подключении.
Отдельно посмотрите на права ключей доступа к S3. Для неизменяемых копий ключам нужны два права: s3:PutObjectRetention и s3:GetObjectRetention. Если их нет, копия создастся, но защита на неё не наложится. То есть сама по себе появившаяся копия ничего не доказывает: защита могла и не лечь.
Как включить защиту
Защиту в «+Альянс Бэкап» включает пользователь с уровнем доступа «Полные права». Этот уровень нужен и для политик компании, и для подключений S3. Порядок такой:
- «Настройки» → «Политики компании» → «Неизменяемые копии (WORM)»: включить «Разрешить защиту копий от удаления». Это общий переключатель для организации.
- В этом блоке политик выбрать режим и срок защиты. Здесь же настраиваются защита обычных копий и шаг продления.
- «Подключение» → «S3 хранилище»: включить «Защищать копии» на нужном подключении.
- Для отдельной архивной копии защиту можно включить при запуске. В окне «Запустить копирование» с типом «Архивное хранение» отмечается «Защитить копию от удаления (WORM)».
После включения переключателя «Защищать копии» в «+Альянс Бэкап» защищаются копии, которые создаются в этом подключении. Правка режима или срока в политиках действует только на новые копии.
Governance или Compliance: кто сможет удалить копию раньше срока
Режим защиты в «+Альянс Бэкап» выбирают из Governance и Compliance. Главное различие между ними, на мой взгляд, — есть ли у защиты запасной выход.
| Governance | Compliance | |
|---|---|---|
| Удаление через приложение до конца срока | нельзя | нельзя |
| Удаление с похищенными ключами S3 | нельзя, если у похитителя нет особого права на снятие защиты | нельзя |
| Аварийное удаление копии раньше срока | в консоли провайдера, при отдельном праве на обход | нет: удалить копию не может никто |
В Governance приложение не даст удалить копию раньше срока. Досрочно это делается только в консоли вашего облачного провайдера и только с отдельным правом на обход защиты. Compliance жёстче. Там удалить копию до истечения срока не сможет никто: ни вы сами, ни мы, ни поддержка вашего облачного провайдера. Сомневаетесь в выборе — начните с Governance.
Про Governance добавлю совет. Обходной путь идёт через отдельное право в консоли провайдера. Это право я бы не выдавал ключам, которые отданы приложению бэкапа: иначе вор такого ключа получит заодно и возможность снять защиту. Самому приложению для неизменяемых копий нужны только s3:PutObjectRetention и s3:GetObjectRetention. Права на обход среди них нет.
Срок защиты: выбирается один раз
Срок защиты в «+Альянс Бэкап» задаётся в днях, и передумать потом не выйдет. Режим и срок фиксируются в момент создания копии. Поменяете настройки в политиках компании — изменение коснётся только новых копий. Сократить срок у уже защищённой копии нельзя.
Фактический срок бывает длиннее заданного. Одна причина — настройки самого бакета у провайдера. У бакета бывает свой срок защиты по умолчанию (Default Retention). Тогда хранилище ставит его на каждый записанный объект и на настройки приложения не смотрит. Перед включением загляните в настройки бакета и проверьте, не стоит ли там такой срок. Другая причина — округление у обычных копий. Их защиту не продлевают после каждого копирования, а округляют срок вверх до значения настройки «Шаг продления защиты». С маленьким шагом выходит больше операций с хранилищем, с большим вы дольше оплачиваете лишний срок хранения.
У архивной копии срок хранения не может быть короче срока защиты. Если он короче, запуск отклоняется с подсказкой увеличить срок хранения или уменьшить срок защиты.
До какого дня защищена конкретная копия, видно в дереве копий приложения: там у защищённой копии стоит дата окончания защиты.
Какие копии защищать: архивные или всю цепочку обычных
По умолчанию «+Альянс Бэкап» защищает только архивные копии: они самодостаточны.
Обычная копия входит в цепочку, у которой есть первая полная копия. Поэтому при включённой настройке «Защищать обычные копии» под защиту вместе со свежей копией попадает вся её цепочка, включая первую полную. Раз в несколько часов приложение проверяет цепочки и продлевает защиту старых копий до срока самой свежей.
Цепочка обычных копий под защитой копится в бакете целиком. Пока по расписанию появляются свежие копии, срок защиты старых звеньев всё время отодвигается вперёд. Первая полная копия остаётся под защитой, пока цепочка растёт. Место закладывайте сразу под всю цепочку: под защитой она не чистится.
Выбор я бы делал по задаче. Сохранить состояние данных на конкретный момент, например ящик и диск уволенного сотрудника, — хватит защиты архивных копий. Закрыться от шифровальщика или злоумышленника так, чтобы пережила атаку вся свежая история, — нужна защита обычных копий. И учтите тариф: архивное хранение в «Корпоративном» включено, для «Бизнеса» это платная опция, а на «Старте» её нет вовсе. На «Старте» защите по умолчанию накрывать нечего, так что там я бы начал с защиты обычных копий. Цены и состав тарифов — на странице продукта.
Что защищённая копия запрещает делать вам самим
Защищённую копию в «+Альянс Бэкап» не удалить до конца срока — ни вручную, ни через корзину.
Защищённую копию нельзя перенести в другое хранилище до конца срока. Из исходного бакета её не удалить, а на новом месте защита не сохранится.
Глубина хранения и очистка хранилища к защищённым копиям не применяются. Убрать из такой копии данные отдельного пользователя тоже нельзя. Пока действует защита, объём в хранилище только растёт.
Объём защищённых копий в бакете растёт ещё и за счёт версий. Бакет с блокировкой объектов всегда хранит версии объектов. Занятый объём приложение считает по всем версиям, и столько же вы оплачиваете провайдеру. Наложение и продление защиты идут отдельными запросами к хранилищу, по одному на каждый объект копии, и эти запросы провайдер тоже тарифицирует. В счёте провайдера, выходит, две статьи: место под все версии и запросы на каждый объект.
После окончания подписки в «+Альянс Бэкап» действует грейс-период 30 дней, затем бэкапы удаляются физически. Стираются и записи о копиях в приложении, и объекты копий в S3 — в вашем собственном бакете тоже. Хранилище не даст стереть объекты под WORM до конца срока защиты, поэтому они удаляются уже после него.
Архивная копия «+Альянс Бэкап», у которой срок хранения истёк раньше срока защиты (например, из-за окончания подписки), удаляется из приложения и становится недоступной для любых операций. Её данные в бакете очищаются автоматически, когда срок защиты кончится. Ключ шифрования отдельно не хранится: он удаляется вместе с записью копии, и восстановить данные после этого нельзя. От такой архивной копии до конца срока защиты остаются объекты в бакете: место под ними вы оплачиваете провайдеру, а самой копии в приложении уже нет. Поэтому срок защиты я бы не ставил длиннее срока, на который вы готовы оплачивать подписку.
Уведомление об удалении бэкапов после конца подписки «+Альянс Бэкап» присылает на почту каждый день, начиная за 7 дней до окончательного удаления. Администратор получает его в любом случае. Другим сотрудникам оно приходит, если у них в профиле, в карточке «Уведомления», включена рассылка.
Срок кончился: копия сама не исчезнет
Окончание срока защиты в «+Альянс Бэкап» ничего не удаляет. Защита только запрещает удалять данные, сама она их не трогает. После срока копия остаётся в хранилище и занимает место, пока вы не удалите её сами. При удалении приложение стирает все версии объектов копии, и место в бакете освобождается.
Кроме ручного удаления, копию после срока защиты убирают ещё несколько механизмов. Архивная копия со сроком хранения удалится сама по его окончании, как и без защиты. После окончания подписки бэкапы удаляются по истечении 30 дней грейс-периода. Отзыв лицензии действует по типам копий: обычные копии сотрудника удаляются автоматически через 30 дней, архивные сохраняются до окончания своего срока хранения.
При действующих подписке и лицензии обычная копия с истёкшей защитой лежит в бакете, пока её не удалят вручную. Если её не удалить, место под ней продолжает оплачиваться. Дата окончания защиты стоит в дереве копий, и я бы сразу поставил на неё напоминание.
Если защиту наложить не удалось
Бывает, что копия в «+Альянс Бэкап» создана, а защиты на ней нет. Если наложить защиту не удалось, копия сохраняется, но остаётся удаляемой. В журнал при этом записывается критическое предупреждение.
Поведение приложения при недоступной защите зависит от способа запуска. При запуске по расписанию копия создаётся без защиты и с предупреждением. При ручном запуске такая копия не запустится вовсе.
После включения защиты я бы проверил две вещи. Нет ли в журнале критических предупреждений. И есть ли дата окончания защиты у первой копии, созданной после включения: у архивной, а если включена защита обычных копий, то и у обычной.
Что ещё вошло в версию 1.8.2
Кроме неизменяемых копий, версия 1.8.2 «+Альянс Бэкап» принесла ещё несколько изменений. Иду от того, что с ними можно сделать.
В профиле появилась карточка «Активные сессии». В ней собраны все входы в приложение под вашей учётной записью. По каждому видно, с какого устройства и браузера он сделан, из какой страны и с какого IP-адреса и когда сессия была активна в последний раз. Ваш нынешний вход помечен «Это устройство». Любую другую сессию закрывает кнопка «Завершить», все разом, кроме текущей, — «Завершить остальные». Карточка есть у любого пользователя. Не узнаёте устройство или страну в списке — завершайте сессию.
Скачивание устроено так: архив ZIP собирается и расшифровывается прямо в браузере, архивы больше 4 ГБ поддерживаются. В версии 1.8.2 мы переработали сборку архива, и с большими объёмами она работает стабильнее. Для больших архивов берите актуальную версию Chrome, Edge или Яндекс Браузера и держите достаточно свободного места на диске.
Найти ответ самому стало проще. В разделе «Помощь» появились документация по продукту с поиском, обновлённые частые вопросы и раздел «Что нового». Про неизменяемые копии там есть подробный разбор функции и отдельный блок в частых вопросах. Что менялось от версии к версии, собрано в «Что нового».
И ещё: поиск и фильтр по дате теперь учитывают часовой пояс, а история переносов хранилища расширена.
Следом вышла версия 1.8.3. В ней уточнены правила удаления копий с неизменяемой защитой, и в этой статье они описаны уже по-новому.
Частые вопросы
Можно ли включить WORM на бакете, где уже лежат копии «+Альянс Бэкап»?
Смотря что умеет бакет. Блокировка объектов включается при создании бакета у провайдера, так что про существующий бакет спросите провайдера S3. Проще всего нажать «Проверить WORM» у подключения и посмотреть значок у бакета: «Нет WORM» значит, что с этим бакетом защита не заработает. На подходящем бакете включите сначала Governance с коротким сроком и откройте дерево копий: у каждой защищённой копии там стоит дата окончания защиты. Так вы увидите, что именно попало под защиту, ещё до Compliance и длинных сроков.
Можно ли убрать из защищённой копии данные одного сотрудника?
Нет, пока идёт срок защиты. Из защищённой копии «+Альянс Бэкап» данные отдельного пользователя не удаляются. Раньше срока в режиме Governance убирают только копию целиком, и лишь через консоль облачного провайдера с особым правом. В Compliance нельзя и этого.
Я поставил слишком длинный срок. Можно его уменьшить?
Нет. Срок у уже защищённой копии «+Альянс Бэкап» не сокращается ни в одном режиме. Изменение срока в политиках компании подействует только на новые копии. Старую копию в Governance удаляют раньше срока только через консоль провайдера, если у вас есть право на обход защиты. В Compliance такого выхода нет.
Что будет с защищёнными копиями, если не продлить подписку?
Через 30 дней грейс-периода бэкапы «+Альянс Бэкап» удаляются и из приложения, и из хранилища. Объекты копий под WORM остаются в бакете до конца срока защиты, и всё это время вы оплачиваете под них место у провайдера. А вот архивной копией воспользоваться уже не получится: если срок её хранения из-за конца подписки истёк раньше срока защиты, из приложения она удаляется, и никаких операций с ней не сделать. Письмо о предстоящем удалении приходит за 7 дней, затем ежедневно: администратору — в любом случае, другим сотрудникам — если в профиле включена рассылка.
В каком тарифе «+Альянс Бэкап» есть неизменяемые копии?
Сейчас во всех трёх: «Старт», «Бизнес» и «Корпоративный». Но защита по умолчанию опирается на архивные копии, а архивное хранение устроено по-разному: в «Корпоративном» оно входит в тариф, к «Бизнесу» докупается отдельной опцией, на «Старте» его нет. Отдельные расходы будут у провайдера S3: он берёт плату за объём всех версий объектов и за запросы на наложение и продление защиты.
Чем неизменяемость может навредить
Неизменяемые копии «+Альянс Бэкап» не отличают злоумышленника от вашей собственной ошибки. Например, вы поставили три года в Compliance и включили защиту обычных копий. Тогда три года вы оплачиваете всю цепочку со всеми версиями, и исправить это не может никто: сократить срок нельзя, а удалить копию раньше в Compliance не сможем даже мы.
Поэтому сам я начинал бы с Governance и короткого срока. На «Бизнесе» с опцией архивного хранения и на «Корпоративном» — с архивных копий, на «Старте» — с обычных, но с малым сроком. Посмотрел бы, как меняется счёт провайдера за месяц. И только потом решал бы про Compliance и длинные сроки.
Александр Жогов, основатель «+Альянса».
