Django 将密码保留在代码之外,但使用gunicorn自动重启?
我目前正在为gunicorn/django应用程序编写结构部署脚本,该应用程序由supervisord管理。当gunicorn运行时,我需要在应用程序的环境中使用某些密码 似乎标准的做法是将环境变量添加到/etc/supervisord/app.conf的[program:app]中,但这意味着我将在repo中使用明文密码,除非我将app.conf保留在repo之外(这看起来不干净) 我无法散列密码,因为应用程序使用这些密码访问第三方服务。此外,即使我将app.conf保留在repo之外,app.conf中仍然有明文密码,这似乎并不理想 有没有办法让supervisord在不存储明文密码的情况下完成自己的工作(自行重启gunicorn)Django 将密码保留在代码之外,但使用gunicorn自动重启?,django,security,gunicorn,fabric,supervisord,Django,Security,Gunicorn,Fabric,Supervisord,我目前正在为gunicorn/django应用程序编写结构部署脚本,该应用程序由supervisord管理。当gunicorn运行时,我需要在应用程序的环境中使用某些密码 似乎标准的做法是将环境变量添加到/etc/supervisord/app.conf的[program:app]中,但这意味着我将在repo中使用明文密码,除非我将app.conf保留在repo之外(这看起来不干净) 我无法散列密码,因为应用程序使用这些密码访问第三方服务。此外,即使我将app.conf保留在repo之外,app
编辑:不可避免地,我需要密码或supervisord解锁密码的方法,攻击者可以使用这两种方法,因此,我想我会使用类似于AWS密钥管理服务的服务,这样至少还有一个额外的步骤可以使用它们。我没有使用supervisord,但我假设您只是在运行bash脚本来重新启动服务器 在项目文件夹中创建一个名为
.env
(名称并不重要,但它是惯例)的文件。确保将此文件添加到您的.gitignore
在env文件中,设置任何配置变量:
#!/bin/bash
export ENV_VAR="value"
然后要使用env文件,请使用source.env
。这会将任何导出的变量应用于您的环境