Расшифровка секрета Кубернетеса - PullRequest
2 голосов
/ 05 июля 2019

Я унаследовал настройку Kubernetes / Docker и случайно разбил модуль, изменив что-то, связанное с паролем БД.

Я пытаюсь решить эту проблему.

У меня нет большого опыта работы с Kubernetes или Docker, поэтому я все еще учусь тому, как что-то делать.

Это значение содержится внутри учетных данных db-user-pass, которые, как я считаю, является секретом непрозрачного типа.

Я описываю это:

kubectl describe secrets/db-user-pass
Name:         db-user-pass
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
password:  16 bytes
username:  13 bytes

но я понятия не имею, как получить какие-либо данные из этого секрета. Пример на сайте Kubernetes предполагает, что у меня будет строка в кодировке base64, но я даже не могу этого понять. Как я могу получить значение для этого?

Ответы [ 3 ]

2 голосов
/ 06 июля 2019

Это ссылка , которую вы можете искать.

Секреты Kubernetes должны быть предоставлены в кодированном формате base64, который может быть создан с использованием двоичного файла base64 в случае дистрибутивов linux.

Пример:

echo "hello" | base64
aGVsbG8K

Kubernetes декодирует кодировку base64, когда мы передаем секретный ключ как переменную среды или смонтирован как том.

1 голос
/ 06 июля 2019

Вы можете использовать kubectl get secrets/db-user-pass -oyaml или -ojson, где вы увидите закодированные в base64 username и password.Затем вы можете скопировать значение и расшифровать его, например, echo <ENCODED_VALUE> | base64 -D.

Более компактный однострочный для этого:

$ kubectl get secrets/db-user-pass --template={{.data.password}} | base64 -D

и аналогично для имени пользователя:

$ kubectl get secrets/db-user-pass --template={{.data.username}} | base64 -D
0 голосов
/ 06 июля 2019

Во-первых, получите секрет от etcd, запросив сервер api с помощью kubectl.

kubectl get secret db-user-pass -o yaml 

Это даст вам закодированный в base64 секрет в формате yaml.

Как только вы получите файл yaml, декодируйте их, используя

"base64 --decode"

Окончательная команда будет выглядеть так:

echo "jdddjdkkdkdmdl" | base64 --decode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...