Почему я должен использовать Docker Secrets?

Последние несколько месяцев я управлял паролями для своих докеров, помещая их в переменные ENV.

Пример:

web:
  environment:
    - PASSWORD=123456

Затем я наткнулся на Секреты Докера. Итак, мои вопросы:

  1. По каким причинам я должен их использовать?
  2. Они более безопасны? Как?
  3. Можете ли вы привести простой пример, чтобы показать их функциональность?

3 ответа

Решение

Это зависит от варианта использования.

Если вы запускаете одно приложение на своем компьютере для разработки, которое имеет доступ только к одному секрету, вам не нужны секреты докера.

Если вы работаете с десятками машин с дюжиной кластеризованных сервисов, все из которых требуют секретов друг для друга, вам необходимо секретное управление.

Помимо соображений безопасности, гораздо проще иметь стандартизированный способ доступа, создания и удаления ваших секретов.

От: https://github.com/moby/moby/issues/13490

  • Переменные среды Переменные среды не приветствуются, потому что они:
    • Доступен для любого процесса в контейнере, таким образом, легко "протекает"
    • Сохраняются в промежуточных слоях изображения и видны в окне проверки
    • Совместно с любым контейнером, связанным с контейнером

Основной docker inspect (среди прочего) покажет все переменные среды, так что это совсем не безопасно.

Вы также можете посмотреть на

keywhiz

square.github.io/keywhiz

или хранилище

hashicorp.com/blog/vault.html

Другие вопросы по тегам