I'm struggling with how to hide my sensitive info in my django settings.py
我真的很难在Django设置中隐藏我的敏感材料。我尝试为本地和生产创建一个单独的设置文件,这里有人建议,然后中途停止。我还尝试在我的核心文件中创建一个名为secrets.py的文件,其中包含我的wsgi和设置等,并尝试这样做。
1 2 3 4 5 6 7 8 | DEBUG = True if DEBUG: from .secrets import SECRET_KEY_LO this = SECRET_KEY_LO SECRET_KEY = this else: SECRET_KEY = os.environ['SECRET_KEY'] |
但那不起作用。专业的编程方法是什么?因此,我不必手动更改debug true来调试false,这让我感觉非常新手,非常烦人。
看看Django配置。它内置了对输入非机密默认值的支持,然后在prod中使这些值成为必需的和不同的值。这些值是通过环境变量提供的,因此它将问题向下移动了一点。
一旦你有了好的测试值,你就面临着如何保密秘密值的部署问题。每个PaaS似乎都有自己的版本,许多配置管理(Chef、Puppet、Salt、Ansible等)系统也是如此。我发现的最好的方法之一就是在AWS部署中使用Credstash。服务器上的启动脚本只需要对
+1用于在签入机密值之前考虑整个问题。通常,在Github上做一点Google Dorking是非常容易的。
两勺django,django最佳实践中最有价值的文本之一,用以下方式解释了这个问题:您应该创建一个
然后,您将构建一个仅包含机密密钥(API密钥等)和其余文件中其余设置的文件(例如
这个问题有一个奥穆斯和吉恩伍德的答案,更详细。这个问题是关于本地和生产环境,而不是关于密钥,请记住。
你可以用一个