我有多个应用程序在不同的服务器上运行,但它们都需要相同的配置文件(其中包含敏感信息)。目前,我只是在我所有的服务器上加载配置文件,但它的可扩展性不是很好,当我想进行更改时会很痛苦。
为多台服务器提供单一配置的安全解决方案有哪些?这些是 ec2 实例,所以如果有一个 AWS 解决方案可以让我更容易,我会全力以赴。
我目前倾向于的解决方案是加密配置并将其放在 AWS S3 上,然后使用 AWS Key Management Service (KMS) 在服务器端解密。任何其他想法将不胜感激。
我有多个应用程序在不同的服务器上运行,但它们都需要相同的配置文件(其中包含敏感信息)。目前,我只是在我所有的服务器上加载配置文件,但它的可扩展性不是很好,当我想进行更改时会很痛苦。
为多台服务器提供单一配置的安全解决方案有哪些?这些是 ec2 实例,所以如果有一个 AWS 解决方案可以让我更容易,我会全力以赴。
我目前倾向于的解决方案是加密配置并将其放在 AWS S3 上,然后使用 AWS Key Management Service (KMS) 在服务器端解密。任何其他想法将不胜感激。
AWS Elastic File System是一种共享文件系统,其工作方式类似于 NFS。存储一个配置文件基本上不需要任何成本。您可以根据需要对其进行加密,尽管 EFS 尚未将加密作为服务器的一部分。
如果您想要共享文件系统但 EFS 不可用,您可以运行具有 NFS 共享的实例。要存储配置文件,您可以在 t2.nano 上以大约 3 美元/月的价格运行它。您可以交替地从您已经拥有的单台机器上运行 NFS 共享。显然,这台机器应该在一个没有通往互联网的路由的私有子网上,并进行了适当的加固。
S3 是存储文件的好地方,它支持静态加密。我总是对服务器端加密有点警惕,因为密钥和数据都存储在 AWS 中,尽管 AWS 声称它在 KMS 中以一种非常安全的方式并且无法检索密钥。但是,如果您使用客户端加密,则必须在实例上存储加密密钥,这几乎肯定不如使用设计良好的第三方服务(如 KMS)安全。
您还可以考虑使用EC2 用户数据在启动时向实例提供信息。这将是使用自动扩展实例队列做事的好方法,因为您定义它一次,并且它可用于启动的每个实例。
相关的是在 EC2 实例启动之前为其分配一个 IAM 角色,这使您可以定义一个允许 EC2 访问其他 AWS 资源的策略。这可能对您的用例没有帮助,但是是相关的。
您还可以使用 rsync、bittorrent 同步或 Dropbox 同步等同步技术在机器之间移动文件。在这种情况下,它可能不是一个很好的解决方案,但它可能适用于其他用例。