Sådan opretter du hemmelige TLS i Kubernetes

Sadan Opretter Du Hemmelige Tls I Kubernetes



Kubernetes er et open source-værktøj, der bruges til at udføre og administrere den containeriserede applikation inde i klyngen. Den udfører forskellige opgaver for at kontrollere, køre og sikre applikationens legitimationsoplysninger gennem hemmelighed og indgang.

Ingress bruges til at administrere applikationens indkommende trafik og også til SSL-afslutning. I modsætning hertil bruges hemmeligheder til at gemme fortrolige oplysninger og TLS-certifikater til anvendelse.

Dette indlæg vil illustrere:







Hvad er Kubernetes-hemmelighederne?

Hemmelighederne er en af ​​Kubernetes-ressourcerne, der bruges til at gemme fortrolige oplysninger såsom brugerloginoplysninger, nøgler, certifikater eller tokens. Hemmelighederne kan skabes individuelt og kobles til pods. Det forhindrer udvikleren i at levere fortrolige data i kode og giver også et ekstra lag af sikkerhed. Forskellige slags hemmeligheder kan skabes og bruges. De mest brugte hemmeligheder er:



Generisk hemmelighed: De generiske hemmeligheder bruges til at gemme grundlæggende oplysninger såsom adgangskoder, tokens, API-nøgler, OAuth-nøgler og så videre.



TLS-hemmelighed: TLS-hemmeligheder bruges til at gemme private nøgler og certifikater, der er underskrevet af CA. For at sikre sikkerheden for applikationer, der kører inde i Kubernetes, og for at sikre kommunikation i klyngen, skal brugeren normalt oprette og indlejre TLS-hemmeligheder i poden.





Docker Registry: Det bruges til at gemme docker-registreringsoplysningerne for nemt at trække billederne fra registreringsdatabasen.

Forudsætning: Generer privat nøgle og certifikat

For at oprette certifikatet og den private nøgle til forbedring af sikkerheden skal du bruge OpenSSL, der opretter CSR (certifikatsigneringsanmodning) og den private nøgle. Brug derefter CSR til at generere de selvsignerede eller CA-certifikater.



For at bruge OpenSSL-kommandoer på Windows skal brugere installere Git. Til dette formål skal du følge vores linkede ' Installer git på Windows ' artikel.

Efter installation af git, følg nedenstående instruktioner for at generere en privat nøgle og signeret certifikat.

Trin 1: Start Git Bash Terminal

Foretag en søgning efter ' Git Bash ” i startmenuen og start terminalen:

For at kontrollere den aktuelle mappe, brug ' pwd kommando:

pwd

I øjeblikket arbejder vi i mappen %USERPROFILE%:

Trin 2: Opret ny mappe

Opret en ny mappe for at gemme certifikaterne og den private nøgle:

mkdir cert

Naviger til den nyoprettede mappe ved hjælp af ' cd kommando:

cd cert

Trin 3: Generer privat nøgle

Generer nu den private nøgle gennem den givne kommando. Her vil den genererede private nøgle blive gemt i ' mycert.nøgle ”:

openssl genpkey -algoritme RSA -ud mycert.nøgle

Trin 4: Generer CSR

For at generere CSR (certificate service request) for at få et signeret certifikat skal du bruge den givne kommando:

openssl req -ny -nøgle mycert.nøgle -ud mycert.csr

Trin 5: Generer certifikat

Til sidst skal du ved hjælp af den genererede private nøgle og CSR oprette et certifikat og gemme det i ' mycert.crt ' fil. Til dette formål skal du udføre kommandoen nedenfor:

openssl x509 -krav -i mycert.csr -skiltet mycert.nøgle -ud mycert.crt -dage 365

Efter generering af TLS-certifikaterne kan brugeren oprette den hemmelige TLS ved at følge nedenstående afsnit.

Hvordan opretter man hemmelige TLS i Kubernetes?

For at sikre applikationssikkerheden og sikker kommunikation inden for og uden for Kubernetes-klyngen er TLS-certifikaterne (Transport Layer Security) essentielle, som bruges til datakryptering. Kubernetes-hemmeligheden giver os mulighed for at integrere TLS-certifikatet med kørende pods gennem hemmelig TLS. For at oprette en hemmelig TLS i Kubernetes skal du gennemgå følgende instruktioner.

Trin 1: Start Minikube Cluster

For at starte minikube-klyngen skal du først starte Windows PowerShell som administrator. Derefter skal du oprette og køre klyngen ved at bruge ' minikube start kommando:

minikube start

Trin 2: Hent noder

Få adgang til Kubernetes-knuden for at kontrollere, om klyngen er startet eller ej:

minikube få noder

Trin 3: Opret hemmelig TLS

Opret TLS-hemmeligheden i Kubernetes ved hjælp af ' kubectl opret hemmelig –cert= –key= ” kommando. Her kan den hemmelige type være ' generisk ', ' tls ', eller ' docker-registret ”. For at oprette en TLS-hemmelighed har vi indstillet hemmelighedstypen som 'tls':

kubectl opret hemmelige tls-demo-hemmelige --cert =C:\Brugere\Dell\cert\mycert.crt --nøgle =C:\Users\Dell\cert\mycert.key

Trin 4: Få hemmeligheder

For at bekræfte, skriv Kubernetes-hemmeligheden ned ved at bruge den givne kommando:

kubectl bliver hemmelig

Her kan du se, at vi effektivt har skabt en ' demo-hemmelighed ' der indeholder ' 2 ' dataværdier:

Trin 5: Beskriv hemmeligheden

For at se, hvordan data ses eller gemmes hemmeligt, skal du beskrive hemmeligheden ved at bruge ' kubectl beskriver hemmeligheden kommando:

kubectl beskriver hemmelig demo-hemmelighed

Du kan se værdier er gemt i bytes og kan ikke ses direkte i modsætning til Kubernetes ConfigMaps:

Hvordan opretter man en hemmelig TLS gennem Yaml-fil?

For at oprette en hemmelig TLS gennem en yaml-fil skal du først oprette en ' hemmelig.yml ”-fil, tilføje tls base64-kodet certifikat i ' tls.crt ”-tasten, og tilføj base64 kodet nøgle i ' tls.key ”.

Følg de angivne trin for demonstration.

Trin 1: Opret Yaml-fil

Opret en fil med navnet ' hemmelig.yml ' og indsæt den givne kode:

apiVersion : v1

data
:

tls.crt
: 'base64-kodet certifikat'

tls.key
: 'base64 kodet nøgle'

venlig
: Hemmelighed

metadata
:

navn
: mytls-hemmelighed

navneområde
: Standard

type
: kubernetes.io/tls

I ovenstående kodestykke skal du erstatte nøgleværdierne 'tls.crt' og 'tls.key' med dit originale certifikat og nøgleværdier:

Trin 2: Opret en hemmelighed

Anvend nu den hemmelige yaml-fil gennem ' kubectl anvende -f kommando:

kubectl anvende -f hemmelig.yml

Outputtet viser, at vi har skabt ' mytls-hemmelighed ' ved hjælp af yaml-fil:

Bemærk: Se TLS-certifikat og privat nøgle

For at se det base64-kodede certifikat og bruge det i yaml-filen, skal du køre ' cat | base64 kommando i git bash terminalen:

kat mycert.crt | base64

For at se den base64-kodede nøgle, brug ' kat | base64 kommando:

kat mycert.nøgle | base64

Hvordan indlejrer man hemmelig TLS med Kubernetes Pod?

Efter at have oprettet den hemmelige TSL, kan brugeren integrere den med Kubernetes pod. For at gøre det skal du bruge følgende instruktioner.

Trin 1: Opret Yaml-fil

Lav en fil med navnet ' pod.yml ” fil og indsæt nedenstående uddrag i filen:

apiVersion: v1

art: Pod

metadata:

navn: demo-pod

spec:

beholdere:

- navn: html-forts

billede: rafia098 / html-img: 1.0

envFra:

- hemmelig Ref:

navn: demo-hemmelighed

I ovenstående uddrag:

  • venlig ”-tasten angiver den Kubernetes-ressource, som brugeren opretter.
  • navn ”-tasten indstiller pod-navnet.
  • containere ”-tasten gemmer containerinformationen.
  • navn '-tasten under 'containere'-tasten vil indstille containernavnet.
  • billede ”-tasten vil give applikationen eller containerbilledet til at oprette og starte applikationen inde i beholderen.
  • envFra ”-tasten indstiller miljøvariablen fra andre Kubernetes-ressourcer. Her, for at indlejre den hemmelige TLS i en pod, ' hemmelig Ref ” bruges til at give en hemmelig reference. For at indlejre ovenstående hemmelige TLS skal du angive navnet på hemmeligheden i 'navn'-tasten.

Trin 2: Opret eller opgrader poden

Åbn derefter mappen, hvor ' pod.yml ' fil oprettes:

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

Anvend yaml-filen til at oprette eller omkonfigurere poden ved hjælp af ' kubectl anvende kommando:

kubectl anvende -f pod.yml

Trin 3: Få adgang til Kubernetes Pods

For verifikation skal du liste Kubernetes pods ned:

kubectl få pod

Her kan du se, at vi har lavet ' demo-pod ' succesfuldt:

Trin 4: Beskriv poden

For at kontrollere, om poden har indlejret den hemmelige TLS eller ej, skal du beskrive poden ved hjælp af nedenstående kommando:

kubectl beskrive pod demo-pod

Nedenstående output viser, at vi med succes har indlejret TLS-hemmeligheden med pod:

Vi har dækket, hvordan man opretter hemmelige TLS og indlejrer det med Kubernetes-applikationen, der kører i poden.

Konklusion

For at oprette den hemmelige TLS i Kubernetes skal du først oprette det TLS-signerede certifikat og den private nøgle. Start derefter Kubernetes-klyngen og kør ' kubectl opret hemmelig –cert= –key= ” kommando. Brugere kan også oprette den hemmelige TLS ved hjælp af yaml-manifest. Dette indlæg har illustreret, hvordan man opretter den hemmelige TLS, og hvordan man indlejrer hemmeligheden med en kørende applikation eller pod.