多个服务器与一个configuration文件

我有多个应用程序运行在不同的服务器上,但它们都需要相同的configuration文件(其中有敏感信息)。 目前,我只是在我的所有服务器上加载configuration文件,但它不是非常可扩展的,当我想进行更改时很痛苦。

什么是一个安全的解决scheme,有一个单一的configuration多个服务器? 这些是EC2实例,所以如果有一个AWS解决scheme,会让我变得更容易。

我目前所倾向的解决scheme是encryptionconfiguration,并将其放在AWS S3上,然后使用AWS密钥pipe理服务(KMS)将其解密到服务器端。 任何其他的想法将不胜感激。

AWS Elastic File System是一种与NFS类似的共享文件系统。 存储一个configuration文件基本上没有任何成本。 如果你愿意的话,你可以encryption它,尽pipeEFS不提供encryption作为服务器的一部分。

如果你想共享文件系统,但EFS不可用,你可以运行一个NFS共享的实例。 为了存储configuration文件,你可以在t2.nano上运行这个约3美元/月。 你可以交替地从一台已经有的机器上运行一个NFS共享。 很显然,这台机器应该在一个私人子网上,没有路由到互联网,适合硬化。

S3是存储文件的好地方,它支持静态encryption。 我总是对服务器端encryption保持警惕,因为密钥和数据都存储在AWS中,尽pipeAWS声称它在KMS内部是非常安全的方式,并且不能检索密钥。 但是,如果使用客户端encryption,则必须在实例上存储encryption密钥,这比使用精心devise的第三方服务(如KMS)的安全性要差一些。

您也可以考虑使用EC2用户数据在启动时向实例提供信息。 当你定义一次自动缩放实例时,这将是一个很好的方法,并且每个启动的实例都可以使用它。

有一点相关的是在启动之前为EC2实例分配一个IAMangular色,这允许您定义允许EC2访问其他AWS资源的策略。 这可能不会帮助你的用例,但是是相关的。

您也可以使用同步技术,如rsync,bittorrent sync或dropbox sync在机器间移动文件。 在这种情况下,这可能不是一个好的解决scheme,但可以用于其他用例。