如何管理mule proejct的数据库凭据

时间:2016-06-14 07:00:50

标签: mule database-connection mule-studio anypoint-studio

我正在使用数据库连接器组件,其中包含用于存储数据库凭据的Vault组件。现在根据两个组件的文档,我为每个环境创建了不同的属性文件,以存储diff env的加密凭据。

以下是我的骡子项目的结构

enter image description here

现在这个结构的问题是,每当我必须为任何环境更新数据库凭据时,我都必须构建新的可部署zip文件。

我需要一个解决方案,我可以保持所有凭据加密和集中,我不必每次更新凭据后都创建一个构建,我们可以重新启动服务器,但构建新的zip和部署真的很麻烦

我们有这种方法的第二个问题是开发人员需要知道生产数据库以在属性文件中更新它,这也是一个安全问题。

请为mule项目的凭证管理建议替代方法。

2 个答案:

答案 0 :(得分:0)

我建议您不要尝试更改MuleSoft提供给您的安全解决方案。为了减少打包和部署的需要,您必须在部署之外提取属性文件,这将是一个巨大的风险。如果更改文件,无论您在部署中存储属性文件的位置如何,都必须打包并重新部署。我看到了解决问题的唯一方法,即将文件移到部署之外并安全地存储它们。 Mule提供了一个解决方案,虽然它可能很麻烦,但它们首先使用加密来保护这些文件,其次是在服务器容器内。您可以移出属性文件,但是您必须提供自定义实现,并且您将承担受保护资源的巨大风险。

答案 1 :(得分:0)

  1. 设置VM争论,例如在anypoint studio上本地机器的environment.type = local。
  2. 以您动态读取环境类型(如下所示)的方式读取属性文件的任何位置读取此变量。 “location =”classpath:properties / sample-app - $ {environment.type} .properties“doc:name =”Secure Property placeholder“/>
  3. 要在生产服务器上设置环境类型(或者在使用mule运行时的任何位置),请打开\ conf \ wrapper.conf并添加arguement wrapper.java.additional。= - Dserver.type = production。如果此文件中已有任何属性,则可能需要适当设置n的值。例如13或14。
  4. 这样您就不需要为不同的环境生成不同的部署工件,因为使用特定于环境的VM争论来选择正确的属性文件。