Cách tạo TLS bí mật trong Kubernetes

Cach Tao Tls Bi Mat Trong Kubernetes



Kubernetes là một công cụ nguồn mở được sử dụng để thực thi và quản lý ứng dụng được chứa trong cụm. Nó thực hiện nhiều tác vụ khác nhau để kiểm soát, chạy và bảo mật thông tin xác thực của ứng dụng thông qua bí mật và xâm nhập.

Ingress được sử dụng để quản lý lưu lượng truy cập đến ứng dụng và cũng để chấm dứt SSL. Ngược lại, bí mật được sử dụng để lưu trữ thông tin bí mật và chứng chỉ TLS cho ứng dụng.

Bài đăng này sẽ minh họa:







Bí mật Kubernetes là gì?

Bí mật là một trong những tài nguyên Kubernetes, được sử dụng để lưu trữ thông tin bí mật như thông tin đăng nhập của người dùng, khóa, chứng chỉ hoặc mã thông báo. Các bí mật có thể được tạo riêng lẻ và kết nối với các nhóm. Nó ngăn nhà phát triển cung cấp dữ liệu bí mật trong mã và cũng cung cấp thêm một lớp bảo mật. Các loại bí mật khác nhau có thể được tạo ra và sử dụng. Các bí mật được sử dụng phổ biến nhất là:



Bí mật chung: Các bí mật chung được sử dụng để lưu trữ thông tin cơ bản như mật khẩu, mã thông báo, khóa API, khóa OAuth, v.v.



Bí mật TLS: Bí mật TLS được sử dụng để lưu trữ khóa riêng và chứng chỉ được CA ký. Để đảm bảo tính bảo mật của các ứng dụng chạy bên trong Kubernetes và đảm bảo liên lạc trong cụm, người dùng thường cần tạo và nhúng các bí mật TLS vào nhóm.





Đăng ký Docker: Nó được sử dụng để lưu trữ thông tin xác thực đăng ký docker để dễ dàng lấy hình ảnh từ sổ đăng ký.

Điều kiện tiên quyết: Tạo khóa riêng và chứng chỉ

Để tạo chứng chỉ và khóa riêng nhằm cải thiện bảo mật, hãy sử dụng OpenSSL để tạo CSR (yêu cầu ký chứng chỉ) và khóa riêng. Sau đó, sử dụng CSR để tạo chứng chỉ tự ký hoặc CA.



Để sử dụng các lệnh OpenSSL trên Windows, người dùng phải cài đặt Git. Vì mục đích này, hãy theo dõi liên kết của chúng tôi “ Cài đặt git trên Windows ' bài báo.

Sau khi cài đặt git, hãy làm theo hướng dẫn bên dưới để tạo khóa riêng và chứng chỉ đã ký.

Bước 1: Khởi chạy Git Bash Terminal

Thực hiện tìm kiếm “ Git Bash ” trong menu Bắt đầu và khởi chạy thiết bị đầu cuối:

Để kiểm tra thư mục hiện tại, hãy sử dụng “ pwd ' yêu cầu:

pwd

Hiện tại, chúng tôi đang làm việc trong thư mục %USERPROFILE%:

Bước 2: Tạo thư mục mới

Tạo một thư mục mới để lưu chứng chỉ và khóa riêng:

mkdir chứng chỉ

Điều hướng đến thư mục mới được tạo bằng cách sử dụng “ đĩa CD ' yêu cầu:

đĩa CD chứng chỉ

Bước 3: Tạo khóa riêng

Bây giờ, tạo khóa riêng thông qua lệnh đã cho. Tại đây, khóa riêng được tạo sẽ được lưu trong “ mycert.key ”:

mã khóa openssl -thuật toán RSA -ngoài mycert.key

Bước 4: Tạo CSR

Để tạo CSR (yêu cầu dịch vụ chứng chỉ) để nhận chứng chỉ đã ký, hãy sử dụng lệnh đã cho:

yêu cầu openssl -mới -chìa khóa mycert.key -ngoài mycert.csr

Bước 5: Tạo chứng chỉ

Cuối cùng, sử dụng khóa riêng và CSR đã tạo, tạo chứng chỉ và lưu nó vào “ mycert.crt ' tài liệu. Với mục đích này, hãy thực hiện lệnh dưới đây:

openssl x509 -req -TRONG mycert.csr -ký hiệu mycert.key -ngoài mycert.crt -ngày 365

Sau khi tạo chứng chỉ TLS, người dùng có thể tạo TLS bí mật bằng cách làm theo phần bên dưới.

Làm cách nào để tạo TLS bí mật trong Kubernetes?

Để đảm bảo bảo mật ứng dụng và liên lạc an toàn trong và ngoài cụm Kubernetes, chứng chỉ TLS (Transport Layer Security) rất cần thiết được sử dụng trong mã hóa dữ liệu. Bí mật Kubernetes cho phép chúng tôi nhúng chứng chỉ TLS với các nhóm đang chạy thông qua TLS bí mật. Để tạo TLS bí mật trong Kubernetes, hãy làm theo hướng dẫn sau.

Bước 1: Khởi động cụm Minikube

Để khởi động cụm minikube, trước tiên, hãy khởi chạy Windows PowerShell với tư cách quản trị viên. Sau đó, tạo và chạy cụm bằng cách sử dụng lệnh “ bắt đầu minikube ' yêu cầu:

bắt đầu minikube

Bước 2: Nhận nút

Truy cập nút Kubernetes để kiểm tra xem cụm đã được khởi động hay chưa:

minikube nhận các nút

Bước 3: Tạo TLS bí mật

Tạo bí mật TLS trong Kubernetes bằng cách sử dụng “ kubectl create secret –cert= –key= ' yêu cầu. Ở đây, loại bí mật có thể là “ chung ',' tls ', hoặc ' docker-đăng ký ”. Để tạo bí mật TLS, chúng tôi đã đặt loại bí mật là “tls”:

kubectl tạo bí mật tls demo-secret --chứng chỉ =C:\Users\Dell\cert\mycert.crt --chìa khóa =C:\Users\Dell\cert\mycert.key

Bước 4: Nhận bí mật

Để xác nhận, hãy liệt kê bí mật Kubernetes bằng lệnh đã cho:

kubectl có được bí mật

Ở đây, bạn có thể thấy chúng tôi đã tạo một cách hiệu quả một “ bản demo bí mật ' nó bao gồm ' 2 ” giá trị dữ liệu:

Bước 5: Mô tả bí mật

Để xem cách dữ liệu được xem hoặc lưu trữ bí mật, hãy mô tả bí mật bằng cách sử dụng “ kubectl mô tả bí mật ' yêu cầu:

kubectl mô tả bí mật demo-bí mật

Bạn có thể thấy các giá trị được lưu trữ theo byte và không thể xem trực tiếp không giống như Kubernetes ConfigMaps:

Làm cách nào để tạo TLS bí mật thông qua tệp Yaml?

Để tạo TLS bí mật thông qua tệp yaml, trước tiên, hãy tạo “ bí mật.yml ” tập tin, thêm chứng chỉ được mã hóa tls base64 bên trong ' tls.crt ” và thêm phím khóa mã hóa base64 bên trong ' tls.key ”.

Để trình diễn, hãy làm theo các bước được liệt kê.

Bước 1: Tạo tệp Yaml

Tạo một tập tin có tên “ bí mật.yml ” và dán mã đã cho:

apiPhiên bản : v1

dữ liệu
:

tls.crt
: 'chứng chỉ được mã hóa base64'

tls.key
: 'khóa mã hóa base64'

loại
: Bí mật

metadata
:

tên
: mytls-bí mật

không gian tên
: mặc định

kiểu
: kubernetes.io/tls

Trong đoạn mã trên, hãy thay thế các giá trị khóa “tls.crt” và “tls.key” bằng chứng chỉ gốc và các giá trị khóa của bạn:

Bước 2: Tạo bí mật

Bây giờ, hãy áp dụng tệp yaml bí mật thông qua “ kubectl áp dụng -f ' yêu cầu:

kubectl áp dụng -f bí mật.yml

Kết quả đầu ra cho thấy chúng ta đã tạo thành công “ mytls-bí mật ” sử dụng tệp yaml:

Lưu ý: Xem Chứng chỉ TLS và Khóa riêng

Để xem chứng chỉ được mã hóa base64 và sử dụng nó trong tệp yaml, hãy chạy lệnh “ cat <đường dẫn đến tệp chứng chỉ> | cơ sở64 ” lệnh trong thiết bị đầu cuối git bash:

con mèo mycert.crt | cơ sở64

Để xem khóa được mã hóa base64, hãy sử dụng “ cat | cơ sở64 ' yêu cầu:

con mèo mycert.key | cơ sở64

Làm cách nào để nhúng TLS bí mật với Kubernetes Pod?

Sau khi tạo TSL bí mật, người dùng có thể nhúng nó vào nhóm Kubernetes. Để làm như vậy, hãy sử dụng các hướng dẫn sau.

Bước 1: Tạo tệp Yaml

Tạo một tập tin có tên “ pod.yml ” và dán đoạn mã bên dưới vào tệp:

apiPhiên bản: v1

loại: Pod

metadata:

Tên: demo-pod

thông số kỹ thuật:

hộp đựng:

- tên: html-cont

hình ảnh: rafia098 / html-img: 1.0

envTừ:

- bí mậtRef:

Tên: demo-bí mật

Trong đoạn trích trên:

  • loại ” key chỉ định tài nguyên Kubernetes mà người dùng đang tạo.
  • tên Phím ” sẽ đặt tên nhóm.
  • hộp đựng ” key sẽ lưu trữ thông tin vùng chứa.
  • tên Phím ” bên dưới phím “container” sẽ đặt tên vùng chứa.
  • hình ảnh Phím ” sẽ cung cấp ứng dụng hoặc hình ảnh vùng chứa để tạo và khởi động ứng dụng bên trong vùng chứa.
  • envTừ ” sẽ đặt biến môi trường từ các tài nguyên Kubernetes khác. Ở đây, để nhúng TLS bí mật vào một nhóm, “ bí mậtRef ” được sử dụng để cung cấp một tài liệu tham khảo bí mật. Để nhúng TLS bí mật ở trên, hãy chỉ định tên của bí mật trong khóa “tên”.

Bước 2: Tạo hoặc nâng cấp Pod

Tiếp theo, mở thư mục chứa “ pod.yml ” tập tin được tạo:

đĩa CD C:\Users\Dell\Documents\Kubernetes\Secret

Áp dụng tệp yaml để tạo hoặc cấu hình lại nhóm bằng cách sử dụng nút “ kubectl áp dụng ' yêu cầu:

kubectl áp dụng -f pod.yml

Bước 3: Truy cập Kubernetes Pods

Để xác minh, hãy liệt kê các nhóm Kubernetes:

kubectl lấy pod

Ở đây, bạn có thể thấy chúng tôi đã tạo ra “ nhóm demo ” thành công:

Bước 4: Mô tả Pod

Để kiểm tra xem nhóm có nhúng TLS bí mật hay không, hãy mô tả nhóm bằng lệnh bên dưới:

kubectl mô tả pod demo-pod

Đầu ra bên dưới cho thấy chúng tôi đã nhúng thành công bí mật TLS với pod:

Chúng tôi đã đề cập đến cách tạo TLS bí mật và nhúng nó vào ứng dụng Kubernetes đang chạy trong nhóm.

Phần kết luận

Để tạo TLS bí mật trong Kubernetes, trước tiên, hãy tạo chứng chỉ có chữ ký TLS và khóa riêng. Sau đó, khởi động cụm Kubernetes và chạy “ kubectl create secret –cert= –key= ' yêu cầu. Người dùng cũng có thể tạo TLS bí mật bằng cách sử dụng bảng kê khai yaml. Bài đăng này đã minh họa cách tạo TLS bí mật và cách nhúng bí mật đó vào một ứng dụng hoặc nhóm đang chạy.