Πώς να δημιουργήσετε μυστικό TLS στο Kubernetes

Pos Na Demiourgesete Mystiko Tls Sto Kubernetes



Το Kubernetes είναι ένα εργαλείο ανοιχτού κώδικα που χρησιμοποιείται για την εκτέλεση και τη διαχείριση της εφαρμογής σε κοντέινερ μέσα στο σύμπλεγμα. Εκτελεί διάφορες εργασίες για τον έλεγχο, την εκτέλεση και την προστασία των διαπιστευτηρίων της εφαρμογής μέσω μυστικής και εισόδου.

Το Ingress χρησιμοποιείται για τη διαχείριση της εισερχόμενης κίνησης της εφαρμογής και επίσης για τον τερματισμό SSL. Αντίθετα, τα μυστικά χρησιμοποιούνται για την αποθήκευση εμπιστευτικών πληροφοριών και πιστοποιητικών TLS για εφαρμογή.

Αυτή η ανάρτηση θα απεικονίσει:







Ποια είναι τα μυστικά του Kubernetes;

Τα μυστικά είναι ένας από τους πόρους Kubernetes, που χρησιμοποιείται για την αποθήκευση εμπιστευτικών πληροφοριών, όπως διαπιστευτήρια σύνδεσης χρήστη, κλειδιά, πιστοποιητικά ή μάρκες. Τα μυστικά μπορούν να δημιουργηθούν μεμονωμένα και να συνδεθούν με λοβούς. Εμποδίζει τον προγραμματιστή να παρέχει εμπιστευτικά δεδομένα σε κώδικα και παρέχει επίσης ένα επιπλέον επίπεδο ασφάλειας. Μπορούν να δημιουργηθούν και να χρησιμοποιηθούν διάφορα είδη μυστικών. Τα μυστικά που χρησιμοποιούνται πιο συχνά είναι:



Γενικό Μυστικό: Τα γενικά μυστικά χρησιμοποιούνται για την αποθήκευση βασικών πληροφοριών όπως κωδικοί πρόσβασης, διακριτικά, κλειδιά API, κλειδιά OAuth και ούτω καθεξής.



TLS Secret: Τα μυστικά TLS χρησιμοποιούνται για την αποθήκευση ιδιωτικών κλειδιών και πιστοποιητικών που είναι υπογεγραμμένα από την ΑΠ. Για να διασφαλιστεί η ασφάλεια των εφαρμογών που εκτελούνται μέσα στο Kubernetes και για την ασφάλεια της επικοινωνίας μέσα στο σύμπλεγμα, ο χρήστης συνήθως χρειάζεται να δημιουργήσει και να ενσωματώσει μυστικά TLS στο pod.





Μητρώο Docker: Χρησιμοποιείται για την αποθήκευση των διαπιστευτηρίων μητρώου docker για εύκολη εξαγωγή των εικόνων από το μητρώο.

Προϋπόθεση: Δημιουργία Ιδιωτικού Κλειδιού και Πιστοποιητικού

Για να δημιουργήσετε το πιστοποιητικό και το ιδιωτικό κλειδί για βελτίωση της ασφάλειας, χρησιμοποιήστε το OpenSSL που δημιουργεί το CSR (αίτημα υπογραφής πιστοποιητικού) και το ιδιωτικό κλειδί. Στη συνέχεια, χρησιμοποιήστε το CSR για να δημιουργήσετε τα αυτο-υπογεγραμμένα πιστοποιητικά ή πιστοποιητικά ΑΠ.



Για να χρησιμοποιήσετε τις εντολές OpenSSL στα Windows, οι χρήστες πρέπει να εγκαταστήσουν το Git. Για το σκοπό αυτό, ακολουθήστε τη σύνδεσή μας ' Εγκαταστήστε το git στα Windows ' άρθρο.

Μετά την εγκατάσταση του git, ακολουθήστε τις παρακάτω οδηγίες για να δημιουργήσετε ένα ιδιωτικό κλειδί και ένα υπογεγραμμένο πιστοποιητικό.

Βήμα 1: Εκκινήστε το Git Bash Terminal

Κάντε μια αναζήτηση για ' Git Bash » στο μενού Έναρξη και εκκινήστε το τερματικό:

Για να ελέγξετε τον τρέχοντα κατάλογο χρησιμοποιήστε το ' pwd ' εντολή:

pwd

Αυτήν τη στιγμή, εργαζόμαστε στον κατάλογο %USERPROFILE%:

Βήμα 2: Δημιουργία νέου καταλόγου

Δημιουργήστε έναν νέο κατάλογο για να αποθηκεύσετε τα πιστοποιητικά και το ιδιωτικό κλειδί:

mkdir πιστοποιητικό

Πλοηγηθείτε στον νέο κατάλογο χρησιμοποιώντας το ' CD ' εντολή:

CD πιστοποιητικό

Βήμα 3: Δημιουργία ιδιωτικού κλειδιού

Τώρα, δημιουργήστε το ιδιωτικό κλειδί μέσω της δεδομένης εντολής. Εδώ, το δημιουργημένο ιδιωτικό κλειδί θα αποθηκευτεί στο ' mycert.κλειδί ”:

openssl genpkey -algorithm RSA -έξω mycert.κλειδί

Βήμα 4: Δημιουργία ΕΚΕ

Για να δημιουργήσετε το CSR (αίτημα υπηρεσίας πιστοποιητικού) για να λάβετε ένα υπογεγραμμένο πιστοποιητικό, χρησιμοποιήστε τη δεδομένη εντολή:

openssl απαίτηση -νέος -κλειδί mycert.κλειδί -έξω mycert.csr

Βήμα 5: Δημιουργία πιστοποιητικού

Τέλος, χρησιμοποιώντας το δημιουργημένο ιδιωτικό κλειδί και το CSR, δημιουργήστε ένα πιστοποιητικό και αποθηκεύστε το στο ' mycert.crt ' αρχείο. Για το σκοπό αυτό, εκτελέστε την παρακάτω εντολή:

openssl x509 -απαιτ -σε mycert.csr -σημαδιακό κλειδί mycert.κλειδί -έξω mycert.crt -ημέρες 365

Μετά τη δημιουργία των πιστοποιητικών TLS, ο χρήστης μπορεί να δημιουργήσει το μυστικό TLS ακολουθώντας την παρακάτω ενότητα.

Πώς να δημιουργήσετε μυστικό TLS στο Kubernetes;

Για να διασφαλιστεί η ασφάλεια της εφαρμογής και η ασφαλής επικοινωνία εντός και εκτός του συμπλέγματος Kubernetes, τα πιστοποιητικά TLS (Transport Layer Security) είναι απαραίτητα που χρησιμοποιούνται στην κρυπτογράφηση δεδομένων. Το μυστικό Kubernetes μας επιτρέπει να ενσωματώσουμε το πιστοποιητικό TLS με εκτελούμενα pods μέσω μυστικού TLS. Για να δημιουργήσετε ένα μυστικό TLS στο Kubernetes, ακολουθήστε τις παρακάτω οδηγίες.

Βήμα 1: Ξεκινήστε το Minikube Cluster

Για να ξεκινήσετε το σύμπλεγμα minikube, ξεκινήστε πρώτα το Windows PowerShell ως διαχειριστής. Μετά από αυτό, δημιουργήστε και εκτελέστε το σύμπλεγμα χρησιμοποιώντας το ' minikube εκκίνηση ' εντολή:

minikube εκκίνηση

Βήμα 2: Λήψη κόμβων

Αποκτήστε πρόσβαση στον κόμβο Kubernetes για να ελέγξετε εάν το σύμπλεγμα έχει ξεκινήσει ή όχι:

minikube λήψη κόμβων

Βήμα 3: Δημιουργήστε Secret TLS

Δημιουργήστε το μυστικό TLS στο Kubernetes χρησιμοποιώντας το ' kubectl δημιουργία μυστικού –cert= –key= ' εντολή. Εδώ, ο μυστικός τύπος μπορεί να είναι ' γενικός ',' tls ', ή ' docker-registry '. Για να δημιουργήσουμε ένα μυστικό TLS, έχουμε ορίσει τον τύπο μυστικού ως 'tls':

kubectl δημιουργεί μυστικό tls demo-secret -- πιστοποιητικό =C:\Users\Dell\cert\mycert.crt --κλειδί =C:\Users\Dell\cert\mycert.key

Βήμα 4: Αποκτήστε μυστικά

Για επιβεβαίωση, καταγράψτε το μυστικό Kubernetes χρησιμοποιώντας τη δεδομένη εντολή:

kubectl πάρει μυστικό

Εδώ, μπορείτε να δείτε ότι έχουμε δημιουργήσει αποτελεσματικά ένα ' επίδειξης απόρρητο ' που περιέχει ' 2 ” Τιμές δεδομένων:

Βήμα 5: Περιγράψτε το Secret

Για να δείτε πώς προβάλλονται ή αποθηκεύονται τα δεδομένα κρυφά, περιγράψτε το μυστικό χρησιμοποιώντας το ' kubectl περιγράφουν το μυστικό ' εντολή:

kubectl περιγράφουν μυστικό επίδειξη μυστικό

Μπορείτε να δείτε ότι οι τιμές αποθηκεύονται σε byte και δεν μπορούν να προβληθούν απευθείας σε αντίθεση με το Kubernetes ConfigMaps:

Πώς να δημιουργήσετε ένα μυστικό TLS μέσω του αρχείου Yaml;

Για να δημιουργήσετε ένα μυστικό TLS μέσω ενός αρχείου yaml, πρώτα δημιουργήστε ένα ' μυστικό.yml ” αρχείο, προσθέστε το tls base64 κωδικοποιημένο πιστοποιητικό στο ' tls.crt πλήκτρο ” και προσθέστε το κωδικοποιημένο κλειδί base64 στο ' tls.κλειδί '.

Για επίδειξη, ακολουθήστε τα βήματα που αναφέρονται.

Βήμα 1: Δημιουργία αρχείου Yaml

Δημιουργήστε ένα αρχείο με όνομα ' μυστικό.yml ” και επικολλήστε τον κωδικό που δίνεται:

apiVersion : v1

δεδομένα
:

tls.crt
: 'κωδικοποιημένο πιστοποιητικό βάσης 64'

tls.κλειδί
: 'κωδικοποιημένο κλειδί base64'

είδος
: Μυστικό

μεταδεδομένα
:

όνομα
: mytls-μυστικό

χώρο ονομάτων
: Προκαθορισμένο

τύπος
: kubernetes.io/tls

Στο παραπάνω απόσπασμα, αντικαταστήστε τις τιμές των κλειδιών 'tls.crt' και 'tls.key' με το αρχικό πιστοποιητικό και τις τιμές κλειδιών:

Βήμα 2: Δημιουργήστε ένα μυστικό

Τώρα, εφαρμόστε το μυστικό αρχείο yaml μέσω του ' kubectl apply -f ' εντολή:

ισχύει kubectl -φά μυστικό.yml

Η έξοδος δείχνει ότι δημιουργήσαμε με επιτυχία το ' mytls-μυστικό ” χρησιμοποιώντας το αρχείο yaml:

Σημείωση: Δείτε το πιστοποιητικό TLS και το ιδιωτικό κλειδί

Για να προβάλετε το κωδικοποιημένο πιστοποιητικό base64 και να το χρησιμοποιήσετε στο αρχείο yaml, εκτελέστε το ' cat <αρχείο διαδρομής προς πιστοποιητικό> | βάση64 εντολή ' στο τερματικό git bash:

Γάτα mycert.crt | βάση64

Για να δείτε το κωδικοποιημένο κλειδί base64, χρησιμοποιήστε το ' cat <αρχείο διαδρομής προς κλειδί> | βάση64 ' εντολή:

Γάτα mycert.κλειδί | βάση64

Πώς να ενσωματώσετε το Secret TLS με το Kubernetes Pod;

Αφού δημιουργήσει το μυστικό TSL, ο χρήστης μπορεί να το ενσωματώσει με το Kubernetes pod. Για να το κάνετε αυτό, χρησιμοποιήστε τις παρακάτω οδηγίες.

Βήμα 1: Δημιουργία αρχείου Yaml

Δημιουργήστε ένα αρχείο με το όνομα ' pod.yml ” αρχείο και επικολλήστε το παρακάτω απόσπασμα στο αρχείο:

apiVersion: v1

είδος: Pod

μεταδεδομένα:

όνομα: demo-pod

spec:

δοχεία:

- όνομα: html-cont

εικόνα: rafia098 / html-img: 1.0

envΑπό:

- secretRef:

όνομα: demo-secret

Στο παραπάνω απόσπασμα:

  • ' είδος Το πλήκτρο ” καθορίζει τον πόρο Kubernetes που δημιουργεί ο χρήστης.
  • ' όνομα Το πλήκτρο ” θα ορίσει το όνομα του pod.
  • ' δοχεία Το πλήκτρο ” θα αποθηκεύσει τις πληροφορίες του κοντέινερ.
  • ' όνομα Το πλήκτρο ' κάτω από το πλήκτρο 'containers' θα ορίσει το όνομα του κοντέινερ.
  • ' εικόνα Το πλήκτρο ” θα παρέχει την εικόνα της εφαρμογής ή του κοντέινερ για τη δημιουργία και την εκκίνηση της εφαρμογής μέσα στο κοντέινερ.
  • ' envΑπό Το πλήκτρο ” θα ορίσει τη μεταβλητή περιβάλλοντος από άλλους πόρους του Kubernetes. Εδώ, για να ενσωματώσετε το μυστικό TLS σε ένα pod, ' secretRef ' χρησιμοποιείται για την παροχή μυστικής αναφοράς. Για να ενσωματώσετε το παραπάνω μυστικό TLS, καθορίστε το όνομα του μυστικού στο κλειδί 'όνομα'.

Βήμα 2: Δημιουργήστε ή αναβαθμίστε το Pod

Στη συνέχεια, ανοίξτε το φάκελο όπου το ' pod.yml » δημιουργείται το αρχείο:

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

Εφαρμόστε το αρχείο yaml για να δημιουργήσετε ή να ρυθμίσετε εκ νέου το pod χρησιμοποιώντας το ' ισχύει kubectl ' εντολή:

ισχύει kubectl -φά pod.yml

Βήμα 3: Πρόσβαση στο Kubernetes Pods

Για επαλήθευση, καταγράψτε τις ομάδες Kubernetes:

kubectl παίρνω pod

Εδώ, μπορείτε να δείτε ότι έχουμε δημιουργήσει το ' demo-pod ” με επιτυχία:

Βήμα 4: Περιγράψτε το Pod

Για να ελέγξετε εάν το pod έχει ενσωματώσει το μυστικό TLS ή όχι, περιγράψτε το pod χρησιμοποιώντας την παρακάτω εντολή:

το kubectl περιγράφει το pod demo-pod

Η παρακάτω έξοδος δείχνει ότι έχουμε ενσωματώσει με επιτυχία το μυστικό TLS με το pod:

Καλύψαμε πώς να δημιουργήσουμε μυστικό TLS και να το ενσωματώσουμε με την εφαρμογή Kubernetes που εκτελείται στο pod.

συμπέρασμα

Για να δημιουργήσετε το μυστικό TLS στο Kubernetes, δημιουργήστε πρώτα το υπογεγραμμένο πιστοποιητικό TLS και το ιδιωτικό κλειδί. Μετά από αυτό, ξεκινήστε το σύμπλεγμα Kubernetes και εκτελέστε το ' kubectl δημιουργία μυστικού –cert= –key= ' εντολή. Οι χρήστες μπορούν επίσης να δημιουργήσουν το μυστικό TLS χρησιμοποιώντας το μανιφέστο yaml. Αυτή η ανάρτηση δείχνει πώς να δημιουργήσετε το μυστικό TLS και πώς να ενσωματώσετε το μυστικό σε μια εφαρμογή ή μια ομάδα που εκτελείται.