私は Vault のドキュメントを調べてきましたが、問題に対してどのアプローチを取るべきかについて正しく理解しているかどうかはまだわかりません。
Example というエンティティがあるとします。name、created などの複数のフィールドがあり、これらのフィールドの中にはパスワード、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 に保存したままにすることはできますか? したがって、エンティティをロードすると、両方のエンティティ データが DB からロードされ、機密データが Vault からロードされます。
それとも、Vault の暗号化/復号化コンバーターを使用して同じデータベースに保存するのが正しい (そして唯一実行可能な) アプローチでしょうか? そして、これを Vault による認証で制限します。
この場合、一般的に Vault を静的シークレットにのみ使用する必要があるかどうか、私は混乱しています。