В чем смысл секретов Kubernetes, если я могу их расшифровать? - PullRequest
4 голосов
/ 21 апреля 2020

Я могу легко получить секреты, хранящиеся в Kubernetes.

$ kubectl get secret my-app-secrets -o yaml

Выберите секретное значение из вывода, который я хочу декодировать.

Пример ZXhwb3NlZC1wYXNzd29yZAo=

$ echo ZXhwb3NlZC1wYXNzd29yZAo= | base64 --decode
> exposed-password

Я не уверен, что понимаю эффективность ресурсов секретов в экосистеме Kubernetes, поскольку это легко получить.

Ответы [ 2 ]

4 голосов
/ 21 апреля 2020

base64 - это кодирование, а не шифрование, оно позволяет просто кодировать информацию удобным способом.

Данные, которые вы кодируете, могут содержать много нераспознанных символов, перевод строки и т. Д. c., Поэтому их удобно кодировать.

В kubernetes вы можете включить шифрование, используя эту инструкцию .

Но kubernetes не должен быть единственным источником правда, скорее kubernetes загружает эти секреты из внешнего хранилища, которое вам нужно выбрать, например, хранилище hashicorp , как указано в комментариях.

В дополнение к хранилищу hashicorp, существуют различные способы хранить секреты в git:

Вы также можете быть заинтересованы в проекте kubese c, который может быть используется для анализа ресурсов kubernetes на предмет угроз безопасности.

0 голосов
/ 22 апреля 2020

Дело в том, что в Kubernetes секрет позволяет вам защитить свой пароль (что вы хотите сделать, зашифровав его), контролируя доступ к секрету вместо зашифровав это.

Для этого есть несколько механизмов:

При этом, если что-то пойдет не так, решения как Запечатанные секреты, созданные Bitnami или другие решения (см. ответ Мокрецова) возникли, чтобы придать этому вопросу еще больше силы, на случай, если кто-то нежелательный получит доступ к вашей тайне.

...