
Объектные хранилища, работающие по протоколу S3, уже давно стали де-факто стандартом для работы с неструктурированными данными — от бэкапов корпоративных систем до наполнения озёр данных (Data Lake) для аналитики. Однако переход от простого использования API к построению на базе S3 отказоустойчивой и безопасной инфраструктуры часто оказывается сложнее, чем кажется на первый взгляд, а многие встроенные механизмы остаются невостребованными. И связано не столько с отсутствием бизнес-потребности, сколько с недостаточным пониманием того, как именно эти функции работают.
Чтобы устранить подобные «слепые зоны», в статье разберём, как с помощью объектных хранилищ решаются ключевые задачи обеспечения безопасности, катастрофоустойчивости и эффективности хранения.
Для начала погрузимся в теорию
В основе S3 (Simple Storage Service) лежит концепция объектного хранилища. Это не традиционная файловая система с иерархией папок, а глобальное адресное пространство, где каждая единица данных — это самодостаточный объект.
Каждый объект состоит из трёх ключевых элементов:
-
самих данных (будь то документ, изображение или резервная копия);
-
уникального идентификатора-ключа (key);
-
набора метаданных, которые представляют собой пары «ключ-значение», описывающие объект.
Такая архитектура, в отличие от блочных или файловых хранилищ, лишена сложной древовидной структуры каталогов. То, что визуально воспринимается как папки, является лишь частью строкового ключа объекта. Это позволяет системе работать с триллионами объектов без снижения производительности, так как не требуется тратить ресурсы на поддержание иерархии.
Также, в отличие от дорогостоящих блочных хранилищ, требующих высокопроизводительных SSD-накопителей, объектные хранилища часто строятся на базе относительно медленных, но значительно более дешёвых HDD-дисков. Поэтому S3 зачастую рассматривают в качестве дешёвого долгосрочного хранилища для архивов, бэкапов и «холодных» данных.
Место S3 в современных ИТ-инфраструктурах
По мере внедрения и повышения популярности S3 для хранения неструктурированных данных их роль в ИТ-инфраструктуре российских и мировых компаний постепенно меняется.
Так, изначально S3-хранилища разворачивали (а некоторые и продолжают это делать) на одной из площадок, вне отказоустойчивой реализации — как один из компонентов внутри одного ЦОДа, часто используемый для архивов или бэкапов «второго эшелона».

Но тренд меняется. В перспективе можно ожидать, что всё придёт к условно «идеальной модели», где S3 будет иметь распределённую реализацию, охватывающую сразу несколько доступных ЦОДов. Это обеспечит балансировку нагрузки между площадками, повысит гарантии отказоустойчивости хранилища и доступности данных из любой точки инфраструктуры.

Риски для данных в S3 и функции хранилища для их минимизации
Данные являются одним из ключевых активов современных компаний, поэтому S3-хранилища, как и любые БД, являются одной из главных целей для злоумышленников. Потенциальные угрозы можно разделить на два основных вектора атаки: компрометация легитимного доступа и прямые внешние атаки на инфраструктуру.
-
К первой группе относятся риски, связанные со взломом учётных записей пользователей. Это может быть реализовано через фишинг, когда сотрудники вводят свои данные на поддельных страницах, или с помощью вредоносного ПО (кейлоггеры, трояны), перехватывающего доступ. Отдельно стоит угроза со стороны бывших сотрудников, чьи учётные записи не были своевременно деактивированы.
-
Вторая группа угроз направлена непосредственно на саму инфраструктуру хранения. Злоумышленники могут эксплуатировать уязвимости архитектуры, например, ошибки в конфигурации политик доступа к бакетам. Также распространены DDoS-атаки, цель которых — перегрузить систему запросами и сделать её недоступной. Особую опасность представляют программы-шифровальщики (Ransomware), которые массово шифруют или удаляют объекты в хранилище с целью вымогательства.
Причем реагировать на подобные риски в момент возникновения, а также минимизировать возможность их появления можно как глобально, так и локально.
Так, к «глобальным» мерам обеспечения безопасности можно отнести:
-
Ежегодные аудиты. Комплексная проверка конфигураций S3 (политик доступа, шифрования) внешними или внутренними экспертами с помощью сканеров уязвимостей помогает выявить системные ошибки в архитектуре до того, как ими воспользуются для реальной атаки.
-
Формирование дорожных карт. Разработка долгосрочной стратегии защиты данных: определение целей (например, переход к геораспределённому хранению), приоритизация задач по уровню риска и составление графика реализации дает возможность систематизировать работу ИБ-отдела и планомерно повышать уровень защищённости без хаотичных «заплаток».
-
Этапные устранения уязвимостей. Непрерывный процесс управления жизненным циклом уязвимостей — от регулярного сканирования и классификации по степени критичности до поэтапного исправления (от самых опасных к менее значимым) — гарантирует снижение общей поверхности атаки.
При этом локально обеспечить безопасность также можно комплексно. Среди возможных мер:
-
Формирование РЦОД и синхронная репликация данных для быстрого восстановления. Создание резервных центров обработки данных (РЦОД) и настройка синхронной репликации обеспечивают размещение актуальных копий данных в другой географической локации. В случае отказа основного ЦОД это позволяет практически мгновенно переключиться на резервную площадку и продолжить работу.
-
Подготовка методики действий на случай аварий. Мера подразумевает разработку и регулярное тестирование пошагового плана восстановления. Как правило, он фиксирует роли и ответственность сотрудников, последовательность действий для переключения на резервный контур и критерии, по которым определяется успешность восстановления. Наличие такого плана минимизирует время простоя и снижает влияние человеческого фактора в стрессовой ситуации.
-
Ограничение доступа к данным методами S3-хранилища. Это реализуется через гибкую систему политик. IAM-политики позволяют управлять доступом на уровне пользователей и ролей в рамках всей облачной инфраструктуры, а политики бакетов (Bucket Policy) и списки контроля доступа (ACL) — детально настраивать права на чтение, запись и удаление для конкретных объектов или бакетов.
-
Защита данных встроенными инструментами «Версионирование» и «Блокировка объекта» (Object Lock). Версионирование подразумевает, что при каждой перезаписи или удалении объекта S3 автоматически сохраняет его предыдущую версию. Благодаря этому, даже если активный файл будет повреждён или зашифрован, всегда можно восстановить его исходное состояние из истории версий.
При этом S3 «из коробки» позволяет не только сохранять разные версии, но и полностью ограничивать саму возможность удаления или изменения файлов. Это реализуется с помощью функции Object Lock, которая переводит данные в режим WORM (Write Once Read Many). В результате объекты становятся неизменяемыми на установленный срок, что защищает их от любого несанкционированного вмешательства, включая действия администраторов.
Примечание: Подробный гайд по применению Object Lock на примере S3-объектного хранилища VK Cloud мы давали в одной из наших предыдущих статей. Вы можете прочитать ее здесь.
Таким образом S3-хранилища во многом меняют парадигму обеспечения безопасности данных, предоставляя «из коробки» эффективные механизмы. Но меняется подход не только к защите данных, но и к их хранению в целом. Об этом несколько подробнее.
Как S3 оптимизирует хранение
Помимо упомянутых возможностей, S3 поддерживает и особые механизмы для оптимизации использования пространства и обеспечения непрерывности бизнеса. Эти функции работают на разных уровнях — от физической записи битов на диск до глобальной распределённости данных.
Сжатие и дедупликация данных
Эффективность хранения в S3 можно повысить с помощью двух механизмов, которые часто работают в паре:
-
Сжатие (compression) — процесс кодирования информации с использованием меньшего количества бит по сравнению с исходным представлением. Проще говоря, алгоритмы находят повторяющиеся последовательности внутри одного файла и заменяют их на более короткие маркеры.
-
Дедупликация (deduplication) — процесс, который работает на уровне всего хранилища: система ищет не просто повторы внутри файла, а идентичные блоки данных между разными файлами.
В S3 работает это следующим образом:
-
Для каждого объекта считается хеш от контента, который является ключом.
-
Если блок уникален, он сжимается одним из алгоритмов (например, gzip) и сохраняется.
-
Если такой хэш уже есть в хранилище, то новый объект не записывается — вместо этого создаётся лишь ссылка на уже существующую копию.
Этот процесс происходит «на лету» при записи и позволяет примерно на 20% уменьшить объем хранения. Это особенно ценно для сценариев архивирования, хранения резервных копий, логов транзакций БД и озёр данных, где дублирование информации встречается повсеместно.
Синхронная репликация
Помимо этого, S3 поддерживает возможность синхронной репликации данных. Обычно реализуется это через многоуровневое копирование: каждая запись синхронно дублируется на другой диск внутри сервера, затем на другой сервер в том же ЦОД и, наконец, отправляется в другой географически удалённый дата-центр.
Для обеспечения согласованности и отказоустойчивости этой сложной системы используется комбинация технологий. Так, на уровне управления кластером для гарантии единого «источника правды» о конфигурации применяются алгоритмы распределённого консенсуса, такие как Raft. Они работают в связке с распределёнными базами данных конфигураций, например, ETCD, которые хранят текущее состояние системы.
При этом, переход на резервный узел управления в случае сбоя основного обеспечивает механизм автоматического переключения (Switchover), что делает управление кластером отказоустойчивым.
Такой подход гарантирует, что данные будут доступны для чтения до тех пор, пока доступен хотя бы один их экземпляр.
Вместо выводов
При наличии должной компетенции S3 можно рассматривать не как простое хранилище, а в качестве настоящего сейфа, где важные данные можно эффективно сжать, очистить от дубликатов и надёжно защитить от случайного удаления, порчи или атаки программ-шифровальщиков. Благодаря такому набору функций объектные хранилища вполне могут стать фундаментом для построения современной катастрофоустойчивой инфраструктуры.
И особенно важно, что в случае S3-совместимых хранилищ для использования этих механизмов не нужны сложные реализации и «костыли» — например, в хранилище Object Storage от VK Tech всё это поддерживается «из коробки». Поэтому для раскрытия всего потенциала S3 зачастую достаточно изучения официальной документации.
ссылка на оригинал статьи https://habr.com/ru/articles/1071120/