当前位置: 首页 > 知识库问答 >
问题:

HashiCorp金库填充kubernetes秘密

艾凌龙
2023-03-14

最近,我了解了HashiCorp Vault及其与Kubernetes结合的用法。我发现了两篇非常棒的博客文章,关于如何通过使用init-container和共享卷(post1,post2)来使用HashiCorp Vault来动态生成cred。Kubernetes还提供了一种使用Kubernetes机密处理凭据的好方法,它还允许用户通过环境变量读取凭据。因此,它为秘密存储提供了一个很好的抽象。

我的问题是HashiCorp保险库也可以用来用凭据填充Kubernetes的秘密吗?如何实现?

共有1个答案

鲜于煜祺
2023-03-14

正如@Rico提到的那样,暴露保险库和Kubernetes中的秘密首先就违背了使用保险库的目的。

使用Vault,数据被加密(Transity/REST),您可以对谁可以访问哪些数据提供访问粒度控制。将Vault中的数据暴露给Kubernetes Secret对象(基本上仅限于base64编码)将在很大程度上挫败Vault的最大好处,即保护您的基础设施,并作为负责管理机密的单一实体。

Vault是一个很棒的工具,但在我看来,对于非开发人员配置来说,它可能会变得更加复杂,因为您将不得不附加像Consul这样的工具,这样您就可以拥有持久的后端存储,因此使用sidecar模式这样的体系结构分布式模式也可能是非常过度的,根本不建议使用。

  • 但是有了它,您可以让一个vault实例“生活”在与您的“主”容器相同的Pod中,从而利用vault提供的加密服务,但是我们将vault的生命周期与Pod的生命周期绑定在一起。
  • 使用这种方法,我们需要在每个Pod上有一个Vault实例,以防我们计划访问秘密信息,这只会使系统变得极其复杂。通过这种方法,我们可以在多个vault实例上分离每个对象所需的秘密信息,从而将基础结构的秘密信息传播到多个地方,但我们继续增加管理基础结构的挑战。

因此,我完全理解,试图找到一种方法来将豆荚所需的秘密信息放在它旁边可能看起来很诱人,特别是以一种简单的方式,但如果完全不加密,它肯定会失败。

解决了这一点,为什么不简单地创建一个Vault控制器,它将是负责与Vault交互的实体,并将负责查询Vault中包装的令牌,这些令牌可以在被pod中的init容器解包装后暂时提供对某些秘密信息的访问权?这是由于启动Pod需要额外的时间吗,因为我们需要执行一些早期调用来检索包装的令牌?或者ut是由于在需要从Vault查询机密数据时必须执行额外调用的额外延迟?

每当我想到集成Kubernetes和Vault的想法时,我通常倾向于想到下面由Kelsey Hightower创建的原型

 类似资料:
  • 基本上我们可以有一个只能读取一次的金库密钥吗?

  • 简介 Laravel 可以用 seed 类轻松地为数据库填充测试数据。所有的 seed 类都存放在 database/seeds 目录下。你可以任意为 seed 类命名,但是更应该遵守类似 UsersTableSeeder 的命名规范。Laravel 默认定义的一个 DatabaseSeeder 类。可以在这个类中使用 call 方法来运行其它的 seed 类从而控制数据填充的顺序。 编写 See

  • 我正在测试Vault+Consul之间的集成,以保存我的秘密并将它们存储在多台机器中。我可以看到和插入/检索我的秘密从保险库没有问题。 现在,我正在尝试配置SpringCloud来使用来自Vault的秘密(我浏览了https://cloud.spring.io/spring-cloud-vault/reference/html/),我的bootstrap.yml与示例类似: 而且也管用!我的应用程

  • 我正在寻找一个更好的解决方案的秘密旋转和发现保险库动态秘密是一个很好的一个。通过启用秘密引擎,例如数据库,应用程序/服务可以租赁动态秘密。 我注意到每次应用程序租用数据库机密时,Vault都会在数据库中创建一个新的用户/帐户。我明白,每个应用程序/服务需要是一个好公民,并根据租赁时间使用秘密。然而,在微服务环境中,实现bug可能导致服务请求太多动态机密,从而触发在数据库中创建太多帐户。 有什么方法

  • 当创建一个应用时,你将会想将多个控件放入一个窗口控件。我们的第一个 helloworld 范例仅仅使用了一个控件,因而我们可以只是简单地调用一个gtk_container_add()将控件填充到一个窗口控件。但是当你想要向窗口控件中放置超过一个控件时,控制每一个控件的位置和大小就变得很重要了。这就是接下来要讲的填充。 GTK+自带了大量各种布局的容器,这些容器的目的是控制被添加到他们的子控件的布局

  • 主要内容:创建索引在本节中,我们将向Elasticsearch添加一些索引,映射和数据。此数据将用于本教程中解释的示例中。 创建索引 请求正文 它可以包含索引特定的设置,但是现在,它的默认设置为空。 响应 这意味着创建索引成功 创建映射和添加数据 Elasticsearch将根据请求体中提供的数据自动创建映射,我们将使用其批量功能在此索引中添加多个JSON对象。 请求体 响应结果 - 添加另一个索引 创建索引 请求