@sanya1995

Как замаскировать переменную внутри контейнера?

Я сохранил переменную в gitlab variables и передал ее при запуске контейнера вот такой командой
docker run -d --name flask -p 5000:5000 -e test=$test flask

Но когда я захожу внутрь контейнера я ее вижу исходное значение переменной. Можно ли ее как то спрятать, потому что затереть ее не получается? Когда затираешь ее, выходишь из контейнера и снова заходишь, опять видишь исходное значение переменной.
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 2
Если у кого-то "плохого" есть доступ к контейнеру, в котором бежит ваше приложение, это уже крайне плохо, и, может быть, стоит думать сперва об этом, прежде чем беспокоиться об утечке переменных окружения изнутри контейнера...

Однако, переменные окружения имеют ряд недостатков. Когда мы храним секреты в переменных окружения, велик шанс того, что программист будет кидать эти секреты в логи, выводить их в поток вывода при сборке/деплое, хранить их в незашифрованном виде где-то в базе и т.д.

Поэтому, сейчас всё чаще используются специальные сервисы по хранению секретов.
Я вам рекомендую посмотреть, например, в сторону Hashicorp Vault и его Dynamic Secrets:
https://www.hashicorp.com/products/vault

Вот статья об интеграции в Gitlab:
https://docs.gitlab.com/ee/ci/examples/authenticat...

Видео о том, что это такое, и как это работает:
https://youtu.be/VYfl-DpZ5wM?si=SutHlBsLe70qCIVm
На русском: https://youtu.be/-HIy89Vyobg?si=O4e8AL1SSCm8ImV1
Ответ написан
AshBlade
@AshBlade
Просто хочу быть счастливым
Нет. Это переменная окружения, ее нельзя просто взять и удалить.
Если надо передавать секреты разные, то тут лучше маунтить секреты как файлы (docker secrets) - https://docs.docker.com/engine/swarm/secrets/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы