Как "secret_key.txt" является более безопасным в проекте Django?

Прошу прощения, если это дублирующий вопрос, но я не могу найти ответ в Интернете. В Django Checklist Docs я вижу следующее, чтобы сохранить секретный ключ в безопасности.

with open('/etc/secret_key.txt') as f:
    SECRET_KEY = f.read().strip()

Мой проект развернут на AWS EBS.

Я создал отдельный файл под названием "secret_key.txt", в котором хранится ключ. Насколько это более безопасно, чем хранение ключа в файле конфигурации settings.py? Если кто-то сможет получить доступ к файлу settings.py моего проекта, чтобы получить ключ, не сможет ли он получить доступ и к файлу "secret_key.txt"? Как создание файла "secret_key.txt" более безопасно?

Я проверил Google и Stack Overflow для рассуждений, но не могу найти ответ. В настоящее время вся конфиденциальная информация защищена с помощью файла .env и включения этого файла в .gitignore.

Обычно вы добавляете этот файл в .gitignore, так, чтобы файл был не частью (GitHub) репозитория. Это означает, что вы можете добавлять (другие) настройки в проект, а "чувствительные" настройки загружаете через переменные окружения или файлы.

В этом hackernoon посте, например, обсуждаются четыре способа определения чувствительных переменных таким образом, чтобы они не были определены в файлах, которые вы добавляете в систему субверсии.

Обычно рекомендуется включать в проект settings.py, однако, очищенный от конфиденциальных данных. Таким образом, коллега может легко установить в проекте все остальные (необходимые) настройки, и, таким образом, ему нужно будет определить только ограниченное количество чувствительных переменных, чтобы запустить проект.

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

Вернуться на верх