Как я могу включить секреты в свой образ docker?

#docker #asp.net-web-api #dockerfile

#docker #asp.net-web-api #dockerfile

Вопрос:

Я сам создал веб-api, который использует базу данных sql. Я использовал Visual Studio для создания этого проекта, и у меня есть возможность щелкнуть правой кнопкой мыши и «управлять пользовательскими секретами» в моем файле проекта.

В пользовательских секретах я сохранил свою строку подключения, и я не хочу добавлять ее в свое (частное) репозиторий github. Пользовательский секрет представляет собой файл json.

Как я могу включить эти секреты? Должен ли я включать их в проект, делая их частью образа? Или мне сделать что-то необычное с запущенным экземпляром?

Комментарии:

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

2. В этом сообщении в блоге предлагается привязать секреты к контейнеру.

Ответ №1:

Для этого есть много способов, но обычно вы либо:

  1. Извлеките свои секреты из своей кодовой базы (GIT repo), введите их через переменные среды при запуске контейнера, а затем получите к ним доступ из кода вашего приложения, как и к любому другому варианту среды. Это не самый безопасный вариант, но, по крайней мере, ваши секреты больше не будут в вашем VCS.
  2. Извлеките секреты из какого-либо менеджера секретов (например, AWS Secrets Manager) прямо из кода вашего приложения. Это более безопасно, чем первый вариант, но требует больше изменений кода и создает зависимость между вашим приложением и вашим менеджером секретов.