我正在使用配置文件存储数据库的密码/密钥以及与AWS等其他服务的连接。
我正在使用Travis CI进行构建,运行我的测试,然后将其部署到实时服务器。
我想加密配置文件中的变量,只有应用程序才能读取它。这是标准 -
1)应用程序应该能够在多个环境中解密它,从构建服务器到多个部署服务器。
2)用于解密配置文件的密码对开发人员来说是不可用的。
该项目是clojure,是否有任何leiningen插件/功能将有助于此?
谢谢, 穆尔塔扎
答案 0 :(得分:1)
我认为您尝试做的最佳解决方案就是从应用程序源代码树中删除配置文件。将配置文件保存到构建和部署服务器,并且不要让开发人员直接访问这些文件。
您尝试做的主要问题是,您试图让开发人员无法访问某些内容,但同时也使开发人员可以完全控制的内容成为可能,应用程序代码,有权访问同一件事。也就是说,为了使应用程序能够解密配置,开发人员必须能够访问解密密钥。
您可以尝试通过仅在构建和部署服务器(即Leiningen插件)上提供的工具来解密您的配置,但是单独存储配置文件会更简单。