Clojure 如何安全地加密配置文件中的值
我正在使用一个配置文件来存储DB的密码/密钥以及与其他服务(如AWS)的连接 我正在使用Travis CI进行构建,并运行测试,然后将其部署到live server 我想加密配置文件中的变量,只有应用程序才能读取它。这是标准- 1) 应用程序应该能够在多个环境中解密它,从构建服务器到多个部署服务器 2) 用于解密配置文件的密码对开发人员不可用 该项目在clojure,是否有任何leiningen插件/功能可以帮助实现这一点 谢谢,Clojure 如何安全地加密配置文件中的值,clojure,continuous-integration,travis-ci,Clojure,Continuous Integration,Travis Ci,我正在使用一个配置文件来存储DB的密码/密钥以及与其他服务(如AWS)的连接 我正在使用Travis CI进行构建,并运行测试,然后将其部署到live server 我想加密配置文件中的变量,只有应用程序才能读取它。这是标准- 1) 应用程序应该能够在多个环境中解密它,从构建服务器到多个部署服务器 2) 用于解密配置文件的密码对开发人员不可用 该项目在clojure,是否有任何leiningen插件/功能可以帮助实现这一点 谢谢, Murtaza我认为解决您试图做的事情的最佳解决方案就是从应用程
Murtaza我认为解决您试图做的事情的最佳解决方案就是从应用程序源代码树中删除配置文件。将配置文件保存到构建和部署服务器,不要让开发人员直接访问这些服务器 你试图做的主要问题是,你试图让你的开发者不可能访问某些东西,但同时也让开发者完全控制的东西,应用程序代码,有可能访问相同的东西。也就是说,为了使应用程序能够解密配置,开发人员必须能够访问解密密钥
您可以尝试通过仅在构建和部署服务器上可用的工具(即Leiningen插件)来解密配置但是单独存储配置文件会更简单。我认为解决您试图做的事情的最佳解决方案就是从应用程序源代码树中删除配置文件。将配置文件保存到构建和部署服务器,不要让开发人员直接访问这些服务器 你试图做的主要问题是,你试图让你的开发者不可能访问某些东西,但同时也让开发者完全控制的东西,应用程序代码,有可能访问相同的东西。也就是说,为了使应用程序能够解密配置,开发人员必须能够访问解密密钥
您可以尝试通过仅在构建和部署服务器上可用的工具(即Leiningen插件)对配置进行解密,但单独存储配置文件会更简单。感谢您的编写。除了将文件存储在服务器上的文件中,我还可以将它们以加密格式保存,以便有权访问服务器的人不会破坏它们。您可以这样做,但仍需要在应用程序中进行解密。如果您使用的是Unix/Linux,并且您知道自己在做什么,那么您可以为应用程序提供自己的非登录用户,并设置对配置文件的权限,以便除了该用户之外,任何人都看不到这些文件。不管怎样,你应该这样做。谢谢你的来信。除了将文件存储在服务器上的文件中,我还可以将它们以加密格式保存,以便有权访问服务器的人不会破坏它们。您可以这样做,但仍需要在应用程序中进行解密。如果您使用的是Unix/Linux,并且您知道自己在做什么,那么您可以为应用程序提供自己的非登录用户,并设置对配置文件的权限,以便除了该用户之外,任何人都看不到这些文件。无论如何,你应该这样做。