Digital Ocean是否具有类似于Credstash或AWS Secrets Manager(两者都是AWS服务)的东西?
尝试确定最安全的方式来存储带有敏感信息(例如,数据库访问代码)的环境变量。
在本地,我在.gitignore文件中命名了一个.env文件,以防止受到版本控制。
如果只是在.env文件或环境变量中,那么为确保应用安全运行的最佳方法是什么?
非常感谢:)
欢呼
其他信息:
我在数字海洋飞沫上有一个全栈SPA(MongoDB,Node,React,Express)。
答案 0 :(得分:0)
要完成此任务,这是一个非常艰巨的问题,实施成本取决于您的风险承受能力以及其他各种因素(例如威胁建模)。以下是一些要考虑的事情。
至少,您将要确保敏感配置在磁盘上处于静态状态加密,并评估该配置是否也将在备份中结束,作为基础结构管理等的一部分。即使您使用第三方系统进行凭据管理,您仍将在主机上维护API凭据以连接到该系统,否则仍可以通过mount在本地进行访问,或内存中等等。
您还必须考虑在内存中如何垃圾回收/复制字符串以及如何对字符串进行存储以及您的风险承受能力。
不用说,提交后/ CI的一部分应明确确保正确设置了敏感配置文件(即chmod 0400
)上的文件权限。
您还希望在应用程序遭到破坏的情况下运行,在这种情况下,攻击者可以使用您的应用程序读取文件系统(不是内存,也不是应用程序代码注入)。因此,su
可以在主机上模拟您的应用程序进程的用户,以查看它对配置文件的实际作用。如果它是在静态加密的,并且无法发现解密密钥或完全将其解密,那么您的位置可能比99%的WordPress网站更好。
肯定有更多要讨论的内容,但这应该可以帮助您入门。您可能还会考虑通过该问题跳至https://security.stackexchange.com/。
最美好的祝愿!