Hvordan lage hemmelig TLS i Kubernetes

Hvordan Lage Hemmelig Tls I Kubernetes



Kubernetes er et åpen kildekodeverktøy som brukes til å kjøre og administrere den containeriserte applikasjonen inne i klyngen. Den utfører ulike oppgaver for å kontrollere, kjøre og sikre applikasjonens legitimasjon gjennom hemmelig og inntrengning.

Ingress brukes til å administrere innkommende trafikk til applikasjoner og også for SSL-avslutning. Derimot brukes hemmeligheter til å lagre konfidensiell informasjon og TLS-sertifikater for søknad.

Dette innlegget vil illustrere:







Hva er Kubernetes-hemmelighetene?

Hemmelighetene er en av Kubernetes-ressursene som brukes til å lagre konfidensiell informasjon som brukerpåloggingsinformasjon, nøkler, sertifikater eller tokens. Hemmelighetene kan lages individuelt og kobles til pods. Det forhindrer utvikleren i å gi konfidensielle data i kode og gir også et ekstra lag med sikkerhet. Ulike typer hemmeligheter kan skapes og brukes. De mest brukte hemmelighetene er:



Generisk hemmelighet: De generiske hemmelighetene brukes til å lagre grunnleggende informasjon som passord, tokens, API-nøkler, OAuth-nøkler og så videre.



TLS-hemmelighet: TLS-hemmeligheter brukes til å lagre private nøkler og sertifikater som er signert av CA. For å sikre sikkerheten til applikasjoner som kjører inne i Kubernetes og for å sikre kommunikasjon i klyngen, må brukeren vanligvis opprette og bygge inn TLS-hemmeligheter i poden.





Docker Registry: Den brukes til å lagre docker-registerlegitimasjonen for å enkelt trekke bildene fra registret.

Forutsetning: Generer privat nøkkel og sertifikat

For å opprette sertifikatet og den private nøkkelen for sikkerhetsforbedring, bruk OpenSSL som oppretter CSR (sertifikatsigneringsforespørsel) og den private nøkkelen. Bruk deretter CSR til å generere de selvsignerte eller CA-sertifikatene.



For å bruke OpenSSL-kommandoene på Windows, må brukere installere Git. For dette formålet, følg vår tilknyttede ' Installer git på Windows ' artikkel.

Etter å ha installert git, følg instruksjonene nedenfor for å generere en privat nøkkel og signert sertifikat.

Trinn 1: Start Git Bash Terminal

Foreta et søk etter ' Git Bash ' i Start-menyen og start terminalen:

For å sjekke gjeldende katalog, bruk ' pwd ' kommando:

pwd

For øyeblikket jobber vi i %USERPROFILE%-katalogen:

Trinn 2: Opprett ny katalog

Opprett en ny katalog for å lagre sertifikatene og den private nøkkelen:

mkdir cert

Naviger til den nyopprettede katalogen ved å bruke ' cd ' kommando:

cd cert

Trinn 3: Generer privat nøkkel

Generer nå den private nøkkelen gjennom den gitte kommandoen. Her vil den genererte private nøkkelen bli lagret i ' mycert.key ':

openssl genpkey -algoritme RSA -ute mycert.key

Trinn 4: Generer CSR

For å generere CSR (sertifikattjenesteforespørsel) for å få et signert sertifikat, bruk den gitte kommandoen:

openssl rekv -ny -nøkkel mycert.key -ute mycert.csr

Trinn 5: Generer sertifikat

Til slutt, bruk den genererte private nøkkelen og CSR, opprett et sertifikat og lagre det i ' mycert.crt ' fil. For dette formålet, utfør kommandoen nedenfor:

openssl x509 -rekv -i mycert.csr -skilt mycert.key -ute mycert.crt -dager 365

Etter å ha generert TLS-sertifikatene, kan brukeren opprette den hemmelige TLS ved å følge avsnittet nedenfor.

Hvordan lage hemmelig TLS i Kubernetes?

For å sikre applikasjonssikkerhet og sikker kommunikasjon innenfor og utenfor Kubernetes-klyngen, er TLS-sertifikatene (Transport Layer Security) avgjørende som brukes i datakryptering. Kubernetes-hemmeligheten lar oss bygge inn TLS-sertifikatet med løpende pods gjennom hemmelig TLS. For å lage en hemmelig TLS i Kubernetes, gå gjennom følgende instruksjoner.

Trinn 1: Start Minikube Cluster

For å starte minikube-klyngen, start først Windows PowerShell som administrator. Deretter oppretter og kjører du klyngen ved å bruke ' minikube start ' kommando:

minikube start

Trinn 2: Få noder

Gå til Kubernetes-noden for å sjekke om klyngen er startet eller ikke:

minikube få noder

Trinn 3: Lag hemmelig TLS

Lag TLS-hemmeligheten i Kubernetes ved å bruke ' kubectl opprette hemmelig –cert= –nøkkel= ' kommando. Her kan den hemmelige typen være ' generisk ', ' tls ', eller ' docker-register '. For å lage en TLS-hemmelighet, har vi satt hemmeligtypen som 'tls':

kubectl opprette hemmelig tls demo-hemmelig --sert =C:\Brukere\Dell\cert\mycert.crt --nøkkel =C:\Users\Dell\cert\mycert.key

Trinn 4: Få hemmeligheter

For bekreftelse, skriv ned Kubernetes-hemmeligheten ved å bruke den gitte kommandoen:

kubectl blir hemmelig

Her kan du se at vi effektivt har laget en ' demo-hemmelig ' som inneholder ' 2 ' dataverdier:

Trinn 5: Beskriv hemmeligheten

For å se hvordan data blir sett på eller lagret i hemmelighet, beskriv hemmeligheten ved å bruke ' kubectl beskriver hemmelig ' kommando:

kubectl beskrive hemmelig demo-hemmelighet

Du kan se verdier er lagret i byte og kan ikke vises direkte i motsetning til Kubernetes ConfigMaps:

Hvordan lage en hemmelig TLS gjennom Yaml-fil?

For å lage en hemmelig TLS gjennom en yaml-fil, må du først opprette en ' hemmelig.yml ”-filen, legg til tls base64-kodet sertifikat i « tls.crt ”-tasten, og legg til base64-kodet nøkkel i « tls.key '.

Følg trinnene som er oppført for demonstrasjon.

Trinn 1: Lag Yaml-fil

Lag en fil med navnet ' hemmelig.yml ' og lim inn den gitte koden:

apiVersjon : v1

data
:

tls.crt
: 'base64-kodet sertifikat'

tls.key
: 'base64-kodet nøkkel'

snill
: Hemmelig

metadata
:

Navn
: mytls-hemmelig

navneområde
: misligholde

type
: kubernetes.io/tls

I kodebiten ovenfor erstatter du nøkkelverdiene 'tls.crt' og 'tls.key' med ditt originale sertifikat og nøkkelverdier:

Trinn 2: Lag en hemmelighet

Bruk nå den hemmelige yaml-filen gjennom ' kubectl gjelder -f ' kommando:

kubectl gjelder -f hemmelig.yml

Utdataene viser at vi har opprettet ' mytls-hemmelig ' ved å bruke yaml-fil:

Merk: Se TLS-sertifikat og privat nøkkel

For å se det base64-kodede sertifikatet og bruke det i yaml-filen, kjør ' cat | base64 kommando i git bash-terminalen:

katt mycert.crt | base64

For å se den base64-kodede nøkkelen, bruk ' cat | base64 ' kommando:

katt mycert.key | base64

Hvordan bygge inn hemmelig TLS med Kubernetes Pod?

Etter å ha opprettet den hemmelige TSL-en, kan brukeren bygge den inn med Kubernetes-poden. For å gjøre det, bruk følgende instruksjoner.

Trinn 1: Lag Yaml-fil

Lag en fil som heter ' pod.yml ' fil og lim inn kodebiten nedenfor i filen:

apiVersjon: v1

type: Pod

metadata:

navn: demo-pod

spesifikasjon:

beholdere:

- navn: html-forts

bilde: rafia098 / html-img: 1.0

envFra:

- hemmelig Ref:

navn: demo-hemmelig

I utdraget ovenfor:

  • ' snill ”-tasten spesifiserer Kubernetes-ressursen som brukeren oppretter.
  • ' Navn ”-tasten vil angi podnavnet.
  • ' containere ”-tasten vil lagre beholderinformasjonen.
  • ' Navn '-tasten under 'containere'-tasten vil angi beholdernavnet.
  • ' bilde ”-tasten vil gi applikasjonen eller beholderbildet for å opprette og starte applikasjonen inne i beholderen.
  • ' envFra ”-tasten vil sette miljøvariabelen fra andre Kubernetes-ressurser. Her, for å bygge inn den hemmelige TLS i en pod, ' hemmeligRef ' brukes til å gi en hemmelig referanse. For å bygge inn den hemmelige TLS ovenfor, spesifiser navnet på hemmeligheten i 'navn'-tasten.

Trinn 2: Opprett eller oppgrader poden

Deretter åpner du mappen der ' pod.yml ' fil er opprettet:

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

Bruk yaml-filen for å opprette eller rekonfigurere poden ved å bruke ' kubectl gjelder ' kommando:

kubectl gjelder -f pod.yml

Trinn 3: Få tilgang til Kubernetes Pods

For verifisering, skriv ned Kubernetes-podene:

kubectl få pod

Her kan du se at vi har laget ' demo-pod ' vellykket:

Trinn 4: Beskriv Poden

For å sjekke om poden har innebygd den hemmelige TLS eller ikke, beskriv poden ved å bruke kommandoen nedenfor:

kubectl beskrive pod demo-pod

Utdataene nedenfor viser at vi har innebygd TLS-hemmeligheten med pod:

Vi har dekket hvordan du lager hemmelig TLS og bygger det inn med Kubernetes-applikasjonen som kjører i poden.

Konklusjon

For å opprette den hemmelige TLS i Kubernetes, oppretter du først det TLS-signerte sertifikatet og den private nøkkelen. Etter det, start Kubernetes-klyngen og kjør ' kubectl opprette hemmelig –cert= –nøkkel= ' kommando. Brukere kan også lage den hemmelige TLS ved å bruke yaml-manifest. Dette innlegget har illustrert hvordan du lager den hemmelige TLS og hvordan du kan bygge inn hemmeligheten med en kjørende applikasjon eller pod.