pipe理帐户凭证和SHA256机密并将其提供给systemd托pipe服务的最佳做法是什么?
在旧的init.d方式中,我只是在/ etc / default中安装一个脚本来源。 从那里我可以导入我想要的任何内容到环境variables中,然后可用于我的服务。
所以我的问题是,为系统pipe理服务提供loginID /密码凭证和其他“秘密”是什么被认为是“最佳做法”? 是通过一个被认为是“好”的环境,还是有一个更好的/更安全的方式?
(即什么是最好的地方,把你的服务(如MySQL)的密码,SHA256秘密等,以及如何最有效地沟通那些长期运行的后台服务需要它?有没有比在环境中设置更好的pipe理方式系统启动进程之前?)
我没有一个正确的方法来传递systemd安全凭据。 Environment=和EnvironmentFile=指令肯定会帮助传递环境variables,类似于较老的init系统。 如果你正在寻找你曾经做过的事情的直接翻译,就是这样。
您的应用程序也可能使用它自己的configuration系统,如Node.js的node-config 。 configuration包然后可以进而提供用于pipe理机密的进一步的替代scheme。 例如,node-config也可以从环境variables中加载值,但是也可以使用git-crypt来处理在Git中encryption存储的值。
使用环境variables需要注意的一些事情:即使不保留在文件中设置的环境variables,如果在启动时将它们传递给进程,环境variables及其值可能会在文件名中find如Linux上的/proc/27/environ ,以便用户有权读取文件。 这些“启动环境”值仍然存在,即使进程稍后删除它们。
如果将环境variables加载到应用程序configuration系统中,则考虑让进程在进程configuration系统中删除环境variables。 那么至less如果你有敏感的信息在一个较less的地方。