多个服务器使用一个配置文件

多个服务器使用一个配置文件

我在不同的服务器上运行多个应用程序,但它们都需要相同的配置文件(其中包含敏感信息)。目前,我只是在所有服务器上加载配置文件,但这种做法的可扩展性不强,而且当我想进行更改时,这很麻烦。

有哪些安全的解决方案可以让多个服务器使用单一配置?这些是 ec2 实例,因此如果有 AWS 解决方案可以让这一切变得更容易,我愿意倾听。

我目前倾向于的解决方案是加密配置并将其放在 AWS S3 上,然后使用 AWS 密钥管理服务 (KMS) 在服务器端解密。如果有任何其他想法,我将不胜感激。

答案1

AWS 弹性文件系统是一种与 NFS 类似的共享文件系统。存储一个配置文件基本不需要花费任何费用。您可以根据需要对其进行加密,尽管 EFS 尚未将加密作为服务器的一部分提供。

如果您想要一个共享文件系统,但 EFS 不可用,您可以运行一个带有 NFS 共享的实例。要存储配置文件,您可以在 t2.nano 上运行它,每月约 3 美元。您也可以从您已有的一台机器运行 NFS 共享。显然,这台机器应该位于没有互联网路由的私有子网上,并经过适当强化。

S3 是存储文件的好地方,它支持静态加密。我总是对服务器端加密有点警惕,因为密钥和数据都存储在 AWS 中,尽管 AWS 声称它在 KMS 中以非常安全的方式存储,并且密钥无法检索。但是,如果您使用客户端加密,则必须将加密密钥存储在实例上,这几乎肯定不如使用设计良好的第三方服务(如 KMS)安全。

您也可以考虑使用EC2 用户数据在启动时向实例提供信息。这是使用自动缩放实例队列执行操作的好方法,因为您只需定义一次,它就可以供启动的每个实例使用。

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

您还可以使用 rsync、bittorrent sync 或 dropbox sync 等同步技术在机器之间移动文件。在这种情况下,这可能不是一个很好的解决方案,但它可以用于其他用例。

相关内容