Skip to content

Инфраструктура для крупномасштабных данных

RustFS разработан для масштаба. Технический масштаб, операционный масштаб и экономический масштаб. Фундаментальный масштаб.

В области объектного хранения надежное шифрование необходимо для того, чтобы иметь место за столом переговоров. RustFS предоставляет больше функциональности через высший уровень шифрования и обширные оптимизации, практически устраняя накладные расходы, обычно связанные с операциями шифрования хранилища.

Архитектура шифрования данных

RustFS шифрует данные как при хранении на диске, так и при передаче по сети. Современная схема шифрования RustFS поддерживает детализированное шифрование на уровне объектов с использованием современных отраслевых стандартов алгоритмов шифрования, таких как AES-256-GCM, ChaCha20-Poly1305 и AES-CBC. RustFS полностью совместим с семантикой шифрования S3 и также расширяет S3, поддерживая службы управления ключами не от AWS, такие как Hashicorp Vault, Gemalto KeySecure и Google Secrets Manager.

Сетевое шифрование

Когда данные передаются между объектным хранилищем и приложениями, они могут проходить через любое количество неизвестных и/или ненадежных сетей. Шифрование данных при их передаче по сети (также известное как "в пути") успешно смягчает атаки типа "человек посередине" и обеспечивает безопасность данных независимо от выбранного маршрута.

RustFS поддерживает Transport Layer Security (TLS) v1.2+ между всеми компонентами в кластере. Этот подход обеспечивает отсутствие слабых звеньев в зашифрованном трафике между или внутри кластеров. TLS является повсеместным фреймворком шифрования: это тот же протокол шифрования, который используется банками, веб-сайтами электронной коммерции и другими системами уровня предприятия, которые полагаются на шифрование хранения данных.

Реализация TLS в RustFS оптимизирована на уровне инструкций процессора с незначительными накладными расходами производительности. Требуется только указание закрытых ключей TLS и публичных сертификатов для каждого сервера RustFS в кластере. Для сред Kubernetes оператор Kubernetes RustFS интегрирует/автоматически генерирует и назначает сертификаты TLS во время развертывания арендатора. RustFS поддерживает несколько сертификатов TLS, где каждый сертификат соответствует определенному доменному имени. RustFS использует Server Name Indication (SNI) для определения того, какой сертификат обслуживать для любого данного запроса.

Шифрование объектов

Данные, хранящиеся на диске, полностью зависят от безопасности диска и распространяются на хост-систему для обеспечения безопасности данных. Серверное шифрование объектов RustFS автоматически шифрует данные перед их сохранением на диск (шифрование в покое). Этот подход гарантирует, что никакие данные не записываются на незашифрованные диски. Этот базовый слой безопасности обеспечивает конфиденциальность, целостность и подлинность данных в покое. RustFS поддерживает как управляемое клиентом, так и автоматическое шифрование объектов по умолчанию для максимальной гибкости в шифровании данных.

Серверное шифрование RustFS совместимо с семантикой Amazon AWS-S3 (SSE-S3). RustFS расширяет базовую поддержку AWS KMS, включая общие корпоративные системы KMS, такие как Hashicorp Vault и Thales Ciphertrust (ранее Gemalto KeySecure). RustFS также поддерживает управляемое клиентом шифрование (SSE-C), где приложения могут указать ключ данных, используемый для шифрования объектов. Как для SSE-S3, так и для SSE-C сервер RustFS выполняет все операции шифрования, включая ротацию ключей и повторное шифрование объектов.

Благодаря автоматическому серверному шифрованию RustFS шифрует каждый объект уникальным ключом и применяет несколько слоев дополнительного шифрования с использованием динамических ключей шифрования и ключей, полученных из внешней KMS или предоставленных клиентом ключей. Этот безопасный и сложный подход выполняется внутри RustFS без необходимости обрабатывать несколько независимых утилит шифрования ядра и пользовательского пространства.

RustFS использует схемы Authenticated Encryption with Associated Data (AEAD) для шифрования/расшифровки объектов при записи или чтении объектов из объектного хранилища. Шифрование AEAD RustFS поддерживает отраслевые стандартные протоколы шифрования, такие как AES-256-GCM и ChaCha20-Poly1305, для защиты данных объектов. Оптимизации RustFS на уровне процессора (такие как ускорение SIMD) обеспечивают незначительные накладные расходы производительности для операций шифрования/расшифровки. Организации могут запускать автоматическое шифрование на уровне корзины в любое время, а не быть вынужденными делать неоптимальный выбор безопасности.

Служба шифрования ключей RustFS

RustFS предоставляет встроенные опции для шифрования ключей. Служба шифрования ключей (KES) RustFS - это система управления ключами без состояния для высокопроизводительных приложений. Она разработана для работы в Kubernetes и распределения ключей шифрования приложениям. KES является обязательным компонентом для серверного шифрования объектов RustFS (SSE-S3).

KES поддерживает операции шифрования в кластерах RustFS и является ключевым механизмом для обеспечения масштабируемых и высокопроизводительных операций шифрования. KES действует как посредник между кластерами RustFS и внешней KMS, генерируя ключи шифрования по мере необходимости и выполняя операции шифрования без ограничений KMS. Поэтому все еще есть центральная KMS, которая защищает мастер-ключи и служит корнем доверия в инфраструктуре. KES упрощает развертывание и управление, устраняя необходимость загрузки KMS для каждого набора приложений. Вместо этого приложения могут запрашивать ключи шифрования данных (DEK) от серверов KES или просить серверы KES расшифровать зашифрованные DEK.

Поскольку серверы KES полностью без состояния, они могут автоматически масштабироваться, например, через Kubernetes Horizontal Pod Autoscaler. В то же время, поскольку KES независимо обрабатывает подавляющее большинство запросов приложений, нагрузка на центральную KMS не увеличивается значительно.

Для сред Kubernetes оператор Kubernetes RustFS поддерживает развертывание и настройку KES для каждого арендатора, включая SSE-S3 как часть развертывания каждого арендатора.

Архитектура службы шифрования ключей KES

Поддерживаемые внешние системы управления ключами

AWS KMSHashiCorp VaultGoogle Secret Manager
Azure Key VaultThales CipherTrustFortanix

Опубликовано под лицензией Apache 2.0.