gpt4 book ai didi

hashicorp-vault - 如何在生产中使用 Hashicorp Vault 的 AppRole?

转载 作者:行者123 更新时间:2023-12-03 14:43:08 31 4
gpt4 key购买 nike

我们已经为一台服务器安装并配置了 Hashicorp Vault AppRole 身份验证,通过存储 role_idsecret_id在服务器上的本地文件中,我们可以让服务器上的代码从文件中读取值,对 Vault 进行身份验证,接收 token ,然后从 Vault 读取它需要的 secret 。到现在为止还挺好。然而,secret_id 31 天后到期,因此该过程失败。

我已经阅读了使用 AppRoles 的概念,它们似乎非常适合我们的用例,但是对于这个过期。我们不想重新生成 secret_id每个月。

根据我的阅读,如果您在没有设置的情况下创建角色 secret_id_ttl它应该不会过期,但事实并非如此。这可能是由于 AppRole 身份验证方法的配置方式所致,但我没有看到任何可靠的内容。

所以我找到了一个 article on the Hashicorp website其中详细讨论了 AppRoles。这篇文章为在 CI/CD 环境中使 secret_id 过期提供了很好的论据,甚至通过 8 个简单的步骤说明了这是如何工作的。我明白这是如何工作的,但这篇文章没有提到 是如何工作的。 CI/CD 编排器 系统本身已通过 Vault 身份验证?或者我错过了什么?

最后,我想要secret_id不过期。曾经。

最佳答案

如果没有来自您的环境的额外支持,您将不得不在安装程序中编写一些逻辑,并使用某种服务管理器来启动您的服务。在许多云环境中,您可能已经拥有等效实体(Terraform、Cloud Formation 等),您应该在需要时利用它们的 secret 管理功能。

对于自定义安装,这是我使用的工作流程。

  • 有一个安装管理器进程,可以调用它来执行安装/升级。确保服务的安装/升级始终通过此过程。
  • 有一个服务管理器进程负责启动单个服务并监视它们/重新启动它们。确保服务启动始终通过此服务管理器。
  • 在安装过程中,为 Vault、安装管理器和服务管理器生成自签名证书。 Vault 证书应该信任安装管理器和服务管理器的证书。视情况将这些以有限权限 (600) 存储在安装用户或服务管理器用户拥有的目录中。使用这些证书在 Vault 中设置基于证书的身份验证。
  • 这些凭据应该具有与其相关联的有限功能。安装管理员应该只能创建新角色而不能删除任何内容。服务经理应该只能为安装经理创建的命名角色创建 secret ,并且不删除任何内容。
  • 在安装/升级期间,安装管理器应连接到 Vault 并创建所有必要的特定于服务的角色。它还应该能够在服务在启动时读取的每个服务配置文件中为各个服务设置角色 ID。
  • 在每个服务启动期间,服务管理器应该连接到 Vault 并创建与每个服务角色相对应的 secret ID。它应该在环境变量中设置 secret ID 并启动服务。 secret id 应该具有时间限制的有效性(通过设置 TTL),以便它们不能用于创建身份验证 token 之外的更多用途(参见 #7)。
  • 每个服务都应该从配置文件中读取角色 ID,并从环境变量中读取 secret ID。然后它应该使用这两个生成身份验证 token ,并使用该 token 在其生命周期内向 vault 进行身份验证。
  • 关于hashicorp-vault - 如何在生产中使用 Hashicorp Vault 的 AppRole?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592189/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com