Jak utworzyć tajny TLS w Kubernetes

Jak Utworzyc Tajny Tls W Kubernetes



Kubernetes to narzędzie typu open source służące do uruchamiania i zarządzania skonteneryzowaną aplikacją w klastrze. Wykonuje różne zadania w celu kontrolowania, uruchamiania i zabezpieczania poświadczeń aplikacji poprzez tajne i ingres.

Ingress służy do zarządzania ruchem przychodzącym aplikacji, a także do kończenia protokołu SSL. Natomiast klucze tajne służą do przechowywania poufnych informacji i certyfikatów TLS do zastosowania.

Ten post zilustruje:







Jakie są sekrety Kubernetesa?

Sekrety to jeden z zasobów Kubernetes, używany do przechowywania poufnych informacji, takich jak dane logowania użytkownika, klucze, certyfikaty lub tokeny. Sekrety można tworzyć indywidualnie i łączyć z kapsułami. Uniemożliwia programiście dostarczanie poufnych danych w kodzie, a także zapewnia dodatkową warstwę bezpieczeństwa. Można tworzyć i wykorzystywać różne rodzaje sekretów. Najczęściej używane sekrety to:



Ogólny sekret: Ogólne sekrety służą do przechowywania podstawowych informacji, takich jak hasła, tokeny, klucze API, klucze OAuth i tak dalej.



Sekret TLS: Sekrety TLS służą do przechowywania kluczy prywatnych i certyfikatów podpisanych przez urząd certyfikacji. Aby zapewnić bezpieczeństwo aplikacji działających wewnątrz Kubernetesa oraz zabezpieczyć komunikację w obrębie klastra, użytkownik zazwyczaj musi utworzyć i osadzić w podie sekrety TLS.





Rejestr Dockera: Służy do przechowywania danych uwierzytelniających rejestru dokera w celu łatwego pobierania obrazów z rejestru.

Warunek wstępny: Wygeneruj klucz prywatny i certyfikat

Aby utworzyć certyfikat i klucz prywatny w celu poprawy bezpieczeństwa, użyj OpenSSL, który tworzy CSR (żądanie podpisania certyfikatu) i klucz prywatny. Następnie użyj CSR, aby wygenerować certyfikaty z podpisem własnym lub certyfikaty urzędu certyfikacji.



Aby korzystać z poleceń OpenSSL w systemie Windows, użytkownicy muszą zainstalować Git. W tym celu skorzystaj z naszych powiązanych „ Zainstaluj gita w systemie Windows artykuł.

Po zainstalowaniu git postępuj zgodnie z poniższymi instrukcjami, aby wygenerować klucz prywatny i podpisany certyfikat.

Krok 1: Uruchom terminal Git Bash

Wyszukaj „ Git Basha ” w menu Start i uruchom terminal:

Aby sprawdzić bieżący katalog, użyj przycisku „ pw ' Komenda:

pw

Aktualnie pracujemy w katalogu %USERPROFILE%:

Krok 2: Utwórz nowy katalog

Utwórz nowy katalog, aby zapisać certyfikaty i klucz prywatny:

mkdir certyfikat

Przejdź do nowo utworzonego katalogu za pomocą przycisku „ płyta CD ' Komenda:

płyta CD certyfikat

Krok 3: Wygeneruj klucz prywatny

Teraz wygeneruj klucz prywatny za pomocą podanego polecenia. Tutaj wygenerowany klucz prywatny zostanie zapisany w „ mycert.key ”:

klucz genp openssl -algorytm RSA -na zewnątrz mycert.key

Krok 4: Wygeneruj CSR

Aby wygenerować CSR (żądanie obsługi certyfikatu) w celu uzyskania podpisanego certyfikatu, użyj podanego polecenia:

wymagania openssl -nowy -klucz mycert.key -na zewnątrz mycert.csr

Krok 5: Wygeneruj certyfikat

Na koniec, korzystając z wygenerowanego klucza prywatnego i CSR, utwórz certyfikat i zapisz go w „ mycert.crt ' plik. W tym celu wykonaj poniższe polecenie:

otwieraslx509 -wymaganie -W mycert.csr -klucz znakowy mycert.key -na zewnątrz mycert.crt -dni 365

Po wygenerowaniu certyfikatów TLS użytkownik może utworzyć tajny TLS, postępując zgodnie z poniższą sekcją.

Jak utworzyć tajny TLS w Kubernetes?

Aby zapewnić bezpieczeństwo aplikacji i bezpieczną komunikację wewnątrz i na zewnątrz klastra Kubernetes, niezbędne są certyfikaty TLS (Transport Layer Security), które służą do szyfrowania danych. Sekret Kubernetes pozwala nam osadzić certyfikat TLS z uruchomionymi podami poprzez tajny TLS. Aby utworzyć tajny TLS w Kubernetesie, wykonaj poniższe instrukcje.

Krok 1: Uruchom klaster Minikube

Aby uruchomić klaster minikube, najpierw uruchom Windows PowerShell jako administrator. Następnie utwórz i uruchom klaster za pomocą „ początek minikube'a ' Komenda:

początek minikube'a

Krok 2: Zdobądź węzły

Uzyskaj dostęp do węzła Kubernetes, aby sprawdzić, czy klaster jest uruchomiony, czy nie:

minikube pobierz węzły

Krok 3: Utwórz tajny TLS

Utwórz sekret TLS w Kubernetes za pomocą „ kubectl utwórz sekret –cert=<ścieżka do certyfikatu Tls> –key=<ścieżka do klucza prywatnego> ' Komenda. Tutaj typem sekretu może być „ ogólny „”, „ tls ', Lub ' rejestr dokerów ”. Aby utworzyć sekret TLS, ustawiliśmy typ sekretu na „tls”:

kubectl utwórz sekret tls demo-secret --cert =C:\Users\Dell\cert\mycert.crt --klucz =C:\Users\Dell\cert\mycert.key

Krok 4: Zdobądź sekrety

Aby potwierdzić, wypisz sekret Kubernetes za pomocą podanego polecenia:

kubectl uzyskaj sekret

Tutaj możesz zobaczyć, że skutecznie stworzyliśmy „ tajemnica demo ' który zawiera ' 2 wartości danych:

Krok 5: Opisz Sekret

Aby zobaczyć, jak dane są przeglądane lub przechowywane w tajemnicy, opisz sekret za pomocą „ kubectl opisz sekret ' Komenda:

kubectl opisuje sekretny sekret demo

Możesz zobaczyć, że wartości są przechowywane w bajtach i nie można ich bezpośrednio przeglądać w przeciwieństwie do Kubernetes ConfigMaps:

Jak utworzyć tajny TLS poprzez plik Yaml?

Aby utworzyć tajny TLS poprzez plik YAML, najpierw utwórz „ sekret.yml ”, dodaj plik Certyfikat tls zakodowany w base64 w ' tls.crt ” i dodaj klawisz Klucz zakodowany w formacie base64 w ' klucz tls ”.

W celu demonstracji wykonaj wymienione kroki.

Krok 1: Utwórz plik Yaml

Utwórz plik o nazwie „ sekret.yml ” i wklej podany kod:

wersja api : v1

dane
:

tls.crt
: „certyfikat zakodowany w formacie base64”

klucz tls
: „klucz zakodowany w formacie base64”

Uprzejmy
: Sekret

metadane
:

nazwa
: tajemnica mytls

przestrzeń nazw
: domyślny

typ
: kubernetes.io/tls

W powyższym fragmencie zastąp wartości kluczy „tls.crt” i „tls.key” oryginalnym certyfikatem i wartościami kluczy:

Krok 2: Stwórz sekret

Teraz zastosuj tajny plik YAML poprzez „ kubectl Apply -f <ścieżka do sekretu.yml> ' Komenda:

kubectl zastosuj -F sekret.yml

Dane wyjściowe pokazują, że pomyślnie utworzyliśmy „ tajemnica mytls ” przy użyciu pliku YAML:

Uwaga: Wyświetl certyfikat TLS i klucz prywatny

Aby wyświetlić certyfikat zakodowany w formacie Base64 i użyć go w pliku YAML, uruchom „ cat <ścieżka do pliku certyfikatu> | baza64 ” polecenie w terminalu git bash:

kot mycert.crt | baza64

Aby wyświetlić klucz zakodowany w base64, użyj „ cat <ścieżka do pliku klucza> | baza64 ' Komenda:

kot mycert.key | baza64

Jak osadzić tajny TLS w Kubernetes Pod?

Po utworzeniu tajnego TSL użytkownik może osadzić go w Kubernetes Pod. Aby to zrobić, skorzystaj z poniższych instrukcji.

Krok 1: Utwórz plik Yaml

Utwórz plik o nazwie „ pod.yml ” i wklej poniższy fragment do pliku:

Wersja api: v1

rodzaj: Pod

metadane:

nazwa: demo-pod

specyfikacja:

pojemniki:

- nazwa: html-cd

zdjęcie: rafia098 / html-img: 1,0

envOd:

- sekretRef:

nazwa: demo-sekret

W powyższym fragmencie:

  • Uprzejmy ” określa zasób Kubernetes, który tworzy użytkownik.
  • nazwa ” ustawi nazwę kapsuły.
  • pojemniki ” przechowuje informacje o kontenerze.
  • nazwa ” pod klawiszem „kontenery” ustawi nazwę kontenera.
  • obraz ” udostępni obraz aplikacji lub kontenera umożliwiający utworzenie i uruchomienie aplikacji wewnątrz kontenera.
  • envOd ” ustawi zmienną środowiskową z innych zasobów Kubernetes. Tutaj, aby osadzić tajny TLS w kapsule, „ sekretRef ” służy do zapewnienia tajnego odniesienia. Aby osadzić powyższy sekret TLS, podaj nazwę sekretu w kluczu „nazwa”.

Krok 2: Utwórz lub uaktualnij kapsułę

Następnie otwórz folder, w którym znajduje się „ pod.yml ” tworzony jest plik:

płyta CD C:\Users\Dell\Documents\Kubernetes\Secret

Zastosuj plik YAML, aby utworzyć lub ponownie skonfigurować pod za pomocą „ kubectl zastosuj ' Komenda:

kubectl zastosuj -F pod.yml

Krok 3: Uzyskaj dostęp do podów Kubernetes

W celu weryfikacji wypisz pody Kubernetes:

kubectl pobierz kapsułę

Tutaj możesz zobaczyć, że stworzyliśmy „ kapsuła demonstracyjna ' z powodzeniem:

Krok 4: Opisz kapsułę

Aby sprawdzić, czy pod ma wbudowany tajny TLS, czy nie, opisz kapsułę za pomocą poniższego polecenia:

kubectl opisuje pod demo-pod

Poniższe dane wyjściowe pokazują, że pomyślnie osadziliśmy klucz tajny TLS w pod:

Omówiliśmy, jak utworzyć tajny protokół TLS i osadzić go w aplikacji Kubernetes działającej w pod.

Wniosek

Aby utworzyć tajny TLS w Kubernetes, najpierw utwórz podpisany certyfikat TLS i klucz prywatny. Następnie uruchom klaster Kubernetes i uruchom „ kubectl utwórz sekret –cert=<ścieżka do certyfikatu Tls> –key=<ścieżka do klucza prywatnego> ' Komenda. Użytkownicy mogą również utworzyć tajny TLS przy użyciu manifestu YAML. W tym poście pokazano, jak utworzyć tajny klucz TLS i jak osadzić sekret w działającej aplikacji lub pod.