У нас есть несколько образов докеров, которые мы создаем с помощью sbt-native-packager, которые должны взаимодействовать с сервисами AWS. При их запуске вне AWS нам необходимо явно указать учетные данные.
Я знаю, что мы можем явно передавать переменные среды, содержащие учетные данные AWS. Это усложняет сохранение наших учетных данных в секрете. Один из вариантов - предоставить их через командную строку, обычно сохраняя их в нашей истории оболочки (да, я знаю, что этого можно избежать, добавив пробел в начало команды, но это легко забыть) и подвергнуть их более высокому риску случайного обмена копией / вставкой. Как вариант, мы можем предоставить их через env-файл. Но это подвергает нас возможной проверке их в системе контроля версий или непреднамеренной отправке на другой сервер.
Мы обнаружили, что идеальной практикой является монтирование нашего локального каталога ~/.aws/
в домашний каталог запущенного пользователя для контейнера докеров. Однако наши попытки заставить это работать с образами sbt-native-packager не увенчались успехом.
Одна уникальная деталь для образов sbt-native-packager (по сравнению с другими нашими) заключается в том, что они создаются с использованием docker ENTRYPOINT вместо CMD для запуска приложения. Я не знаю, имеет ли это отношение к проблеме.
Итак, вопрос: можно ли предоставить учетные данные AWS для контейнера докеров, созданного sbt-native-packager, путем монтирования папки учетных данных AWS с помощью параметров командной строки при запуске?