Ako vytvoriť tajný TLS v Kubernetes

Ako Vytvorit Tajny Tls V Kubernetes



Kubernetes je nástroj s otvoreným zdrojovým kódom, ktorý sa používa na spúšťanie a správu kontajnerovej aplikácie v rámci klastra. Vykonáva rôzne úlohy na ovládanie, spustenie a zabezpečenie poverení aplikácie prostredníctvom tajomstva a vniknutia.

Ingress sa používa na správu prichádzajúcej prevádzky aplikácie a tiež na ukončenie SSL. Na rozdiel od toho sa tajomstvá používajú na ukladanie dôverných informácií a certifikátov TLS pre aplikáciu.

Tento príspevok bude ilustrovať:







Aké sú tajomstvá Kubernetes?

Tajomstvá sú jedným zo zdrojov Kubernetes, ktorý sa používa na ukladanie dôverných informácií, ako sú prihlasovacie údaje používateľa, kľúče, certifikáty alebo tokeny. Tajomstvá môžu byť vytvorené jednotlivo a spojené s strukami. Zabraňuje vývojárovi poskytovať dôverné údaje v kóde a tiež poskytuje ďalšiu úroveň zabezpečenia. Môžu byť vytvorené a použité rôzne druhy tajomstiev. Najčastejšie používané tajomstvá sú:



Všeobecné tajomstvo: Všeobecné tajomstvá sa používajú na ukladanie základných informácií, ako sú heslá, tokeny, kľúče API, kľúče OAuth atď.



Tajomstvo TLS: Tajné kľúče TLS sa používajú na ukladanie súkromných kľúčov a certifikátov, ktoré sú podpísané CA. Na zaistenie bezpečnosti aplikácií bežiacich vo vnútri Kubernetes a na zabezpečenie komunikácie v rámci klastra musí používateľ zvyčajne vytvoriť a vložiť tajné kľúče TLS do pod.





Register Docker: Používa sa na uloženie poverení registra docker na jednoduché stiahnutie obrázkov z registra.

Predpoklad: Vygenerujte súkromný kľúč a certifikát

Na vytvorenie certifikátu a súkromného kľúča na zlepšenie bezpečnosti použite OpenSSL, ktoré vytvorí CSR (žiadosť o podpis certifikátu) a súkromný kľúč. Potom použite CSR na vygenerovanie certifikátov s vlastným podpisom alebo certifikátov CA.



Ak chcete používať príkazy OpenSSL v systéme Windows, používatelia si musia nainštalovať Git. Na tento účel postupujte podľa našich odkazov „ Nainštalujte git na Windows “článok.

Po inštalácii git postupujte podľa pokynov nižšie a vygenerujte súkromný kľúč a podpísaný certifikát.

Krok 1: Spustite terminál Git Bash

Vyhľadajte „ Git Bash ” v ponuke Štart a spustite terminál:

Ak chcete skontrolovať aktuálny adresár, použite „ pwd 'príkaz:

pwd

V súčasnosti pracujeme v adresári %USERPROFILE%:

Krok 2: Vytvorte nový adresár

Vytvorte nový adresár na uloženie certifikátov a súkromného kľúča:

mkdir cert

Prejdite do novovytvoreného adresára pomocou „ cd 'príkaz:

cd cert

Krok 3: Vygenerujte súkromný kľúč

Teraz vygenerujte súkromný kľúč pomocou daného príkazu. Tu sa vygenerovaný súkromný kľúč uloží do „ mycert.key “:

openssl genpkey -algoritmus RSA -von mycert.key

Krok 4: Generovanie CSR

Na vygenerovanie CSR (žiadosti o certifikačnú službu) na získanie podpísaného certifikátu použite daný príkaz:

openssl req -Nový -kľúč mycert.key -von mycert.csr

Krok 5: Vygenerujte certifikát

Nakoniec pomocou vygenerovaného súkromného kľúča a CSR vytvorte certifikát a uložte ho do „ mycert.crt “. Na tento účel vykonajte nasledujúci príkaz:

openssl x509 -požiadavka -v mycert.csr - kľúč mycert.key -von mycert.crt -dni 365

Po vygenerovaní certifikátov TLS môže používateľ vytvoriť tajný TLS podľa nižšie uvedenej časti.

Ako vytvoriť tajný TLS v Kubernetes?

Na zaistenie bezpečnosti aplikácie a bezpečnej komunikácie v rámci a mimo klastra Kubernetes sú nevyhnutné certifikáty TLS (Transport Layer Security), ktoré sa používajú pri šifrovaní údajov. Tajomstvo Kubernetes nám umožňuje vložiť certifikát TLS s bežiacimi modulmi prostredníctvom tajného TLS. Ak chcete vytvoriť tajný protokol TLS v Kubernetes, postupujte podľa nasledujúcich pokynov.

Krok 1: Spustite Minikube Cluster

Ak chcete spustiť klaster minikube, najprv spustite prostredie Windows PowerShell ako správca. Potom vytvorte a spustite klaster pomocou „ minikube štart 'príkaz:

minikube štart

Krok 2: Získajte uzly

Prejdite do uzla Kubernetes a skontrolujte, či je klaster spustený alebo nie:

minikube získať uzly

Krok 3: Vytvorte tajný protokol TLS

Vytvorte tajomstvo TLS v Kubernetes pomocou ' kubectl create secret –cert= –key= “príkaz. Tu môže byť tajný typ „ generický ',' tls “, alebo „ docker-registre “. Aby sme vytvorili tajný kľúč TLS, nastavili sme typ tajného kľúča na „tls“:

kubectl vytvoriť tajomstvo tls demo-secret --certifikát =C:\Users\Dell\cert\mycert.crt --kľúč =C:\Users\Dell\cert\mycert.key

Krok 4: Získajte tajomstvá

Pre potvrdenie vypíšte tajomstvo Kubernetes pomocou daného príkazu:

kubectl dostať tajomstvo

Tu môžete vidieť, že sme efektívne vytvorili „ demo-tajomstvo “, ktorý obsahuje “ 2 hodnoty údajov:

Krok 5: Opíšte tajomstvo

Ak chcete zobraziť, ako sa údaje prezerajú alebo ukladajú v tajnosti, opíšte tajomstvo pomocou „ kubectl popísať tajomstvo 'príkaz:

kubectl popísať tajný demo-tajomstvo

Môžete vidieť, že hodnoty sú uložené v bajtoch a nie je možné ich priamo zobraziť na rozdiel od Kubernetes ConfigMaps:

Ako vytvoriť tajný TLS prostredníctvom súboru Yaml?

Ak chcete vytvoriť tajný protokol TLS prostredníctvom súboru yaml, najprv vytvorte súbor „ tajomstvo.yml “, pridajte súbor tls base64 zakódovaný certifikát v ' tls.crt “ a pridajte kódovaný kľúč base64 v ' tls.key “.

Pre demonštráciu postupujte podľa uvedených krokov.

Krok 1: Vytvorte súbor Yaml

Vytvorte súbor s názvom „ tajomstvo.yml “ a vložte daný kód:

apiVersion : v1

údajov
:

tls.crt
: 'zakódovaný certifikát base64'

tls.key
: 'kódovaný kľúč base64'

milý
: Tajomstvo

metaúdaje
:

názov
: mytls-secret

menný priestor
: predvolená

typu
: kubernetes.io/tls

Vo vyššie uvedenom úryvku nahraďte hodnoty kľúča „tls.crt“ a „tls.key“ pôvodným certifikátom a hodnotami kľúča:

Krok 2: Vytvorte tajomstvo

Teraz použite tajný súbor yaml cez „ kubectl apply -f 'príkaz:

kubectl aplikovať -f tajomstvo.yml

Výstup ukazuje, že sme úspešne vytvorili „ mytls-secret ” pomocou súboru yaml:

Poznámka: Pozrite si certifikát TLS a súkromný kľúč

Ak chcete zobraziť zakódovaný certifikát base64 a použiť ho v súbore yaml, spustite „ cat | základ 64 ” príkaz v termináli git bash:

kat mycert.crt | základ 64

Ak chcete zobraziť kódovaný kľúč base64, použite „ cat | základ 64 'príkaz:

kat mycert.key | základ 64

Ako vložiť tajné TLS s Kubernetes Pod?

Po vytvorení tajného TSL ho môže používateľ vložiť do modulu Kubernetes. Ak to chcete urobiť, použite nasledujúce pokyny.

Krok 1: Vytvorte súbor Yaml

Vytvorte súbor s názvom „ pod.yml ” a do súboru vložte úryvok nižšie:

apiVersion: v1

druh: Pod

metadáta:

názov: demo-pod

špecifikácia:

kontajnery:

- názov: html-cont

obrázok: rafia098 / html-img: 1,0

envFrom:

- secretRef:

názov: demo-tajné

Vo vyššie uvedenom úryvku:

  • milý ” kľúč určuje zdroj Kubernetes, ktorý používateľ vytvára.
  • názov ” nastaví názov modulu.
  • kontajnerov ” kľúč uloží informácie o kontajneri.
  • názov ” pod klávesom “kontajnery” nastaví názov kontajnera.
  • obrázok ” poskytne obrázok aplikácie alebo kontajnera na vytvorenie a spustenie aplikácie v kontajneri.
  • envOd ” nastaví premennú prostredia z iných zdrojov Kubernetes. Tu na vloženie tajného TLS do modulu: tajnéRef “ sa používa na poskytnutie tajného odkazu. Ak chcete vložiť vyššie uvedený tajný protokol TLS, zadajte názov tajného kľúča do kľúča „name“.

Krok 2: Vytvorte alebo inovujte modul

Potom otvorte priečinok, v ktorom sa nachádza „ pod.yml “ je vytvorený súbor:

cd C:\Users\Dell\Documents\Kubernetes\Secret

Použite súbor yaml na vytvorenie alebo prekonfigurovanie pod pomocou „ kubectl aplikovať 'príkaz:

kubectl aplikovať -f pod.yml

Krok 3: Prístup k Kubernetes Pods

Na overenie uveďte zoznam modulov Kubernetes:

kubectl dostať pod

Tu môžete vidieť, že sme vytvorili „ demo-pod “ úspešne:

Krok 4: Popíšte pod

Ak chcete skontrolovať, či modul má vložený tajný protokol TLS alebo nie, opíšte modul pomocou nižšie uvedeného príkazu:

kubectl popísať pod demo-pod

Nasledujúci výstup ukazuje, že sme úspešne vložili tajomstvo TLS do modulu:

Popísali sme, ako vytvoriť tajný protokol TLS a vložiť ho do aplikácie Kubernetes spustenej v podu.

Záver

Ak chcete vytvoriť tajný TLS v Kubernetes, najprv vytvorte certifikát podpísaný TLS a súkromný kľúč. Potom spustite klaster Kubernetes a spustite „ kubectl create secret –cert= –key= “príkaz. Používatelia môžu tiež vytvoriť tajný TLS pomocou manifestu yaml. Tento príspevok ilustruje, ako vytvoriť tajný protokol TLS a ako vložiť tajomstvo pomocou spustenej aplikácie alebo modulu.