Hoe u geheime TLS kunt maken in Kubernetes

Hoe U Geheime Tls Kunt Maken In Kubernetes



Kubernetes is een open-sourcetool die wordt gebruikt om de containerapplicatie binnen het cluster uit te voeren en te beheren. Het voert verschillende taken uit om de inloggegevens van de applicatie te controleren, uit te voeren en te beveiligen via geheimen en toegang.

Ingress wordt gebruikt om inkomend applicatieverkeer te beheren en ook voor SSL-beëindiging. Geheimen worden daarentegen gebruikt om vertrouwelijke informatie en TLS-certificaten op te slaan voor toepassing.

Dit bericht zal illustreren:







Wat zijn de Kubernetes-geheimen?

De geheimen zijn een van de Kubernetes-bronnen, die worden gebruikt om vertrouwelijke informatie op te slaan, zoals inloggegevens van gebruikers, sleutels, certificaten of tokens. De geheimen kunnen individueel worden aangemaakt en aan pods worden gekoppeld. Het voorkomt dat de ontwikkelaar vertrouwelijke gegevens in code aanlevert en biedt bovendien een extra beveiligingslaag. Er kunnen verschillende soorten geheimen worden gemaakt en gebruikt. De meest gebruikte geheimen zijn:



Generiek geheim: De generieke geheimen worden gebruikt om basisinformatie op te slaan, zoals wachtwoorden, tokens, API-sleutels, OAuth-sleutels, enzovoort.



TLS-geheim: TLS-geheimen worden gebruikt om privésleutels en certificaten op te slaan die zijn ondertekend door de CA. Om de veiligheid te garanderen van applicaties die binnen Kubernetes draaien en om de communicatie binnen het cluster te beveiligen, moet de gebruiker doorgaans TLS-geheimen maken en insluiten in de pod.





Docker-register: Het wordt gebruikt om de docker-registerreferenties op te slaan, zodat de afbeeldingen gemakkelijk uit het register kunnen worden gehaald.

Vereiste: Genereer een privésleutel en certificaat

Om het certificaat en de privésleutel te maken voor verbetering van de beveiliging, gebruikt u OpenSSL dat de CSR (certificaatondertekeningsverzoek) en privésleutel aanmaakt. Gebruik vervolgens CSR om de zelfondertekende of CA-certificaten te genereren.



Om de OpenSSL-opdrachten op Windows te gebruiken, moeten gebruikers Git installeren. Volg hiervoor onze gekoppelde “ Installeer git op Windows ' artikel.

Volg na het installeren van git de onderstaande instructies om een ​​privésleutel en een ondertekend certificaat te genereren.

Stap 1: Start Git Bash Terminal

Zoek naar “ Git Bash ” in het Start-menu en start de terminal:

Om de huidige map te controleren, gebruikt u de “ pwd ” commando:

pwd

Momenteel werken we in de map %USERPROFILE%:

Stap 2: Maak een nieuwe map

Maak een nieuwe map om de certificaten en privésleutel op te slaan:

mkdir cert

Navigeer naar de nieuw aangemaakte map met behulp van de “ CD ” commando:

CD cert

Stap 3: Genereer een privésleutel

Genereer nu de privésleutel via het gegeven commando. Hier wordt de gegenereerde privésleutel opgeslagen in “ mijncert.key ”:

openssl genpkey -algoritme RSA -uit mijncert.key

Stap 4: Genereer CSR

Om de CSR (certificaatserviceaanvraag) te genereren om een ​​ondertekend certificaat te verkrijgen, gebruikt u de gegeven opdracht:

openssl vereist -nieuw -sleutel mijncert.key -uit mijncert.csr

Stap 5: Certificaat genereren

Maak ten slotte met behulp van de gegenereerde privésleutel en CSR een certificaat en sla dit op in de map “ mijncert.crt ' bestand. Voer hiervoor het onderstaande commando uit:

opensslx509 -vereist -in mijncert.csr -tekensleutel mijncert.key -uit mijncert.crt -dagen 365

Na het genereren van de TLS-certificaten kan de gebruiker de geheime TLS maken door het onderstaande gedeelte te volgen.

Hoe maak je geheime TLS in Kubernetes?

Om de applicatiebeveiliging en veilige communicatie binnen en buiten het Kubernetes cluster te waarborgen zijn de TLS (Transport Layer Security) certificaten essentieel die gebruikt worden bij het versleutelen van data. Met het Kubernetes-geheim kunnen we het TLS-certificaat insluiten met actieve pods via geheime TLS. Om een ​​geheime TLS in Kubernetes aan te maken, doorloopt u de volgende instructies.

Stap 1: Start het Minikube-cluster

Om het minikube-cluster te starten, start u eerst Windows PowerShell als beheerder. Maak daarna het cluster en voer het uit met behulp van de “ minikube starten ” commando:

minikube starten

Stap 2: Knooppunten ophalen

Ga naar het Kubernetes-knooppunt om te controleren of het cluster is gestart of niet:

minikube krijgt knooppunten

Stap 3: Maak een geheime TLS

Maak het TLS-geheim in Kubernetes met behulp van “ kubectl create secret –cert= –key= commando. Hier kan het geheime type “ algemeen ', ' tl ', of ' docker-register ”. Om een ​​TLS-geheim aan te maken, hebben we het geheimtype ingesteld op “tls”:

kubectl maakt geheime tls demo-geheim --cert =C:\Gebruikers\Dell\cert\mijncert.crt --sleutel =C:\Gebruikers\Dell\cert\mijncert.key

Stap 4: Krijg geheimen

Ter bevestiging vermeldt u het Kubernetes-geheim met behulp van de gegeven opdracht:

kubectl wordt geheim

Hier kunt u zien dat we effectief een “ demo-geheim ' dat bezit ' 2 ” gegevenswaarden:

Stap 5: Beschrijf geheim

Om te zien hoe gegevens in het geheim worden bekeken of opgeslagen, beschrijft u het geheim met behulp van de “ kubectl beschrijft geheim ” commando:

kubectl beschrijft geheime demo-geheim

U kunt zien dat waarden in bytes zijn opgeslagen en niet direct kunnen worden bekeken, in tegenstelling tot Kubernetes ConfigMaps:

Hoe maak je een geheime TLS via het Yaml-bestand?

Om een ​​geheime TLS via een yaml-bestand te maken, maakt u eerst een “ geheim.yml '-bestand, voeg het tls base64 gecodeerd certificaat in de ' tls.crt '-toets en voeg de base64-gecodeerde sleutel in de ' tls.sleutel ”.

Volg voor demonstratie de vermelde stappen.

Stap 1: Maak een Yaml-bestand

Maak een bestand met de naam “ geheim.yml ' en plak de gegeven code:

apiversie : v1

gegevens
:

tls.crt
: 'base64 gecodeerd certificaat'

tls.sleutel
: 'base64 gecodeerde sleutel'

vriendelijk
: Geheim

metagegevens
:

naam
: mytls-geheim

naamruimte
: standaard

type
: kubernetes.io/tls

Vervang in het bovenstaande fragment de sleutelwaarden ‘tls.crt’ en ‘tls.key’ door uw originele certificaat en sleutelwaarden:

Stap 2: Creëer een geheim

Pas nu het geheime yaml-bestand toe via de “ kubectl apply -f ” commando:

kubectl van toepassing -F geheim.yml

Uit de uitvoer blijkt dat we met succes de “ mytls-geheim 'met behulp van yaml-bestand:

Opmerking: Bekijk het TLS-certificaat en de privésleutel

Om het met base64 gecodeerde certificaat te bekijken en in het yaml-bestand te gebruiken, voert u de opdracht “ cat | basis64 ” commando in de git bash-terminal:

kat mijncert.crt | basis64

Om de met base64 gecodeerde sleutel te bekijken, gebruikt u “ cat | basis64 ” commando:

kat mijncert.key | basis64

Hoe geheime TLS in te sluiten met Kubernetes Pod?

Nadat de gebruiker de geheime TSL heeft gemaakt, kan deze worden ingesloten met de Kubernetes-pod. Gebruik hiervoor de volgende instructies.

Stap 1: Maak een Yaml-bestand

Maak een bestand met de naam “ pod.yml ”-bestand en plak het onderstaande fragment in het bestand:

apiVersie: v1

soort: Pod

metagegevens:

naam: demo-pod

specificatie:

containers:

- naam: html-cont

afbeelding: rafia098 / html-img: 1,0

envVan:

- geheimRef:

naam: demo-geheim

In het bovenstaande fragment:

  • vriendelijk De sleutel specificeert de Kubernetes-bron die de gebruiker maakt.
  • naam '-toets stelt de podnaam in.
  • containers ”-toets slaat de containerinformatie op.
  • naam '-toets onder de'containers'-toets stelt de containernaam in.
  • afbeelding De sleutel levert de applicatie- of containerimage waarmee u de applicatie in de container kunt maken en starten.
  • envVan De sleutel stelt de omgevingsvariabele van andere Kubernetes-bronnen in. Hier, om de geheime TLS in een pod in te sluiten, “ geheimRef ” wordt gebruikt om een ​​geheime referentie op te geven. Om de bovenstaande geheime TLS in te sluiten, geeft u de naam van het geheim op in de sleutel “name”.

Stap 2: Maak of upgrade de pod

Open vervolgens de map waarin de “ pod.yml ”-bestand is gemaakt:

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

Pas het yaml-bestand toe om de pod te maken of opnieuw te configureren met behulp van de “ kubectl van toepassing ” commando:

kubectl van toepassing -F pod.yml

Stap 3: Toegang tot Kubernetes-pods

Ter verificatie vermeldt u de Kubernetes-pods:

kubectl krijgt pod

Hier kunt u zien dat we de “ demo-pod ' met succes:

Stap 4: Beschrijf de pod

Om te controleren of de pod de geheime TLS heeft ingesloten of niet, beschrijft u de pod met behulp van de onderstaande opdracht:

kubectl beschrijft pod demo-pod

Uit de onderstaande uitvoer blijkt dat we het TLS-geheim met succes hebben ingebed in de pod:

We hebben besproken hoe u geheime TLS kunt maken en deze kunt insluiten met de Kubernetes-toepassing die in de pod wordt uitgevoerd.

Conclusie

Om de geheime TLS in Kubernetes te maken, maakt u eerst het door TLS ondertekende certificaat en de persoonlijke sleutel aan. Start daarna het Kubernetes-cluster en voer de “ kubectl create secret –cert= –key= commando. Gebruikers kunnen ook de geheime TLS maken met behulp van het yaml-manifest. Dit bericht heeft geïllustreerd hoe u de geheime TLS kunt maken en hoe u het geheim kunt insluiten in een actieve toepassing of pod.