首页 > 解决方案 > 在 Spring Vault 中部分存储实体数据

问题描述

我一直在浏览 Vault 文档,但我仍然不确定我是否正确理解了解决问题的方法。

想象一下有一个名为 Example 的实体。它有多个字段,例如名称,创建等,其中敏感字段,例如密码,secret_key。

@Entity
@Table(name = "example")
public class Example { 
  private String name;
  private Date created;

  ...

  @Convert(converter = SomeConverter.class)
  private String password;
  @Convert(converter = SomeConverter.class)
  private String secretKey;
}

该实体存储在 SQL 数据库(例如 PostgreSQL)中。现在我的目标是确保密码安全(因此是转换器类),但其余数据不安全。

是否可以将实体数据存储在 DB 中,同时将敏感数据存储在 Vault 中(在其后面的任何存储中)?因此,当我加载实体时,实体数据将从数据库加载,敏感数据从保险柜加载。

还是正确(也是唯一可行的)方法是仅使用 Vault 中的加密/解密转换器并将其存储在同一个数据库中?并通过 Vault 进行身份验证来限制这一点。

在这种情况下,如果 Vault 通常只用于静态机密,我只是感到困惑。

标签: javaspringhashicorp-vaultspring-vault

解决方案


我会说,这取决于你/企业。

您可以将整个实体(对象)存储到保险库中或仅存储一个字符串。

看看这是否有帮助: https ://www.baeldung.com/spring-vault


推荐阅读