Как я могу использовать Hashicorp Vault для управления секретами своих приложений?

Я очень взволнован предложениями Hashicorp Vault, но у меня возникают проблемы с тем, как мне вписаться, как он вписывается в нашу нынешнюю архитектуру. Без сомнения, необходимость вручную открывать хранилище при каждом развертывании является большим преимуществом для безопасности, но как приложения должны реагировать, когда хранилище изначально запечатано?

Например, если приложение A зависит от учетных данных базы данных, сгенерированных Vault для инициализации, как это приложение должно реагировать, когда оно развертывается, когда Vault запечатан? Спин-ожидание при проверке на закрытый статус?

Кроме того, как другие люди заранее заполняют Убежище определенными секретами в производстве? Например, у нас есть сервер аутентификации, который зависит от единого согласованного системного секрета, который он должен извлечь из Vault при запуске. Как надежно убедиться, что этот секрет доступен после развертывания Vault?

Для справки, мы развертываем Vault с некоторыми другими службами, используя docker-compose а также ecs compose для развертывания.

1 ответ

Нет необходимости запечатывать ваше хранилище между развертываниями. Хранилище требует открытого хранилища для возобновления аренды, чтения секретов, создания учетных данных и т. Д. Хранилище защищено аутентификацией и авторизацией при обычном использовании.

Вы должны запечатать свое хранилище, когда обнаружено значительное вторжение. Запечатывание хранилища помогает минимизировать ущерб, выбрасывая восстановленный главный ключ. Это предотвращает работу Vault до тех пор, пока риск не будет уменьшен. Запечатывание не отменяет учетные данные, которые были выпущены Vault.

Вы также спрашивали об импорте ранее существовавших секретов и о том, как "надежно убедиться, что этот секрет доступен после развертывания Vault?":

Вы должны выполнить команды записи для ваших ранее существующих секретов, чтобы импортировать их после того, как хранилище было распечатано. Вы можете надежно убедиться, что секрет существует, прочитав его. Операции чтения и записи обычно безопасны при использовании CLI или API.

$ vault write secret/single-consistent-system-secret value=secret-stuff
Success! Data written to: secret/single-consistent-system-secret

$ vault read secret/single-consistent-system-secret
Key             Value
lease_duration  2592000
value           secret-stuff
Другие вопросы по тегам