Szyfrowanie bazy danych
Wrażliwe wartości są szyfrowane przed zapisem.
Metoda
AES-256-GCM przez Node.js crypto; klucz 32 bajty jako 64 znaki hex:
ENCRYPTION_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
openssl rand -hex 32
Przechowywanie klucza
ENCRYPTION_KEY..encryption_keywDATA_DIR.- Tylko nowy magazyn: wygenerowany i zapisany do
DATA_DIR/.encryption_keyprzed startem.
Oba źródła muszą się zgadzać. Istniejące dane bez klucza zawodzą bezpiecznie; Libre nie tworzy zamiennika.
Zasady
Kopia klucza z bazą; nie rotuj bez migracji; utrata uniemożliwia odzysk; zmiana bez ponownego szyfrowania czyni dane nieczytelne.
Zakres
Dotyczy ścieżek używających usługi, np. poświadczeń. Nie jest szyfrowaniem dysku, stron SQLite ani end-to-end; używaj dysku i HTTPS.
Dane Work
Nie szyfruje całego zadania. Pliki i zależności są zwykłe w wolumenach; rozmowy, wyniki, wyjście i metadata w SQLite nie są automatycznie szyfrowane.
Chroń Docker data root i DATA_DIR; kopiuj bazę, ENCRYPTION_KEY i wolumeny razem. Zdalny model może dostać kontekst i pliki; szyfrowanie storage nie zmienia sieci.
Docker i Kubernetes
ENCRYPTION_KEY=replace-with-64-hex-characters
DATA_DIR=/data
Trwały storage, w Kubernetes Secret i PersistentVolume.
Problemy
openssl rand -hex 32
Przy odszyfrowaniu sprawdź ten sam ENCRYPTION_KEY i wolumen DATA_DIR. Zachowaj DATA_DIR/.encryption_key; oba źródła muszą być zgodne.