最佳实践Python-存储API密钥/令牌的位置

时间:2019-07-11 18:30:10

标签: python constants

我正在构建一个使用一些令牌和密钥来访问服务的系统,但是最好的存储位置在哪里?我想在不推送令牌的情况下推送到github。

然后我将其放入一个名为Constants.py的空白文件中,并在主python文件中创建一个导入Constants

Constants.py:

API_KEY_SERVICE = "ABC123ABC"

Main.py:

import Constants service_key = Constants.API_KEY_SENDGRID

2 个答案:

答案 0 :(得分:1)

您要尝试的是从代码中分离敏感信息的正确方法。您应该在constants.py文件中包含.gitignore,这将防止git跟踪该文件,从而不会将其推送到github。

有关.gitignore,请参阅:https://git-scm.com/docs/gitignore

答案 1 :(得分:1)

有几个选项:

  1. 将其存储在本地,正如 Sebastin Santy 指出的那样,将 constants.py 添加到您的 .gitignore 文件中。

  2. 如果您使用的是 conda 虚拟环境,请将其存储为环境变量。不存储虚拟环境;创建一个的要求在 requirements.txt 文件中。您可以在 conda documetation

    中找到有关步骤的更多信息
  3. 使用 OS module

  4. 如果您有多个环境变量,您可以考虑使用 decouple

  5. 如果您使用 AWS,您将希望使用自己的 IAM 在他们自己的区域中存储(将是第三方的)密钥。 AWS 推荐了两种方式。