2012-09-28 38 views
1

我正在使用配置文件来存储数据库的密码/密钥以及与AWS等其他服务的连接。如何安全地加密配置文件中的值

我正在使用Travis CI进行构建,并运行我的测试,然后将其部署到活服务器。

我想加密我的配置文件中的变量,只有应用程序应该能够读取它。这是标准 -

1)应用程序应该能够在多个环境中从构建服务器到多个部署服务器进行解密。

2)用于解密配置文件的密码不适用于开发人员。

该项目是clojure,有没有任何leiningen插件/功能,将有助于此?

感谢, 穆尔塔扎

回答

1

我认为你正在尝试做的最好的解决方案就是从应用程序的源代码树中删除配置文件。将配置文件保存到构建和部署服务器,并且不要让开发人员直接访问这些配置文件。

你要做的事情的主要问题是你试图让你的开发者无法访问某些东西,但同时也可以让开发人员完全控制它,应用程序代码,以访问相同的东西。也就是说,为了应用程序能够解密配置,开发人员必须能够访问解密密钥。

你可以尝试使它只能通过只在构建和部署服务器上可用的工具(即一个Leiningen插件)来解密你的配置,但是单独存储配置文件会更简单。

+0

感谢您的写作。除了将文件存储在服务器上的文件中,我是否也可以将它们以加密格式保存,以便有权访问服务器的用户不能妥协。 – murtaza52

+1

你可以这样做,但你仍然需要在应用程序中解密。如果您使用的是Unix/Linux,并且您知道自己在做什么,则可以为该应用程序提供自己的非登录用户,并在配置文件上设置权限,以便除了该用户以外的任何人都看不到它们。无论如何你应该这样做。 – astine

相关问题