Przykłady obejmują klucze API, poświadczenia bazodanowe, klucze prywatne, klucze podpisujące, tokeny dostępu i inne poświadczenia nosiciela. Praktyka obejmuje bezpieczne generowanie, przechowywanie, dystrybucję, użycie, rotację lub odnowienie, unieważnianie, wygaśnięcie, odtwarzanie i zniszczenie — nie tylko umieszczanie wartości w zaszyfrowanym repozytorium.
Skuteczne projekty minimalizują, kto i co może pobrać każdy sekret, preferują krótkotrwałe lub dynamicznie wydawane poświadczenia tam, gdzie praktyczne, i zapobiegają pojawianiu się wartości w kodzie źródłowym, wyjściu budowy, logach lub kanałach wsparcia. Właścicielstwo, cel, konsumenci i zależności powinny być zapisane, aby sekret mógł być zmieniony szybko bez pozostawiania aktywnych starych kopii ani powodowania niekontrolowanej awarii.
Najważniejsze punkty
Kontrole cyklu życiaGeneruj z odpowiednią siłą, aprowizuj przez chronione ścieżki, określaj zakres dostępu, ustalaj odpowiedni czas życia, rotuj bezpiecznie, unieważniaj niezwłocznie i usuwaj przestarzałe kopie.
Kontrole operacyjneSilnie uwierzytelniaj obciążenia, oddzielaj środowiska, audytuj dostęp i administrację, wykrywaj ekspozycję, testuj odtwarzanie awaryjne i ćwicz reagowanie na kompromitację.
Preferencja projektowaOgraniczaj współdzielone i długotrwałe sekrety. Tam, gdzie obsługiwane, używaj tożsamości obciążeń i wąsko zakresowych poświadczeń tymczasowych zamiast dystrybuować wielokrotnego użytku wartości statyczne.
Istotne ograniczenieMenedżer sekretów staje się zależnością o wysokiej wartości i nie zapobiega odczytowi sekretu przez autoryzowane lub skompromitowane obciążenie. Polityka dostępu, bezpieczeństwo punktów końcowych, dostępność i początkowa ścieżka zaufania nadal mają znaczenie.