Hur man skapar hemlig TLS i Kubernetes

Hur Man Skapar Hemlig Tls I Kubernetes



Kubernetes är ett verktyg med öppen källkod som används för att köra och hantera den containeriserade applikationen inuti klustret. Den utför olika uppgifter för att kontrollera, köra och säkra applikationens referenser genom hemlighet och inträde.

Ingress används för att hantera applikationens inkommande trafik och även för SSL-avslutning. Däremot används hemligheter för att lagra konfidentiell information och TLS-certifikat för tillämpning.

Det här inlägget kommer att illustrera:







Vad är Kubernetes hemligheter?

Hemligheterna är en av Kubernetes-resurserna som används för att lagra konfidentiell information som användaruppgifter, nycklar, certifikat eller tokens. Hemligheterna kan skapas individuellt och kopplas till poddar. Det hindrar utvecklaren från att tillhandahålla konfidentiell data i kod och ger också ett extra lager av säkerhet. Olika typer av hemligheter kan skapas och användas. De vanligaste hemligheterna är:



Generisk hemlighet: De generiska hemligheterna används för att lagra grundläggande information som lösenord, tokens, API-nycklar, OAuth-nycklar och så vidare.



TLS hemlighet: TLS-hemligheter används för att lagra privata nycklar och certifikat som är signerade av CA. För att säkerställa säkerheten för applikationer som körs inuti Kubernetes och för att säkra kommunikationen inom klustret, behöver användaren vanligtvis skapa och bädda in TLS-hemligheter i podden.





Docker Registry: Det används för att lagra docker-registret för att enkelt hämta bilderna från registret.

Förutsättning: Generera privat nyckel och certifikat

För att skapa certifikatet och den privata nyckeln för säkerhetsförbättring, använd OpenSSL som skapar CSR (certifikatsigneringsbegäran) och den privata nyckeln. Använd sedan CSR för att generera de självsignerade eller CA-certifikaten.



För att använda OpenSSL-kommandona på Windows måste användare installera Git. För detta ändamål, följ vår länkade ' Installera git på Windows ' artikel.

Efter att ha installerat git, följ instruktionerna nedan för att generera en privat nyckel och ett signerat certifikat.

Steg 1: Starta Git Bash Terminal

Gör en sökning efter ' Git Bash ' i Start-menyn och starta terminalen:

För att kontrollera den aktuella katalogen använd ' pwd ” kommando:

pwd

För närvarande arbetar vi i katalogen %USERPROFILE%:

Steg 2: Skapa ny katalog

Skapa en ny katalog för att spara certifikaten och den privata nyckeln:

mkdir cert

Navigera till den nyskapade katalogen med ' CD ” kommando:

CD cert

Steg 3: Generera privat nyckel

Generera nu den privata nyckeln genom det givna kommandot. Här kommer den genererade privata nyckeln att sparas i ' mycert.nyckel ”:

openssl genpkey -algoritm RSA -ut mycert.nyckel

Steg 4: Generera CSR

För att generera CSR (certificate service request) för att få ett signerat certifikat, använd det givna kommandot:

openssl req -ny -nyckel mycert.nyckel -ut mycert.csr

Steg 5: Skapa certifikat

Slutligen, med den genererade privata nyckeln och CSR, skapa ett certifikat och spara det i ' mycert.crt ' fil. För detta ändamål, kör följande kommando:

openssl x509 -req -i mycert.csr -skylt mycert.nyckel -ut mycert.crt -dagar 365

Efter att ha genererat TLS-certifikaten kan användaren skapa den hemliga TLS genom att följa avsnittet nedan.

Hur skapar man hemlig TLS i Kubernetes?

För att säkerställa applikationssäkerhet och säker kommunikation inom och utanför Kubernetes-klustret är TLS-certifikaten (Transport Layer Security) viktiga som används vid datakryptering. Kubernetes-hemligheten tillåter oss att bädda in TLS-certifikatet med körande pods genom hemlig TLS. För att skapa en hemlig TLS i Kubernetes, gå igenom följande instruktioner.

Steg 1: Starta Minikube Cluster

För att starta minikube-klustret, starta först Windows PowerShell som administratör. Efter det, skapa och kör klustret med hjälp av ' minikube start ” kommando:

minikube start

Steg 2: Hämta noder

Gå till Kubernetes-noden för att kontrollera om klustret är startat eller inte:

minikube få noder

Steg 3: Skapa hemlig TLS

Skapa TLS-hemligheten i Kubernetes med ' kubectl skapa hemlighet –cert= –nyckel= ” kommando. Här kan den hemliga typen vara ' generisk ', ' tls ', eller ' docker-registret ”. För att skapa en TLS-hemlighet har vi angett hemlighetstypen som 'tls':

kubectl skapa hemlig tls demo-hemlighet --cert =C:\Users\Dell\cert\mycert.crt --nyckel =C:\Users\Dell\cert\mycert.key

Steg 4: Få hemligheter

För bekräftelse listar du Kubernetes-hemligheten med det givna kommandot:

kubectl blir hemligt

Här kan du se att vi effektivt har skapat en ' demo-hemlighet ' som innehåller ' 2 ' datavärden:

Steg 5: Beskriv hemlighet

För att se hur data visas eller lagras i hemlighet, beskriv hemligheten med hjälp av ' kubectl beskriv hemligheten ” kommando:

kubectl beskriver hemlig demo-hemlighet

Du kan se värden lagras i byte och kan inte visas direkt till skillnad från Kubernetes ConfigMaps:

Hur man skapar en hemlig TLS genom Yaml-fil?

För att skapa en hemlig TLS genom en yaml-fil, skapa först en ' hemlig.yml ”-filen, lägg till tls base64-kodat certifikat i ' tls.crt ” och lägg till base64-kodad nyckel i ' tls.key ”.

Följ stegen i listan för demonstration.

Steg 1: Skapa Yaml-fil

Skapa en fil med namnet ' hemlig.yml ' och klistra in den givna koden:

apiVersion : v1

data
:

tls.crt
: 'base64-kodat certifikat'

tls.key
: 'base64-kodad nyckel'

snäll
: Hemlighet

metadata
:

namn
: mytls-hemlig

namnutrymme
: standard

typ
: kubernetes.io/tls

I kodavsnittet ovan ersätter du nyckelvärdena 'tls.crt' och 'tls.key' med ditt ursprungliga certifikat och nyckelvärden:

Steg 2: Skapa en hemlighet

Applicera nu den hemliga yaml-filen genom ' kubectl tillämpa -f ” kommando:

kubectl tillämpas -f hemlig.yml

Resultatet visar att vi framgångsrikt har skapat ' mytls-hemlig ' med yaml-fil:

Obs: Visa TLS-certifikat och privat nyckel

För att se det base64-kodade certifikatet och använda det i yaml-filen, kör ' cat | bas64 ” kommando i git bash terminalen:

katt mycert.crt | bas64

För att se den base64-kodade nyckeln, använd ' cat | bas64 ” kommando:

katt mycert.nyckel | bas64

Hur bäddar man in hemlig TLS med Kubernetes Pod?

Efter att ha skapat den hemliga TSL:n kan användaren bädda in den med Kubernetes pod. För att göra det, använd följande instruktioner.

Steg 1: Skapa Yaml-fil

Gör en fil med namnet ' pod.yml ' fil och klistra in nedanstående kodavsnitt i filen:

apiVersion: v1

typ: Pod

metadata:

namn: demo-pod

spec:

behållare:

- namn: html-forts

bild: rafia098 / html-img: 1.0

envFrån:

- hemligRef:

namn: demo-hemlighet

I utdraget ovan:

  • ' snäll ”-nyckel anger Kubernetes-resursen som användaren skapar.
  • ' namn ”-tangenten ställer in podnamnet.
  • ' behållare ”-tangenten lagrar behållarinformationen.
  • ' namn '-tangenten under 'containers'-tangenten kommer att ställa in behållarens namn.
  • ' bild ”-tangenten tillhandahåller applikationen eller behållarbilden för att skapa och starta applikationen inuti behållaren.
  • ' envFrån ”-tangenten ställer in miljövariabeln från andra Kubernetes-resurser. Här, för att bädda in den hemliga TLS i en pod, ' hemligRef ” används för att tillhandahålla en hemlig referens. För att bädda in ovanstående hemliga TLS, ange namnet på hemligheten i 'namn'-nyckeln.

Steg 2: Skapa eller uppgradera podden

Öppna sedan mappen där ' pod.yml ' fil skapas:

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

Använd yaml-filen för att skapa eller konfigurera om podden med hjälp av ' kubectl tillämpas ” kommando:

kubectl tillämpas -f pod.yml

Steg 3: Öppna Kubernetes Pods

För verifiering listar du Kubernetes-poddarna:

kubectl få pod

Här kan du se att vi har skapat ' demo-pod ' framgångsrikt:

Steg 4: Beskriv podden

För att kontrollera om podden har bäddat in den hemliga TLS eller inte, beskriv poden med kommandot nedan:

kubectl beskriv pod demo-pod

Utdata nedan visar att vi framgångsrikt har bäddat in TLS-hemligheten med pod:

Vi har täckt hur man skapar hemlig TLS och bäddar in den med Kubernetes-applikationen som körs i podden.

Slutsats

För att skapa den hemliga TLS i Kubernetes, skapa först det TLS-signerade certifikatet och den privata nyckeln. Efter det startar du Kubernetes-klustret och kör ' kubectl skapa hemlighet –cert= –nyckel= ” kommando. Användare kan också skapa den hemliga TLS med yaml-manifest. Det här inlägget har illustrerat hur man skapar den hemliga TLS och hur man bäddar in hemligheten med en applikation eller pod som körs.