Шифрування резервних копій у 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. Схема шифрування резервних копій
Діаграма нижче демонструє верхньорівневу схему взаємодії компонентів для шифрування резервних копій.
-
MinIO — об’єктне сховище, що зберігає резервні копії.
-
KES Server — сервіс або агент, який виступає як KMS-проксі для MinIO та клієнт до Vault.
-
Vault — система управління секретами, що зберігає ключі шифрування.
- Як відбувається взаємодія компонентів
-
-
KES Server автентифікується у Vault через метод
AppRole
, використовуючиrole_id
таsecret_id
. -
Vault видає тимчасовий токен (
Vault Token
). -
За цим токеном KES Server отримує ключ шифрування або створює його, якщо ключ ще не існує.
-
MinIO надсилає запити на шифрування/дешифрування об’єктів до KES Server, який працює як проксі до ключа з Vault.
-
KES Server — це не бекенд-система, а локальний сервіс, який запускається поруч з MinIO. Він приймає запити від MinIO та самостійно звертається до Vault. |