Шифрування резервних копій у MinIO (SSE-KMS)

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

Щоб усунути ризик витоку незашифрованих даних із резервних копій у разі несанкціонованого доступу, на Платформі реалізовано серверне шифрування (SSE-KMS). Воно забезпечує зберігання об’єктів у зашифрованому вигляді без змін у способі взаємодії з MinIO для користувачів та сервісів.

Цей документ описує принцип роботи механізму шифрування SSE-KMS для Platform MinIO, який базується на інтеграції з KES Server і Platform Vault.

1. Що таке SSE-KMS та як це працює

Механізм Server-Side Encryption with KMS (SSE-KMS) забезпечує автоматичне шифрування файлів на стороні сервера перед їхнім зберіганням на диск. Шифрування відбувається "в польоті" — на етапі запису об’єкта в MinIO. Під час читання файл автоматично розшифровується. З боку користувача взаємодія з файлами не змінюється.

  • Усі дані зберігаються на диску в зашифрованому вигляді.

  • Ключі шифрування зберігаються у Vault.

SSE-KMS не замінює шифрування самого диска (FS-level encryption), а лише шифрує об’єкти в MinIO. Повна безпека досягається при використанні обох підходів.

2. Схема шифрування резервних копій

Діаграма нижче демонструє верхньорівневу схему взаємодії компонентів для шифрування резервних копій.

backup encryption
Зображення 1. Інтеграція MinIO, KES Server та Vault
  • MinIO — об’єктне сховище, що зберігає резервні копії.

  • KES Server — сервіс або агент, який виступає як KMS-проксі для MinIO та клієнт до Vault.

  • Vault — система управління секретами, що зберігає ключі шифрування.

Як відбувається взаємодія компонентів
  1. KES Server автентифікується у Vault через метод AppRole, використовуючи role_id та secret_id.

  2. Vault видає тимчасовий токен (Vault Token).

  3. За цим токеном KES Server отримує ключ шифрування або створює його, якщо ключ ще не існує.

  4. MinIO надсилає запити на шифрування/дешифрування об’єктів до KES Server, який працює як проксі до ключа з Vault.

KES Server — це не бекенд-система, а локальний сервіс, який запускається поруч з MinIO. Він приймає запити від MinIO та самостійно звертається до Vault.