Zapobiegaj wyciekom sekretów, przechowując wartości poza udostępnialnymi definicjami Compose i traktując każdą kopię zapasową lub eksport diagnostyczny jako wrażliwy, dopóki nie przejdzie skanowania zawartości.
Home Assistant potrzebuje danych uwierzytelniających w czasie działania, więc żaden lokalny układ nie ukryje ich przed administratorem mającym pełny dostęp do hosta. Praktyczny cel jest węższy: powstrzymać przypadkowe zatwierdzanie zmian, wysyłanie plików, tworzenie szeroko dostępnych kopii zapasowych i niepotrzebny dostęp kontenerów. Zidentyfikuj, gdzie każda wartość trafia do stosu, zastąp literały kontrolowanym źródłem sekretów i przetestuj eksportowane artefakty bez wyświetlania samych sekretów.
Określ każde miejsce, w którym sekret może wyciec
Wymień tokeny API, hasła do baz danych, dane uwierzytelniające MQTT, adresy URL webhooków, klucze szyfrujące, prywatne certyfikaty i klucze odzyskiwania. Dla każdego zapisz odbiorcę w czasie działania, ścieżkę przechowywania, właściciela pliku, uwzględnienie w kopiach zapasowych, status w repozytorium, ekspozycję w logach i metodę rotacji. Nie kopiuj wartości do inwentarza.
Pliki sekretów porządkują wartości, ale dla konta, które może odczytać hosta, nadal są one zwykłym tekstem. Ta granica dostępu do zwykłego tekstu oznacza, że separacja ogranicza głównie przypadkowe ujawnienie, a nie powstrzymuje atakującego mającego pełne uprawnienia.
Błędem jest każda wartość wpisana dosłownie w YAML Compose, śledzony plik środowiskowy, szeroko dostępny katalog konfiguracyjny lub eksport o nieznanej zawartości. Wstrzymaj udostępnianie i wysyłanie zmian do repozytoriów, dopóki każda ścieżka ekspozycji nie będzie miała właściciela i rozwiązania.
Oddziel sekrety czasu działania od definicji wdrożenia
Zastąp literały w Compose sekretami opartymi na plikach, z przyznanymi minimalnymi uprawnieniami, lub innym źródłem sekretów obsługiwanym przez wdrożenie. Przyznaj każdej usłudze wyłącznie wartości, których używa, montuj je jako tylko do odczytu, gdy to możliwe, i ogranicz uprawnienia na hoście do tożsamości czasu działania oraz administratorów.
Wartości środowiskowe mogą ujawniać się podczas inspekcji, w kontekście procesu lub w logach, natomiast montowanie sekretów opartych na plikach może ograniczyć liczbę kontenerów otrzymujących dane uwierzytelniające. Lokalne pliki sekretów nadal wymagają kontroli uprawnień.
Najpierw sprawdź rozwiązanie za pomocą symboli zastępczych, skontroluj wyrenderowaną konfigurację Compose pod kątem przypadkowych literałów, następnie uruchom jedną usługę i potwierdź, że może odczytać wyłącznie przypisany jej sekret. Wycofaj zmianę, jeśli powoduje ona wyświetlanie wartości przez aplikację lub wymaga zbyt szerokiego dostępu do katalogów.
Kontroluj zawartość kopii zapasowych i pakietów pomocy technicznej
Traktuj kopie zapasowe jako zawierające dane uwierzytelniające, chyba że udowodniono inaczej. Szyfruj kopie opuszczające zaufaną granicę przechowywania, przechowuj klucze odzyskiwania osobno, ograniczaj okres przechowywania i dostęp, a także nigdy nie dołączaj pełnego archiwum konfiguracji, gdy na pytanie pomocy technicznej odpowie zredagowany fragment logu.
Skorzystaj z procedury ochrony konfiguracji, aby zachować możliwość odzyskania danych, jednocześnie oddzielając bezpieczne przechowywanie od udostępnialnych materiałów wdrożeniowych.
Przed udostępnieniem przeskanuj nazwy plików i wyodrębniony tekst pod kątem znanych nazw kluczy, prefiksów tokenów, prywatnych adresów URL, adresów e-mail, certyfikatów oraz dokładnych skrótów kontrolowanych znaczników testowych. Pomyślny skan jest warunkiem udostępnienia, a nie dowodem, że nie może istnieć nieznany format sekretu.
Rotuj ujawnione dane i potwierdź ścieżkę zapobiegania
Jeśli możliwa do użycia wartość trafiła do repozytorium, zgłoszenia, czatu, publicznego łącza lub niezaufanej kopii zapasowej, najpierw ją unieważnij lub zrotuj; usunięcie widocznej kopii nie unieważnia pozostałych kopii ani historii. Zapisz dotkniętą usługę i czas rotacji, nie zachowując starej wartości.
Utwórz nieszkodliwy sekret kanarkowy, wdroż go nową ścieżką, wygeneruj standardowe renderowanie Compose, kopię zapasową i pakiet diagnostyczny, a następnie przeszukaj te artefakty. Środowisko czasu działania powinno otrzymać sekret kanarkowy, natomiast udostępnialne artefakty nie powinny ujawniać go poza celowo chronioną granicą kopii zapasowej.
Zakończ, gdy w definicjach wdrożenia i repozytoriach nie ma rzeczywistych sekretów, chronione kopie zapasowe mają oddzielną ścieżkę odzyskiwania, skany artefaktów przechodzą pomyślnie, a ujawnione dane uwierzytelniające zostały zrotowane. Eskaluj problem, gdy integracja zewnętrzna zapisuje wartości sekretów w logach lub nie może korzystać z wąskiego źródła sekretów bez szerszego dostępu do hosta.
Wsparcie i wskazówki
Więcej do przeczytania

Jak zoptymalizować połączenia z bazą danych Immich dla równoczesnych kontenerów
Nie zwiększaj najpierw wartości max_connections. Zmierz sesje Immich, zsumuj zapotrzebowanie wszystkich kontenerów, zachowaj rezerwę dla administratora i dostosuj tylko faktycznie potwierdzone wąskie gardło.

Jak zapobiegać duplikowaniu zadań lub importów w Immich
Oddziel powtarzające się zadania od zduplikowanych zasobów. Użyj jednej kanonicznej ścieżki pozyskiwania danych, kontroluj ponowne próby i zmiany ścieżek, a następnie przetestuj ponowne wprowadzanie...

Jak naprawić Immich po zapełnieniu woluminu bazy danych
Nigdy nie usuwaj dziennika WAL PostgreSQL, aby zwolnić miejsce. Zatrzymaj operacje zapisu w Immich, zachowaj stan bazy danych, bezpiecznie zwiększ pojemność, odzyskaj działanie PostgreSQL,...

