在多台服务器之间共享凭据的最简单方法

问题描述 投票:0回答:1

我知道这是一个普遍的问题,但经过大量搜索后,我没有喜欢的解决方案。我正在为我的学生创建一个简单的面向服务的体系结构示例。我们正在使用数字海洋。将有三台独立的服务器,它们需要找出彼此的IP地址和各种秘密令牌(例如Twitter访问令牌)。我想说明一个想法,即不要将此类信息放入代码库中。

我的计划是在所有战略要地使用环境变量。但是,如何使这些环境变量“自动”和“可维护地”设置?

  1. 我可能只有一个文件有一个私人的github存储库,记得要克隆它并在所有三台服务器上对其进行更新
  2. 我不想进入capistrano和类似的复杂事物
  3. 我曾考虑过在其中包含信息的要点,并使用http来获取它,但要点是公开的。好的,我将要点设为私有,但是现在我必须对要点进行身份验证,然后我回到了开始的地方。

建议?

environment-variables digital-ocean soa
1个回答
1
投票

无论选择哪种方式,您都必须提供一种验证对机密访问权限的方法。

或者“我已经在白板上写了Twitter访问令牌”

或者“机密存储在服务中,这是您验证对它们的访问的方式”。

对于后者,私有的Git仓库不是最糟糕的解决方案。您可以向您的学生(帐户)提供对存储库的访问权限。他们将分两步:从GitHub存储库中获取令牌,将令牌应用于Digital Ocean资源。

[存在替代方案,包括HashiCorp的Vault参见tutorial。我最近也使用了Google的Secret Manager。这些是第三方服务,而不是Digital Ocean直接提供的功能。

[我怀疑在simplifying流程中也存在一个隐式问题,这将需要委托auth。可能有一种方法(尽管我不知道)将auth委托给Digital Ocean,以便您可以提供一种与特定Digital Ocean帐户相反的机制(类似于上述示例)。

© www.soinside.com 2019 - 2024. All rights reserved.