Как создать секретный TLS в Kubernetes

Kak Sozdat Sekretnyj Tls V Kubernetes



Kubernetes — это инструмент с открытым исходным кодом, который используется для выполнения и управления контейнерным приложением внутри кластера. Он выполняет различные задачи по контролю, запуску и защите учетных данных приложения посредством секретности и проникновения.

Ingress используется для управления входящим трафиком приложений, а также для завершения SSL. Напротив, секреты используются для хранения конфиденциальной информации и сертификатов TLS для приложений.

Этот пост проиллюстрирует:







В чем секреты Kubernetes?

Секреты — это один из ресурсов Kubernetes, используемый для хранения конфиденциальной информации, такой как учетные данные пользователя, ключи, сертификаты или токены. Секреты можно создавать индивидуально и подключать к модулям. Это не позволяет разработчику предоставлять конфиденциальные данные в коде, а также обеспечивает дополнительный уровень безопасности. Можно создавать и использовать различные виды секретов. Наиболее часто используемые секреты:



Общий секрет: Общие секреты используются для хранения базовой информации, такой как пароли, токены, ключи API, ключи OAuth и т. д.



Секрет TLS: Секреты TLS используются для хранения закрытых ключей и сертификатов, подписанных центром сертификации. Чтобы обеспечить безопасность приложений, работающих внутри Kubernetes, и для защиты связи внутри кластера, пользователю обычно необходимо создать и внедрить секреты TLS в модуль.





Реестр Докера: Он используется для хранения учетных данных реестра Docker, чтобы легко извлекать изображения из реестра.

Предварительное условие: создать закрытый ключ и сертификат.

Чтобы создать сертификат и закрытый ключ для повышения безопасности, используйте OpenSSL, который создает CSR (запрос на подпись сертификата) и закрытый ключ. Затем используйте CSR для создания самозаверяющих сертификатов или сертификатов CA.



Чтобы использовать команды OpenSSL в Windows, пользователям необходимо установить Git. Для этого перейдите по нашей ссылке « Установите git в Windows ' статья.

После установки git следуйте инструкциям ниже, чтобы сгенерировать закрытый ключ и подписанный сертификат.

Шаг 1. Запустите терминал Git Bash.

Сделайте поиск « Гит Баш » в меню «Пуск» и запустите терминал:

Чтобы проверить текущий каталог, используйте « страдающий » команда:

страдающий

В настоящее время мы работаем в каталоге %USERPROFILE%:

Шаг 2. Создайте новый каталог

Создайте новый каталог для сохранения сертификатов и закрытого ключа:

мкдир сертификат

Перейдите во вновь созданный каталог, используя « CD » команда:

CD сертификат

Шаг 3. Сгенерируйте закрытый ключ

Теперь сгенерируйте закрытый ключ с помощью данной команды. Здесь сгенерированный закрытый ключ будет сохранен в папке « mycert.key »:

генpключ openssl -алгоритм ЮАР -вне mycert.key

Шаг 4: Создайте CSR

Чтобы сгенерировать CSR (запрос на обслуживание сертификатов) для получения подписанного сертификата, используйте данную команду:

запрос OpenSSL -новый -ключ mycert.key -вне mycert.csr

Шаг 5: Создайте сертификат

Наконец, используя сгенерированный закрытый ключ и CSR, создайте сертификат и сохраните его в папке « mycert.crt ' файл. Для этого выполните следующую команду:

OpenSSL x509 -req mycert.csr -signkey mycert.key -вне mycert.crt -дней 365

После создания сертификатов TLS пользователь может создать секретный TLS, следуя инструкциям в разделе ниже.

Как создать секретный TLS в Kubernetes?

Чтобы обеспечить безопасность приложений и безопасную связь внутри и за пределами кластера Kubernetes, необходимы сертификаты TLS (Transport Layer Security), которые используются при шифровании данных. Секрет Kubernetes позволяет нам встраивать сертификат TLS в работающие модули через секретный TLS. Чтобы создать секретный TLS в Kubernetes, выполните следующие инструкции.

Шаг 1. Запустите кластер Minikube.

Чтобы запустить кластер minikube, сначала запустите Windows PowerShell от имени администратора. После этого создайте и запустите кластер с помощью команды « запуск миникуба » команда:

запуск миникуба

Шаг 2: Получите узлы

Получите доступ к узлу Kubernetes, чтобы проверить, запущен кластер или нет:

миникуб получить узлы

Шаг 3. Создайте секретный TLS

Создайте секрет TLS в Kubernetes, используя « kubectl create secret <тип секрета> <секретное имя> –cert=<путь к сертификату tls> –key=<путь к секретному ключу> команда. Здесь секретный тип может быть « универсальный ', ' спасибо ', или ' докер-реестр ». Чтобы создать секрет TLS, мы установили тип секрета как «tls»:

kubectl создать секрет TLS демо-секрет --сертификат =C:\Users\Dell\cert\mycert.crt --ключ =C:\Users\Dell\cert\mycert.key

Шаг 4: Получите секреты

Для подтверждения перечислите секрет Kubernetes, используя данную команду:

kubectl получить секрет

Здесь вы можете видеть, что мы эффективно создали « демо-секрет ' который содержит ' 2 Значения данных:

Шаг 5: Опишите секрет

Чтобы просмотреть, как данные просматриваются или хранятся в секрете, опишите секрет, используя « kubectl описать секрет <секретное имя> » команда:

kubectl описывает секретный демо-секрет

Вы можете видеть, что значения хранятся в байтах и ​​не могут быть просмотрены напрямую, в отличие от Kubernetes ConfigMaps:

Как создать секретный TLS через файл Yaml?

Чтобы создать секретный TLS через файл yaml, сначала создайте « секрет.yml » файл, добавьте сертификат в кодировке tls base64 в ' tls.crt » и добавьте ключ в кодировке Base64 в ' tls.key ».

Для демонстрации выполните перечисленные шаги.

Шаг 1. Создайте файл Yaml

Создайте файл с именем « секрет.yml » и вставьте данный код:

APIVersion : v1

данные
:

tls.crt
: «сертификат в кодировке Base64»

tls.key
: «Ключ в кодировке Base64»

добрый
: Секрет

метаданные
:

имя
: mytls-секрет

пространство имен
: по умолчанию

тип
: kubernetes.io/tls

В приведенном выше фрагменте замените значения ключей «tls.crt» и «tls.key» исходным сертификатом и значениями ключей:

Шаг 2: Создайте секрет

Теперь примените секретный файл yaml через « kubectl apply -f <путь-к-secret.yml> » команда:

kubectl применить секрет.yml

Вывод показывает, что мы успешно создали « mytls-секрет », используя файл yaml:

Примечание. Просмотр сертификата TLS и закрытого ключа.

Чтобы просмотреть сертификат в кодировке Base64 и использовать его в файле yaml, запустите команду « cat <путь к файлу сертификата> | база64 ” в терминале git bash:

кот mycert.crt | база64

Чтобы просмотреть ключ в кодировке Base64, используйте « cat <файл пути к ключу> | база64 » команда:

кот mycert.key | база64

Как встроить секретный TLS в Kubernetes Pod?

После создания секретного TSL пользователь может внедрить его в модуль Kubernetes. Для этого используйте следующие инструкции.

Шаг 1. Создайте файл Yaml

Создайте файл с именем « под.yml » и вставьте в него приведенный ниже фрагмент:

APIВерсия: v1

вид: Стручок

метаданные:

название: демо-под

спецификация:

контейнеры:

- имя: html-продолжение

изображение: rafia098 / html-изображение: 1.0

окрОт:

- секретСсылка:

название: демо-секрет

В приведенном выше фрагменте:

  • « добрый Ключ » указывает ресурс Kubernetes, который создает пользователь.
  • « имя Клавиша ” установит имя модуля.
  • « контейнеры ” будет хранить информацию о контейнере.
  • « имя Клавиша «под ключом «контейнеры» установит имя контейнера.
  • « изображение Ключ «предоставит образ приложения или контейнера для создания и запуска приложения внутри контейнера.
  • « окр.Из Ключ ” установит переменную среды из других ресурсов Kubernetes. Вот, чтобы внедрить секретный TLS в модуль: « секретная ссылка » используется для предоставления секретной ссылки. Чтобы встроить вышеуказанный секретный TLS, укажите имя секрета в ключе «name».

Шаг 2. Создайте или обновите модуль

Далее откройте папку, в которой находится « под.yml » файл создается:

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

Примените файл yaml для создания или перенастройки модуля с помощью « kubectl применить » команда:

kubectl применить под.yml

Шаг 3. Доступ к модулям Kubernetes

Для проверки перечислите модули Kubernetes:

kubectl получить модуль

Здесь вы можете видеть, что мы создали « демо-под ' успешно:

Шаг 4. Опишите модуль

Чтобы проверить, встроен ли в модуль секретный TLS или нет, опишите модуль с помощью команды ниже:

kubectl описывает модуль демонстрационного модуля

Вывод ниже показывает, что мы успешно внедрили секрет TLS в модуль:

Мы рассмотрели, как создать секретный TLS и внедрить его в приложение Kubernetes, работающее в модуле.

Заключение

Чтобы создать секретный TLS в Kubernetes, сначала создайте подписанный TLS сертификат и закрытый ключ. После этого запустите кластер Kubernetes и запустите команду « kubectl create secret <тип секрета> <секретное имя> –cert=<путь к сертификату tls> –key=<путь к секретному ключу> команда. Пользователи также могут создать секретный TLS, используя манифест yaml. В этом посте показано, как создать секретный TLS и как внедрить его в работающее приложение или модуль.