Как установить секреты для группы пользователей, которые будут иметь несколько полей? - PullRequest
0 голосов
/ 28 сентября 2018
apiVersion: v1
kind: Secret
metadata:
  name: john-secret
data:
  USERNAME: abc=
  PASSWORD: def=

apiVersion: v1
kind: Secret
metadata:
  name: jane-secret
data:
  USERNAME: ghi=
  PASSWORD: jkl=

Тогда я мог бы включить их как:

env:
  - name: JOHN_USERNAME
    valueFrom:
      secretKeyRef:
        name: john-secret
        key: USERNAME
  - name: JOHN_PASSWORD
    valueFrom:
      secretKeyRef:
        name: john-secret
        key: PASSWORD
  - name: JANE_USERNAME
    valueFrom:
      secretKeyRef:
        name: jane-secret
        key: USERNAME
  - name: JANE_PASSWORD
    valueFrom:
      secretKeyRef:
        name: jane-secret
        key: PASSWORD

И использовать их в приложении Node.js как process.env.JOHN_USERNAME и т. Д.

Это работает, но естьболее чистый / простой способ установить секреты для группы пользователей, которые будут иметь несколько полей?Я предполагаю, что это запуталось бы, скажем, 100 пользователей х 5 полей.

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете смонтировать секрет как том .Адаптируем пример из связанной документации Kubernetes:

apiVersion: v1
kind: Pod
metadata:
  name: secret-test-pod
spec:
  containers:
    - name: test-container
      image: nginx
      volumeMounts:
          - name: john-secret
            mountPath: /etc/john-secret
  volumes:
    - name: secret-volume
      secret:
        secretName: john-secret

Если у вас есть куча секретов, вам нужно будет смонтировать их все в спецификации модуля.Само по себе это проблема сопровождения.

Я не думаю, что на самом деле что-то мешает вам использовать более структурированный объект данных, такой как файл JSON или YAML, в качестве значения секрета.Это может работать разумно в сочетании с монтированием его в качестве тома.

Если у вас действительно много секретов - много «пользователей» со многими значениями для каждого - тогда какое-то внешнее хранилище для секретов, вероятно, являетсялучшая идея.Если это просто имена пользователей и пароли, очень часто в базе данных хранится односторонний хэш пароля (который также позволяет обновлять их без повторного развертывания системы).Такие инструменты, как Vault , разработанные Hashicorp, могут быть сложны в администрировании, но в качестве приоритета они имеют реальную безопасность этого контента, и вы получаете гораздо более строгий контроль над тем, кто может получить доступ к фактическим секретам.

...