在Django项目中,“secret_key.txt”如何更安全?

3pmvbmvn  于 2022-11-18  发布在  Go
关注(0)|答案(1)|浏览(160)

如果这是一个重复的问题,我很抱歉,但是我在网上找不到答案。在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”文件安全吗?
我已经检查了谷歌和堆栈溢出的原因,但无法找到答案。目前所有的敏感信息都是使用.env文件保护,并包括在. gitignore这个文件。

q8l4jmvw

q8l4jmvw1#

你通常会把这个文件添加到.gitignore中,这样这个文件就不是(GitHub)仓库的一部分,这意味着你可以在项目中添加(其他)设置,并通过环境变量或文件加载“敏感”设置。
This hackernoon post为例,讨论了四种定义敏感变量得方法,以便在添加到subversioning系统得文件中不定义这些变量.
通常建议在项目中包含一个settings.py,但是,从敏感数据中剥离。这样,对等用户可以轻松地设置项目的所有其他(必需的)设置,因此只需要定义有限数量的敏感变量就可以让项目运行。
但是我认为使用环境变量可能更好,因为指定它可能更容易,从而管理可能都使用不同值的许多进程。

相关问题