секретная ротация k8s с сервером SQL - PullRequest
0 голосов
/ 31 января 2020

Возможно ли сделать SQL секретные вращения сервера?

Сценарий:

  • CI / CD трубы с диаграммой руля для SQL сервер

    • Включая секретный, постоянный том, утверждение о постоянном томе, развертывание (постоянный том - это NFS в моем случае, а k8s - чистый металл, если это даже имеет значение)
  • Некоторое время спустя я, вероятно, захочу обновить SQL версию сервера, желательно через канал CI / CD

Я немного опробовал это, и он работает довольно хорошо , но проблема, с которой я сталкиваюсь, заключается в том, что когда я делаю развертывание, SQL Сервер создает несколько sys-DB: s, содержащих пароль SA, основанный на начальном секрете.

apiVersion: v1
kind: Secret
metadata:
  name: {{ .Values.name }}-secret
type: Opaque
data:
  sapassword: {{ randAlphaNum 64 | b64enc | quote }}

Теперь, скажем, я хотите повторно развернуть или обновить версию (или даже сбой питания, поврежденные узлы или что-то еще), sys-DB: s сопоставлены с постоянным хранилищем и будут переназначены.

Однако пароль SA "x" находится внутри переназначенного sys-DB, и вновь сгенерированный секретный пароль SA - "y ». Отличается ли он для паролей пользователей / потребительских модулей (строки подключения для генерируемых БД Code First)?

Есть идеи? Или я просто не должен генерировать пароли в секрете БД?

1 Ответ

2 голосов
/ 01 февраля 2020

Я был на вашем месте и в итоге удалил секрет из схемы управления и внес изменения в развертывание, чтобы вводить секреты в качестве переменной env из секрета k8s, который я создал вне схемы управления.

Другой вариант, который я мог бы подумать, - использовать внешние секретные менеджеры для динамического введения секретов в модуль во время выполнения -> https://banzaicloud.com/blog/inject-secrets-into-pods-vault/

...