Cara Mencipta TLS Rahsia dalam Kubernetes

Cara Mencipta Tls Rahsia Dalam Kubernetes



Kubernetes ialah alat sumber terbuka yang digunakan untuk melaksanakan dan mengurus aplikasi kontena di dalam kelompok. Ia melakukan pelbagai tugas untuk mengawal, menjalankan dan menjamin kelayakan aplikasi melalui rahsia dan kemasukan.

Ingress digunakan untuk menguruskan trafik masuk aplikasi dan juga untuk penamatan SSL. Sebaliknya, rahsia digunakan untuk menyimpan maklumat sulit dan sijil TLS untuk permohonan.

Catatan ini akan menggambarkan:







Apakah Rahsia Kubernetes?

Rahsia ialah salah satu sumber Kubernetes, digunakan untuk menyimpan maklumat sulit seperti bukti kelayakan log masuk pengguna, kunci, sijil atau token. Rahsia boleh dibuat secara individu dan disambungkan ke pod. Ia menghalang pembangun daripada menyediakan data sulit dalam kod dan juga menyediakan lapisan keselamatan tambahan. Pelbagai jenis rahsia boleh dicipta dan digunakan. Rahsia yang paling biasa digunakan ialah:



Rahsia Generik: Rahsia generik digunakan untuk menyimpan maklumat asas seperti kata laluan, token, kunci API, kunci OAuth dan sebagainya.



Rahsia TLS: Rahsia TLS digunakan untuk menyimpan kunci peribadi dan sijil yang ditandatangani oleh CA. Untuk memastikan keselamatan aplikasi yang berjalan di dalam Kubernetes dan untuk menjamin komunikasi dalam kelompok, pengguna biasanya perlu mencipta dan membenamkan rahsia TLS ke pod.





Pendaftaran Docker: Ia digunakan untuk menyimpan kelayakan pendaftaran docker untuk menarik imej dari registri dengan mudah.

Prasyarat: Jana Kunci Peribadi dan Sijil

Untuk mencipta sijil dan kunci persendirian untuk peningkatan keselamatan, gunakan OpenSSL yang mencipta CSR (permintaan tandatangan sijil) dan kunci persendirian. Kemudian, gunakan CSR untuk menjana sijil yang ditandatangani sendiri atau CA.



Untuk menggunakan arahan OpenSSL pada Windows, pengguna dikehendaki memasang Git. Untuk tujuan ini, ikuti pautan kami ' Pasang git pada Windows ' artikel.

Selepas memasang git, ikut arahan di bawah untuk menjana kunci peribadi dan sijil yang ditandatangani.

Langkah 1: Lancarkan Terminal Git Bash

Buat carian untuk ' Git Bash ” dalam menu Mula dan lancarkan terminal:

Untuk menyemak direktori semasa gunakan ' pwd ” perintah:

pwd

Pada masa ini, kami sedang bekerja dalam direktori %USERPROFILE%:

Langkah 2: Cipta Direktori Baharu

Buat direktori baharu untuk menyimpan sijil dan kunci peribadi:

mkdir sijil

Navigasi ke direktori yang baru dibuat menggunakan ' cd ” perintah:

cd sijil

Langkah 3: Jana Kunci Peribadi

Sekarang, jana kunci peribadi melalui arahan yang diberikan. Di sini, kunci peribadi yang dijana akan disimpan dalam ' mycert.key ”:

openssl genpkey -algoritma RSA -keluar mycert.key

Langkah 4: Jana CSR

Untuk menjana CSR (permintaan perkhidmatan sijil) untuk mendapatkan sijil yang ditandatangani, gunakan arahan yang diberikan:

openssl req -baru -kunci mycert.key -keluar mycert.csr

Langkah 5: Jana Sijil

Akhir sekali, menggunakan kunci persendirian dan CSR yang dijana, buat sijil dan simpannya dalam ' mycert.crt ” fail. Untuk tujuan ini, laksanakan arahan di bawah:

openssl x509 -req -dalam mycert.csr -tanda tanda mycert.key -keluar mycert.crt -hari 365

Selepas menjana sijil TLS, pengguna boleh mencipta TLS rahsia dengan mengikuti bahagian di bawah.

Bagaimana untuk Mencipta TLS Rahsia dalam Kubernetes?

Untuk memastikan keselamatan aplikasi dan komunikasi selamat di dalam dan di luar kelompok Kubernetes, sijil TLS (Transport Layer Security) adalah penting yang digunakan dalam penyulitan data. Rahsia Kubernetes membolehkan kami membenamkan sijil TLS dengan pod berjalan melalui TLS rahsia. Untuk mencipta TLS rahsia dalam Kubernetes, ikuti arahan berikut.

Langkah 1: Mulakan Kluster Minikube

Untuk memulakan kluster minikube, mula-mula, lancarkan Windows PowerShell sebagai pentadbir. Selepas itu, buat dan jalankan kluster menggunakan ' permulaan minikube ” perintah:

permulaan minikube

Langkah 2: Dapatkan Nod

Akses nod Kubernetes untuk menyemak sama ada kluster dimulakan atau tidak:

minikube dapatkan nod

Langkah 3: Cipta TLS Rahsia

Cipta rahsia TLS dalam Kubernetes menggunakan “ kubectl cipta rahsia –cert= –key= ” perintah. Di sini, jenis rahsia boleh ' generik ',' tls ”, atau “ docker-registry ”. Untuk mencipta rahsia TLS, kami telah menetapkan jenis rahsia sebagai 'tls':

kubectl cipta rahsia tls demo-rahsia --sijil =C:\Users\Dell\cert\mycert.crt --kunci =C:\Users\Dell\cert\mycert.key

Langkah 4: Dapatkan Rahsia

Untuk pengesahan, senaraikan rahsia Kubernetes menggunakan arahan yang diberikan:

kubectl dapatkan rahsia

Di sini, anda boleh lihat kami telah mencipta ' rahsia demo ” yang mengandungi “ 2 ” nilai data:

Langkah 5: Terangkan Rahsia

Untuk melihat cara data dilihat atau disimpan secara rahsia, huraikan rahsia menggunakan ' kubectl menerangkan rahsia ” perintah:

kubectl menerangkan rahsia demo-rahsia

Anda boleh melihat nilai disimpan dalam bait dan tidak boleh dilihat secara langsung tidak seperti Kubernetes ConfigMaps:

Bagaimana untuk Mencipta TLS Rahsia Melalui Fail Yaml?

Untuk mencipta TLS rahsia melalui fail yaml, mula-mula, buat ' rahsia.yml ” fail, tambahkan sijil dikodkan tls base64 di dalam ' tls.crt ” kekunci, dan tambahkan kunci berkod base64 di dalam ' tls.key ”.

Untuk demonstrasi, ikuti langkah yang disenaraikan.

Langkah 1: Buat Fail Yaml

Buat fail bernama ' rahsia.yml ” dan tampal kod yang diberikan:

apiVersion : v1

data
:

tls.crt
: 'sijil berkod base64'

tls.key
: 'kunci berkod base64'

baik hati
: Rahsia

metadata
:

nama
: mytls-rahsia

ruang nama
: lalai

menaip
: kubernetes.io/tls

Dalam coretan di atas, gantikan nilai kunci 'tls.crt' dan 'tls.key' dengan sijil asal dan nilai kunci anda:

Langkah 2: Cipta Rahsia

Sekarang, gunakan fail yaml rahsia melalui ' kubectl apply -f ” perintah:

kubectl memohon -f rahsia.yml

Output menunjukkan bahawa kami telah berjaya mencipta ' mytls-rahsia ” menggunakan fail yaml:

Nota: Lihat Sijil TLS dan Kunci Peribadi

Untuk melihat sijil yang dikodkan base64 dan menggunakannya dalam fail yaml, jalankan “ cat | asas64 ” perintah dalam terminal git bash:

kucing mycert.crt | asas64

Untuk melihat kunci yang dikodkan base64, gunakan ' kucing | asas64 ” perintah:

kucing mycert.key | asas64

Bagaimana untuk Membenamkan TLS Rahsia Dengan Kubernetes Pod?

Selepas mencipta TSL rahsia, pengguna boleh membenamkannya dengan pod Kubernetes. Untuk berbuat demikian, gunakan arahan berikut.

Langkah 1: Buat Fail Yaml

Buat fail bernama ' pod.yml ” dan tampalkan coretan di bawah ke dalam fail:

apiVersion: v1

jenis: Pod

metadata:

nama: demo-pod

spesifikasi:

bekas:

- nama: html-samb

gambar: rafia098 / html-img: 1.0

envFrom:

- secretRef:

nama: rahsia demo

Dalam coretan di atas:

  • baik hati kunci ” menentukan sumber Kubernetes yang dibuat oleh pengguna.
  • nama kunci ” akan menetapkan nama pod.
  • bekas kunci ” akan menyimpan maklumat bekas.
  • nama kekunci ” di bawah kekunci “bekas” akan menetapkan nama bekas.
  • gambar kunci ” akan memberikan aplikasi atau imej bekas untuk mencipta dan memulakan aplikasi di dalam bekas.
  • envFrom kunci ” akan menetapkan pembolehubah persekitaran daripada sumber Kubernetes yang lain. Di sini, untuk membenamkan TLS rahsia dalam pod, ' rahsiaRuj ” digunakan untuk menyediakan rujukan rahsia. Untuk membenamkan TLS rahsia di atas, nyatakan nama rahsia dalam kekunci 'nama'.

Langkah 2: Buat atau Tingkatkan Pod

Seterusnya, buka folder di mana ' pod.yml ” fail dibuat:

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

Gunakan fail yaml untuk mencipta atau mengkonfigurasi semula pod menggunakan ' kubectl memohon ” perintah:

kubectl memohon -f pod.yml

Langkah 3: Akses Kubernetes Pods

Untuk pengesahan, senaraikan pod Kubernetes:

kubectl dapatkan pod

Di sini, anda boleh lihat kami telah mencipta ' demo-pod ” berjaya:

Langkah 4: Terangkan Pod

Untuk menyemak sama ada pod telah membenamkan TLS rahsia atau tidak, huraikan pod menggunakan arahan di bawah:

kubectl menerangkan pod demo-pod

Output di bawah menunjukkan bahawa kami telah berjaya membenamkan rahsia TLS dengan pod:

Kami telah membincangkan cara mencipta TLS rahsia dan membenamkannya dengan aplikasi Kubernetes yang dijalankan dalam pod.

Kesimpulan

Untuk mencipta TLS rahsia dalam Kubernetes, mula-mula buat sijil bertandatangan TLS dan kunci peribadi. Selepas itu, mulakan kluster Kubernetes dan jalankan “ kubectl cipta rahsia –cert= –key= ” perintah. Pengguna juga boleh mencipta TLS rahsia menggunakan manifes yaml. Siaran ini telah menggambarkan cara mencipta TLS rahsia dan cara membenamkan rahsia dengan aplikasi atau pod yang sedang berjalan.