Kuidas Kubernetesis salajasi TLS-i luua

Kuidas Kubernetesis Salajasi Tls I Luua



Kubernetes on avatud lähtekoodiga tööriist, mida kasutatakse klastri sees oleva konteinerrakenduse käivitamiseks ja haldamiseks. See täidab mitmesuguseid ülesandeid rakenduse mandaatide juhtimiseks, käitamiseks ja kaitsmiseks salajase ja sissepääsu kaudu.

Ingressi kasutatakse rakenduste sissetuleva liikluse haldamiseks ja ka SSL-i lõpetamiseks. Seevastu saladusi kasutatakse konfidentsiaalse teabe ja rakenduse TLS-sertifikaatide salvestamiseks.

See postitus illustreerib:







Mis on Kubernetese saladused?

Saladused on üks Kubernetese ressurssidest, mida kasutatakse konfidentsiaalse teabe (nt kasutaja sisselogimismandaatide, võtmete, sertifikaatide või märkide) salvestamiseks. Saladusi saab luua eraldi ja ühendada kaunadega. See takistab arendajal koodis konfidentsiaalseid andmeid esitamast ja pakub ka täiendavat turvakihti. Saate luua ja kasutada erinevaid saladusi. Kõige sagedamini kasutatavad saladused on:



Üldine saladus: Üldiseid saladusi kasutatakse põhiteabe (nt paroolid, märgid, API-võtmed, OAuthi võtmed jne) salvestamiseks.



TLS-i saladus: TLS-i saladusi kasutatakse CA allkirjastatud privaatvõtmete ja sertifikaatide salvestamiseks. Kubernetese sees töötavate rakenduste turvalisuse tagamiseks ja klastrisisese suhtluse tagamiseks peab kasutaja tavaliselt TLS-i saladusi looma ja hoidikusse manustama.





Dockeri register: Seda kasutatakse dockeri registri mandaadi salvestamiseks, et hõlpsasti pilte registrist tõmmata.

Eeltingimus: privaatvõtme ja sertifikaadi genereerimine

Turvalisuse parandamiseks sertifikaadi ja privaatvõtme loomiseks kasutage OpenSSL-i, mis loob CSR-i (sertifikaadi allkirjastamise taotluse) ja privaatvõtme. Seejärel kasutage iseallkirjastatud või CA-sertifikaatide loomiseks CSR-i.



OpenSSL-i käskude kasutamiseks Windowsis peavad kasutajad installima Giti. Selleks järgige meie linki ' Installige git Windowsi ” artikkel.

Pärast giti installimist järgige privaatvõtme ja allkirjastatud sertifikaadi genereerimiseks allolevaid juhiseid.

1. samm: käivitage Git Bashi terminal

Tehke otsing ' Git Bash ” menüüs Start ja käivitage terminal:

Praeguse kataloogi kontrollimiseks kasutage ' pwd 'käsk:

pwd

Praegu töötame kataloogis %USERPROFILE%:

2. samm: looge uus kataloog

Looge sertifikaatide ja privaatvõtme salvestamiseks uus kataloog:

mkdir sert

Liikuge vastloodud kataloogi, kasutades nuppu ' cd 'käsk:

cd sert

3. samm: looge privaatvõti

Nüüd genereerige antud käsu kaudu privaatvõti. Siin salvestatakse loodud privaatvõti kausta ' mycert.key ”:

openssl genpkey - algoritm RSA - välja mycert.key

4. samm: looge CSR

CSR-i (sertifikaaditeenuse taotlus) genereerimiseks allkirjastatud sertifikaadi saamiseks kasutage antud käsku:

openssl req - uus -võti mycert.key - välja mycert.csr

5. samm: looge sertifikaat

Lõpuks looge loodud privaatvõtme ja CSR-i abil sertifikaat ja salvestage see kausta ' mycert.crt ” faili. Selleks käivitage järgmine käsk:

openssl x509 -req -sisse mycert.csr -märkvõti mycert.key - välja mycert.crt -päevad 365

Pärast TLS-i sertifikaatide loomist saab kasutaja luua salajase TLS-i, järgides allolevat jaotist.

Kuidas luua Kubernetesis salajast TLS-i?

Rakenduste turvalisuse ja turvalise suhtluse tagamiseks Kubernetese klastris ja väljaspool seda on andmete krüptimisel kasutatavad TLS-i (Transport Layer Security) sertifikaadid hädavajalikud. Kubernetese saladus võimaldab meil manustada TLS-i sertifikaadi töötavate podidega salajase TLS-i kaudu. Kubernetesis salajase TLS-i loomiseks järgige järgmisi juhiseid.

1. samm: käivitage Minikube Cluster

Minikube klastri käivitamiseks käivitage esmalt Windows PowerShell administraatorina. Pärast seda looge ja käivitage klaster, kasutades ' minikube start 'käsk:

minikube start

2. samm: hankige sõlmed

Juurdepääs Kubernetese sõlmele, et kontrollida, kas klaster on käivitatud või mitte:

minikube saada sõlmed

3. samm: looge salajane TLS

Looge Kubernetesis TLS-i saladus, kasutades ' kubectl loo salajane –cert= –key= ” käsk. Siin võib salajane tüüp olla ' üldine ', ' tls ”, või „ dokkiregister ”. TLS-i saladuse loomiseks oleme määranud saladuse tüübiks 'tls':

kubectl loo salajane tls demo-saladus -- sert =C:\Users\Dell\cert\mycert.crt --võti =C:\Users\Dell\cert\mycert.key

4. samm: hankige saladused

Kinnitamiseks loetlege Kubernetese saladus, kasutades antud käsku:

kubectl saada saladus

Siin näete, et oleme tõhusalt loonud demo-saladus ', mis sisaldab ' 2 ” andmeväärtused:

5. samm: kirjeldage saladust

Andmete salajase vaatamise või salvestamise vaatamiseks kirjeldage saladust, kasutades ' kubectl kirjeldab saladust 'käsk:

kubectl kirjeldada salajast demo-saladust

Näete, et väärtused on salvestatud baitides ja erinevalt Kubernetes ConfigMapsist ei saa neid otse vaadata:

Kuidas luua salajane TLS Yaml-faili kaudu?

Salajase TLS-i loomiseks yamli faili kaudu looge esmalt ' saladus.yml ” faili, lisage tls base64 kodeeritud sertifikaat ' tls.crt ” klahvi ja lisage base64 kodeeritud võti ' tls.key ”.

Demonstreerimiseks järgige loetletud samme.

1. samm: looge Yaml-fail

Looge fail nimega ' saladus.yml ” ja kleepige antud kood:

apiVersion : v1

andmeid
:

tls.crt
: 'base64 kodeeritud sert'

tls.key
: 'base64 kodeeritud võti'

lahke
: Saladus

metaandmed
:

nimi
: mütlid-saladus

nimeruum
: vaikimisi

tüüp
: kubernetes.io/tls

Ülaltoodud koodilõigul asendage võtme väärtused „tls.crt” ja „tls.key” oma algse sertifikaadi ja võtmeväärtustega:

2. samm: looge saladus

Nüüd rakendage salajane yaml-fail läbi ' kubectl apply -f 'käsk:

kubectl rakendada -f saladus.yml

Väljund näitab, et oleme edukalt loonud mütlid-saladus yaml-faili kasutades:

Märkus. Vaadake TLS-i sertifikaati ja privaatvõtit

Base64 kodeeritud sertifikaadi vaatamiseks ja selle kasutamiseks yaml-failis käivitage ' cat | alus64 ” käsk git bashi terminalis:

kass mycert.crt | alus64

Base64 kodeeritud võtme vaatamiseks kasutage ' kass | alus64 'käsk:

kass mycert.key | alus64

Kuidas manustada salajast TLS-i Kubernetes Podiga?

Pärast salajase TSL-i loomist saab kasutaja selle Kubernetes podiga manustada. Selleks kasutage järgmisi juhiseid.

1. samm: looge Yaml-fail

Looge fail nimega ' pod.yml ” faili ja kleepige allolev koodilõik faili:

apiversioon: v1

tüüp: kaunad

metaandmed:

nimi: demo-pod

spetsifikatsioon:

konteinerid:

- nimi: html-cont

pilt: rafia098 / html-img: 1.0

envFrom:

- salajane viide:

nimi: demo-saladus

Ülaltoodud lõigus:

  • lahke võti määrab Kubernetese ressursi, mille kasutaja loob.
  • nimi ” klahv määrab kausta nime.
  • konteinerid ” klahv salvestab konteineriteabe.
  • nimi klahvi 'konteinerid' all määrab konteineri nime.
  • pilt ” klahv pakub rakenduse või konteineri kujutist, et luua ja käivitada rakendus konteineris.
  • envFrom ” võti määrab keskkonnamuutuja muudest Kubernetese ressurssidest. Siin salajase TLS-i hoidikusse manustamiseks: salajaneRef ” kasutatakse salajase viite andmiseks. Ülaltoodud salajase TLS-i manustamiseks määrake saladuse nimi võtmes 'nimi'.

2. samm: looge või uuendage Pod

Järgmisena avage kaust, kus pod.yml ” fail on loodud:

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

Rakendage yaml-fail, et luua või uuesti seadistada, kasutades ' kubectl rakendada 'käsk:

kubectl rakendada -f pod.yml

3. toiming. Juurdepääs Kubernetes Podidele

Kontrollimiseks loetlege Kubernetese kaunad:

kubectl saada pod

Siin näete, et oleme loonud demo-pod ' edukalt:

4. samm: kirjeldage kambrit

Kontrollimaks, kas pod on manustatud salajase TLS-i või mitte, kirjeldage podi alloleva käsu abil:

kubectl kirjeldab pod demo-pod

Allolev väljund näitab, et oleme TLS-saladuse podiga edukalt manustanud:

Oleme käsitlenud salajast TLS-i loomist ja selle manustamist podis töötava Kubernetese rakendusega.

Järeldus

Salajase TLS-i loomiseks Kuberneteses looge esmalt TLS-iga allkirjastatud sertifikaat ja privaatvõti. Pärast seda käivitage Kubernetese klaster ja käivitage ' kubectl loo salajane –cert= –key= ” käsk. Kasutajad saavad salajase TLS-i luua ka yamli manifesti abil. See postitus on illustreerinud salajase TLS-i loomist ja salajase manustamist töötava rakenduse või taskuga.