在Ubuntu Web服务器上存储安全密钥

我正在用DUNG(Django,Unix,Nginx和Gunicorn)环境运行Ubuntu 12.04 Precise,并且我的应用程序(以及各种configuration文件)存储在www-data用户有权访问的/srv内的python虚拟环境中至。

nginxgunicorn进程都是以www-data运行的。

我的networking应用程序需要安全凭证,我将其存储在environment.sh文件中。 该文件包含各种导出,并在gunicorn进程执行之前使用source文件运行。

我关心的是environment.sh文件的位置,它的权限。 将这个文件存储在www-data有权访问的/srv文件夹中会好吗? 或者它应该被其他地方的根存储和拥有,比如/var/myapp/environment.sh

另外,对于www-data用户,如果我的任何web进程(以www-data运行)都受到攻击并且有人可以访问它们,这是否意味着用户可能会读取系统上的任何文件,即使他们不能写? 包括我的安全密钥?

您可以在gunicornconfiguration中设置将由工作进程使用的用户和组ID。 将环境variables设置为root拥有的文件,且不具有读取权限(rw ——-)。 这样可以避免直接从configuration文件中读取数据而损坏您的万维网数据进程但受损的万维网数据进程仍然可以直接从内存中读取variables。

PS。 DUNG +1