В настоящее время мы работаем с приложением в одном док-контейнере, приложению нужны все виды конфиденциальных данных, которые должны передаваться как переменные среды,
Я помещаю их в команду запуска, чтобы они не попадали в образ, а затем в репозиторий, однако я получаю очень небезопасную команду запуска,
Теперь я понимаю, что секреты докеров существуют, однако, как я могу использовать их без развертывания кластера? или есть ли другой способ обезопасить эти данные?
С уважением,
security
docker
docker-swarm
Хуан Себастьян
источник
источник
Ответы:
Вы не можете ... Это не поддерживает секреты без Роя. Если только вы не можете быть «Роем», используя только один узел.
Другое решение было бы, я думаю, использовать стороннее программное обеспечение хранилища, как этот:
https://www.vaultproject.io/
Но затем, чтобы использовать секреты в ваших контейнерах из Убежища, вам нужно прочитать документ.
Надеюсь, что это приведет вас к правильному пути, чтобы начать.
источник
build-args
не включены в окончательное изображение, но могут быть доступны только во время сборки изображения. Подходящее решение - записать секреты в файлы на хосте (разумеется, с соответствующими разрешениями), а затем смонтировать их в свой докер-контейнер. Ваше приложение внутри контейнера может затем прочитать секреты из этих файловДа , вы можете использовать секреты, если вы используете композитный файл . (Вам не нужно запускать рой).
Вы используете файл compose с docker-compose : в файле docker-compose.yml есть документация для «секретов» .
Я переключился на docker-compose, потому что хотел использовать секреты. Я счастлив, что сделал, это кажется намного более чистым. Каждый сервис отображается в контейнер. И если вы когда-нибудь захотите переключиться на запуск роя, вы уже там.
Примечание: секреты не загружаются в среду контейнера, они монтируются в / run / secrets /
Вот пример:
1) Структура проекта:
2) содержимое docker-compose.yml:
3) содержимое super_duper_secret.txt:
4) Запустите эту команду из корня проекта, чтобы убедиться, что контейнер имеет доступ к вашему секрету (должен быть запущен Docker и установлен docker-compose):
Вы должны увидеть, как ваш контейнер выводит ваш секрет.
источник
docker-compose
использования секрета? Документация и мое понимание реализации указывают, что секрет не будет настроен в контейнере.docker-compose.yml
на одном узле); когда я запускаю контейнер/run
только содержитnginx.pid
и неMounts
показываетсяdocker inspect $container
.