У меня та же проблема, что и здесь: Безопасное хранение переменных среды в GAE с помощью app.yaml , а именно:
"Мне нужно хранить ключи API идругая конфиденциальная информация в app.yaml в качестве переменных среды для развертывания в GAE. Проблема с этим заключается в том, что если я отправлю app.yaml в GitHub, эта информация станет общедоступной (не очень хорошая). "
ДополнительноЯ хочу установить следующие флажки:
- Предотвратить блокировку вендора (насколько это возможно) и возможность перенести мой dockerfile в другое место.
- Простота развертывания с помощью GitHub.Я хочу нажать на мастера, который запускает сборку.
- Минимальная настройка или подходящее усилие и рабочий процесс для соло-разработчика или небольшой команды.
В результате моего исследования было получено следующее:
Безопасное хранение переменных среды в GAE с помощью app.yaml
Как настроить средупеременные / секреты приложения в Google App Engine
GAE: Как развернуть различные среды с секретами?
переменные среды appengine и ОС
Как передать переменные среды в app.yaml с помощью облачной сборки
Много полезной информации от GAE: Как развернуть различные среды с секретами?, где автор перечислил три обходных пути и причину их неиспользования:
- Использовать Google KMS - позволяет нам помещать зашифрованные секреты непосредственно в проект, но это требует от насдобавьте пользовательский код в наши приложения, чтобы расшифровать их.Это создает другую среду управления между местным, промежуточным и производственным.Это увеличивает риск ошибок из-за сложности.
- Хранить секреты в Google Datastore - я пробовал, я создал помощник, который ищет env vars в proccess.ENV, затем в кеше ив конечном итоге в Datastore.Но, как и в KMS, это значительно увеличивает сложность.
- Храните секреты в файле JSON и помещайте их в облачное хранилище Google: опять же, требуется загружать переменные env через помощника, который проверяет envvars, затем загружает файл и т.д ...
Однако лучшее для меня решение пришло от Как передать переменные среды в приложение.yaml с использованием облачной сборки
Это позволяет мне использовать следующий поток развертывания с использованием гибкой среды GAE для nodejs:
- Объединение с моими триггерами главной ветви Githubсборка облака
- Мой первый шаг в моем cloudbuild.yaml - получение файла app.yaml с помощью gsutil builder , поскольку app.yaml не находится в системе контроля версий
- Myapp.yaml указывает на мой dockerfile для моей среды выполнения и содержит мои переменные env
Это проверяет все мои поля и было довольно простым решением , но , это определенно неЭто популярное решение, поэтому яСкажите что-нибудь здесь?
Самое главное, есть ли какие-либо проблемы безопасности?