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

Sen*_*cha 6 ubuntu nginx django gunicorn ubuntu-12.04

我运行Ubuntu 12.04精确,一头大粪(Django的,UNIX,Nginx的&Gunicorn)的环境和我的应用程序(以及各种配置文件)存储在一个python虚拟环境中/srv,使www-data用户可以访问。

nginx 和 gunicorn 进程都以www-data.

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

我担心的是environment.sh文件的位置及其权限。可以将此文件存储/srvwww-data有权访问它的文件夹中吗?或者它应该由 root 在其他地方存储和拥有,例如/var/myapp/environment.sh

此外,对于www-data用户,如果我的任何 Web 进程(以 运行www-data)受到损害并且有人获得了对它们的访问权限,这是否意味着用户可能会读取系统上的任何文件,即使他们无法写入?包括我的安全密钥?

And*_*sov 1

您可以在gunicorn 配置中设置工作进程将使用的用户和组ID。在 root 拥有的且没有读取权限的文件中设置环境变量 (rw--------)。这将使受损的 www-data 进程免于直接从配置文件读取数据,但受损的 www-data 进程仍然可以直接从内存读取变量。

附:粪便+1:)