我一直在浏览 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 通常只用于静态机密,我只是感到困惑。