Где хранить конфиденциальные файлы на Heroku?

Вероятно, есть очевидный ответ на этот вопрос, о котором я просто не думаю. Я знаю, что конфиденциальные данные, такие как безопасные учетные данные, лучше всего хранить на сервисе, таком как Heroku, используя переменные среды через CLI Heroku с heroku config:add. Но как насчет чувствительных файлов, таких как сертификаты? В частности, мне интересно, что мне делать с моим сертификатом для Apple Push Notifications (APN).

Я беру на себя удар по реализации этого, так как тишина в ответ на этот вопрос заставляет меня поверить, что там не так много отличных альтернатив ( и Urban Airship выглядит слишком дорого). От взятия gander в APN on Rails, я вижу, что они фактически хранят сертификаты в базе данных. Имеет ли это смысл? Или имеет смысл фактически хранить содержимое сертификата в переменной среды (не уверен, что это возможно)?

Ответ 2

Возможно, вы захотите сохранить сертификат на S3, который может быть загружен каждым процессом при запуске и сохранен в памяти (или memcached/redis) для последующего доступа.

Если вы действительно это чувствуете, вы можете подумать о создании своего собственного buildpack, который загружает сертификат в момент компиляции и делает его доступный в файловой системе slug.

Ответ 3

Я предлагаю создать отдельный репозиторий, содержащий сертификаты, к которым имеет доступ только ваш внутренний круг разработчиков.

Чтобы сделать это локально:

git clone myproject myprojectwithcerts

cd myprojectwithcerts

git добавить heroku [email protected]/myproject

Затем вы можете добавить свои сертификаты в "myprojectwithcerts", зафиксировать их, а затем нажать на Heroku.

git нажмите мастер героя

Когда изменения происходят в myproject

git основной источник тяги

Пока только ваш внутренний круг разработчиков может получить доступ к Heroku для push/pull, только они могут получить доступ к вашим конфиденциальным файлам.

Ответ 4

Для меня лучшим решением было шифрование закрытых ключей в сертификате и сохранение пароля для дешифрования в переменных среды Herokus.