Я создаю систему, которая использует токены и ключи API для доступа к службам, но где лучше всего их хранить? Я хочу отправить код на GitHub, не отправляя токены.
В настоящее время я поместил их в пустой файл с именем Constants.py и импортировал Constants.py в основной файл Python.
API_KEY_SERVICE = "ABC123ABC"
Основной.ру:
import Constants
service_key = Constants.API_KEY_SENDGRID
В качестве первого шага вы должны добавить файл в .gitignore, чтобы предотвратить случайные коммиты и нажатия.
Другой использует файл yaml и добавляет .yaml в .gitignore.






То, что вы пытаетесь, - это правильный способ отделить конфиденциальную информацию от кода. Вы должны включить constants.py в свой .gitignore файл, чтобы не дать git отслеживать этот файл и, таким образом, не отправлять его на github.
Для .gitignore см.: https://git-scm.com/docs/gitignore
Есть несколько вариантов:
Сохраните его локально, как у вас есть, и, как заметил Себастин Санти, добавьте const.py в ваш файл .gitignore.
Сохраните его как переменную среды, если вы используете виртуальную среду conda. Виртуальные среды не сохраняются; требования для его создания находятся в файле requirements.txt. Вы можете найти больше на шагах из конда документация
Используйте Модуль ОС
Если у вас более одного набора переменных среды, вы можете рассмотреть возможность использования отделить.
Если вы используете AWS, вам нужно хранить ключи (которые будут сторонними) в их собственной области с собственным IAM. AWS рекомендует два способа.
Мне нравится, что вы включили AWS в свой ответ, но мне любопытно, почему вы не упомянули AWS Secrets Manager?
Один из вариантов — прочитать эти константы из переменных окружения. Таким образом, у вас не будет никаких секретов в исходном коде.