‫Używam sekretów Docker do moich haseł, ale to
‫po prostu tworzy plik RAM w kontenerze.
‫Jeśli ktoś włamał się do kontenera, mógł
‫zobaczyć plik tak jak moja aplikacja.
‫Tak i nie.
‫Wspaniały. Będziemy dalej rozmawiać. Czy jest
‫na to lepszy sposób? Zaszyfrować treść sekretu?
‫Następnie odszyfruj w aplikacji w sposób, którego haker nie był
‫w stanie zrozumieć.
‫Rzeczywistość jest
‫taka, że twoja aplikacja musi mieć gdzieś swój sekret
‫i będą one niezaszyfrowane w pamięci, prawda.
‫Wszystko, co wiem, to odszyfrowanie zaszyfrowanych rzeczy, to
‫odszyfrowanie ich w pamięci. Jeśli haker
‫ma root w twoim kontenerze,
‫będzie mógł to zdobyć.
‫Jeśli są wystarczająco bystrzy, będą mogli zdobyć
‫te rzeczy, prawda.
‫Pierwszym krokiem nie jest uruchamianie aplikacji jako
‫root w kontenerze.
‫Wówczas nie będą mogli nic zrobić
‫poza aplikacją. Nie mogą uruchomić innych narzędzi
‫systemowych w kontenerze, które mogą być w stanie odczytać całą pamięć.
‫Po drugie, jest tak naprawdę, najbezpieczniejszy
‫sposób, który, jak sądzę, widzieliśmy, to coś w rodzaju skarbca
‫i haseł, w których są tworzone, są używane
‫przez twoją aplikację, a następnie są wyrzucane i
‫już nie są dobry. W rzeczywistości większość ludzi nie
‫jest na to gotowa. Aplikacje większości ludzi nie mogą sobie z tym poradzić.
‫Wiesz, nie możesz obracać klucza API Twittera co pięć minut
‫dla każdej uruchamianej aplikacji, prawda.
‫Takie rzeczy. Następną najlepszą rzeczą jest
‫zapobieganie temu, aby plik nigdy nie był na stałe
‫na dysku.
‫Bezpieczeństwo Kubernetes
‫i Docker, te ... przepraszam sekrety, sekrety Kubernetes
‫i sekrety roju to jedne z najlepszych sposobów,
‫jakie kiedykolwiek widziałem, aby wymyślić sposób
‫przechowywania haseł w fałszywym pliku
‫w pamięci RAM. Możesz ustawić te uprawnienia tak, aby
‫były one czytelne tylko dla Twojej aplikacji.
‫Tak więc, jeśli ktoś wejdzie w jakiś sposób z innym użytkownikiem,
‫nie znaczy to, że w kontenerze
‫koniecznie byłby inny użytkownik, ale możesz zablokować tych użytkowników, aby byli tylko
‫do odczytu, aby był czytelny tylko dla użytkownika to
‫twoja aplikacja. Takie są rzeczy, prawda.
‫Tak to jest naprawdę.
‫Jedyne, co widziałem lepiej, nadal przechowuje je w pamięci, wciąż
‫przechowuje je w postaci niezaszyfrowanej.
‫Po prostu nie przechowuje ich lokalnie.
‫Musisz więc użyć zdalnego interfejsu API,
‫takiego jak Vault, Vault HashiCorp lub inny system, który
‫zapewnia jednorazowe hasła. Ale znowu te rzeczy musiałyby zostać
‫zbudowane w całym systemie. Musisz zaprojektować
‫całość. I to dużo pracy, prawda.
‫Podczas gdy korzystając z sekretów w Kubernetes
‫i Swarm, zazwyczaj możesz to zrobić tego
‫samego dnia, dokładnie. Możesz to zaimplementować dla
‫dowolnej aplikacji, nawet jeśli musi ona być ustawiona jako zmienne
‫środowiskowe, ponieważ starsze aplikacje wymagają różnych zmiennych środowiskowych.
‫Możesz więc mieć je w sekrecie, a następnie,
‫w razie potrzeby, zrzucić te sekrety
‫do zmiennych środowiskowych. Ale powiedziałbym, że 99%
‫czasu, moi klienci konsultingowi, mają do czynienia ze starszymi aplikacjami.
‫Kiedy mówię o spuściźnie, naprawdę mam na myśli
‫wszystko przed kontenerami, czyli większość aplikacji, prawda.
‫Spędziliśmy 30 lat, tworząc aplikacje bez
‫kontenerów, zanim je mieliśmy.
‫Mamy więc wiele zwykłych rzeczy.
‫Tak więc większość zespołów po prostu szuka sposobu na umieszczenie
‫rzeczy w kontenerach i przechowywanie ich zaszyfrowanych na dysku.
‫Jeśli są na dysku, są szyfrowane.
‫Kubernetes i Swarm mogą to zrobić.
‫Myślę, że jeśli używasz tajemnic, to już jesteś
‫lepszy niż 99% osób, które widzę, ponieważ bardzo niewiele
‫osób używa orkiestracji, a także tajemnic.
‫To bardzo, bardzo mała grupa, grupa ludzi.
‫Tak, myślę, że jesteś tam całkiem niezły.