Чи змінні середовища Elastic Beanstalk є відповідним місцем для зберігання секретних значень?


15

Я розгорнув свою програму Django в Elastic Beanstalk з наміром використовувати інтерфейс конфігурації змінної середовища для зберігання моїх ключів API, а не зберігати їх у своєму джерелі (як описано тут /programming//a/17878600 ).

Зробивши це, я з’ясував, що те, що Beanstalk називає змінними середовища, насправді не є змінними середовища оболонки (як згадується тут /programming//a/24564832/378638 ) і зберігаються в екземплярі у файлі конфігурації (як описано тут /programming//a/24566283/378638 ).

Мені це здається проблемою безпеки. Чи не є це поразкою метою збереження секретних ключів від джерела? Я розумію, що їх більше немає в репо, але вони все ще доступні в інстанції.

Я нерозумію ризик? Я по спадщині сисадмін, тому вибачте тут про своє незнання. Чи повинен я просто завантажувати змінні Beanstalk як змінні середовища оболонки через файл конфігурації та продовжувати роботу, оскільки файл доступний лише через root, чи моя стурбованість справедлива? Дякую.

Відповіді:


12

Сенс збереження секретів у вихідному коді полягає в тому, щоб вони не переходили до контролю джерел . Це особливо корисно у проектах з відкритим кодом.

При розгортанні не має значення, чи є секрет у файлі чи envvar. Важливо те, що лише користувач ОС, який працює у вашій програмі, може прочитати. Це за замовчуванням для envvars, що зручно.

Корінь завжди може все прочитати. Тож Amazon може знати ваші секретні значення, якщо вони хочуть, тому що вони є коренем.

Вони підтримують дорогі модулі захисту апаратних засобів (HSM), що зробить ваші ключі нечитабельними. Звичайно, вони все ще можуть використовувати HSM для розшифрування ваших речей, тільки ніколи не отримуйте фактичний ключ.

Тож або вам потрібно довіряти Amazon, або влаштовувати власні речі, або розбиратися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.