最佳实践 Python - 在哪里存储 API 密钥/令牌



我正在构建一个使用 API 令牌和密钥访问服务的系统,但存储它们的最佳位置在哪里?我想在不推送令牌的情况下将代码推送到 GitHub。

目前,我将它们放在一个名为 Constants.py 的空白文件中,并在主 python 文件中导入Constants.py .

API_KEY_SERVICE = "ABC123ABC"

Main.py:

import Constants
service_key = Constants.API_KEY_SENDGRID

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

对于 .gitignore,请参考:https://git-scm.com/docs/gitignore

有几个选项:

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

  2. 如果您使用的是 conda 虚拟环境,请将其存储为环境变量。不存储虚拟环境;创建要求的要求在 requirements.txt 文件中。您可以从 conda 文档中找到有关步骤的更多信息

  3. 使用操作系统模块

  4. 如果您有多组环境变量,则可以考虑使用解耦

  5. 如果您使用的是 AWS,则需要使用自己的 IAM 将(可能是第三方(密钥存储在自己的区域中。AWS 推荐了两种方法。

  • a. IAM 角色
  • b. 使用参数存储存储机密
  • c. 使用密钥管理器存储密钥 - AWS 推荐的当前方法

这里有一些很好的答案。为了添加它们,我认为我们还可以使用钥匙环模块,它将从 Windows 凭据或 Mac OS 钥匙串读取凭据。但我很想听听社区的想法。谢谢。

这是该链接 - https://pypi.org/project/keyring/

最新更新