Я просматривал документацию Vault и до сих пор не уверен, правильно ли понимаю, какой подход выбрать для решения моей проблемы.
Представьте, что у вас есть объект под названием Example. Он имеет несколько полей, таких как имя, созданный и т. Д., И среди этих полей есть конфиденциальные, такие как пароль, секретный_ключ.
@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). Теперь моя цель — защитить пароль (отсюда и класс преобразователя), но остальные данные — нет.
Можно ли хранить данные объектов в БД, сохраняя при этом конфиденциальные данные в Vault (в любом хранилище за ним)? Поэтому, когда я буду загружать сущность, обе сущности будут загружаться из БД и конфиденциальные данные из Vault.
Или будет правильным (и единственно жизнеспособным) подходом просто использовать конвертер шифрования/дешифрования из Vault и хранить его в той же базе данных? И ограничьте это аутентификацией с помощью Vault.
Я просто сбит с толку, если Vault вообще должен использоваться только для статических секретов в этом случае.
VaultRepository
: docs.spring.io/spring-vault/docs/2.2.2.RELEASE/reference/html/ или 3. не храните никакую информацию в хранилище, а храните всю информацию в другом хранилище и используйте службу шифрования транзита хранилища: learn.hashicorp.com/vault/encryption-as-a-service/eaas-transit Но на самом деле все зависит от варианта использования. - person daniel.eichten   schedule 05.05.2020VaultTemplate
и сохранил зашифрованный и незашифрованный атрибут в классической базе данных. - person daniel.eichten   schedule 06.05.2020