Почему я должен использовать Docker Secrets?
Последние несколько месяцев я управлял паролями для своих докеров, помещая их в переменные ENV.
Пример:
web:
environment:
- PASSWORD=123456
Затем я наткнулся на Секреты Докера. Итак, мои вопросы:
- По каким причинам я должен их использовать?
- Они более безопасны? Как?
- Можете ли вы привести простой пример, чтобы показать их функциональность?
3 ответа
Это зависит от варианта использования.
Если вы запускаете одно приложение на своем компьютере для разработки, которое имеет доступ только к одному секрету, вам не нужны секреты докера.
Если вы работаете с десятками машин с дюжиной кластеризованных сервисов, все из которых требуют секретов друг для друга, вам необходимо секретное управление.
Помимо соображений безопасности, гораздо проще иметь стандартизированный способ доступа, создания и удаления ваших секретов.
От: https://github.com/moby/moby/issues/13490
- Переменные среды Переменные среды не приветствуются, потому что они:
- Доступен для любого процесса в контейнере, таким образом, легко "протекает"
- Сохраняются в промежуточных слоях изображения и видны в окне проверки
- Совместно с любым контейнером, связанным с контейнером
Основной docker inspect
(среди прочего) покажет все переменные среды, так что это совсем не безопасно.
Вы также можете посмотреть на
keywhiz
square.github.io/keywhiz
или хранилище
hashicorp.com/blog/vault.html