Начало работы с Hashicorp Vault и создание первого секрета

В этой статье мы рассмотрим первые шаги пользования Hashicorp Vault: запустим сервер, научимся авторизовываться и создадим свой первый секрет. Рассмотрим, как это можно делать в веб-интерфейсе, а, также, и в терминале

Обложка: Начало работы с Hashicorp Vault и создание первого секрета

Содержание

·        Введение

·        Что такое Hashicorp Vault

·        Запуск сервера

·        Авторизация на сервере

·        Авторизация с помощью терминала

·        Создание первого секрета

·        Создание секрета с помощью терминала

·        Заключение

Введение

Привет, я - Анастасия, java-разработчик, хочу вам рассказать про hashicorp vault. Сама я с ним столкнулась на рабочем проекте, моей задачей было внедрить hashicorp vault в проект, и, так как, для меня это была новая технология, то, конечно, я столкнулась с трудностями. Хочу вам тоже рассказать об этой технологии. Эта статья будет вводная, чтобы ввести плавно вас в эту тему.

Что такое Hashicorp Vault

Vault — это продукт компании Hashicorp, созданный для хранения секретов и безопасного доступа к ним. Секрет — это данные, которые вы хотите обезопасить, доступ к которым вы хотите контролировать. Этими данными могут быть ключи API, пароли, сертификаты и другое. 

Запуск сервера

Для начала нам нужно запустить сервер Vault. Для этого мы воспользуемся Docker Desktop.

Найдем в поиске образов "hashicorp/vault", скачаем и запустим. При запуске в дополнительных настройках укажем "0", чтобы назначить случайный порт хоста(можно ввести определенный).

После запуска мы должны увидеть такое окно:

Авторизация на сервере

Для того, чтобы зайти на сервер hashicorp vault, нажимаем на ссылку вверху

Нас встречает окно авторизации.

Vault поддерживает большое множество способов авторизации (в спойлере), которые, также, можно настроить. Добавление способов авторизации рассмотрим в следующей статье. Подробнее про способы авторизации можно прочитать в документации.

  • AppRole
  • JWT
  • OIDC
  • TLS Certificates
  • Username & Password
  • AliCloud
  • AWS
  • Azure
  • Google Cloud
  • GitHub
  • Kubernetes
  • LDAP
  • Okta
  • RADIUS

Мы же при первом заходе используем способ авторизации по токену. Вводим токен, который можно найти в самом низу логов, в поле авторизации. Способ авторизации по токену выбран автоматически.

Авторизация с помощью терминала

Также, мы можем авторизоваться через терминал (в Docker Desctop ). Для этого сначала нам нужно определить переменную окружения, команда указана в логах, ее нужно прописать в терминале

			export VAULT_ADDR='http://0.0.0.0:8200'
		

Далее, с помощью команды

			vault login token=<token>
		

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

Создание первого секрета

После авторизации нас встречает такой интерфейс:

Слева присутствуют вкладки:

  • Secrets engines - управление секретами
  • Access - управление доступами
  • Policies - управление политиками
  • Tools

Соответственно, чтобы добавить секрет, нужно находиться на вкладке Secrets engines.

Механизмы секретов (Secrets engines) — это компоненты, которые хранят, генерируют или шифруют данные. Механизмы секретов невероятно гибки, поэтому их проще всего рассматривать с точки зрения их функций. Механизмам секретов предоставляется некоторый набор данных, они выполняют с этими данными определенные действия и возвращают результат.
&nbsp;&nbsp;

Подробнее про механизмы секретов можно почитать в документации.

  • KV
  • PKI Certificates
  • SSH
  • Transit
  • TOTP
  • Kubernetes
  • Active Directory
  • AliCloud
  • AWS
  • Azure
  • Google Cloud
  • Google Cloud KMS
  • Consul
  • Databases
  • Nomad
  • RabbitMQ

Чтобы добавить наш первый секрет, нажмем "Enable new engine", затем выберем KV и создадим механизм. Сюда уже можно добавлять секреты.

Перейдем в создание секрета.

Можно создавать секреты в JSON формате.

В поле Path for this secret прописываем путь для секрета.

В поле Secret data пишем имя для обращения к секрету и сами данные, которые хотим спрятать.

Заполнив все поля, наконец-то, можем сохранить секрет.

Создание секрета с помощью терминала

Рассмотрим то же самое создание секрета, но с помощью терминала.

1) Чтобы включить механизм секретов KV, введем в терминал следующую команду :

			vault secrets enable -version=1 kv 
		

2) Теперь можем создать сам секрет:

			vault kv put kv/<путь до секретов> <название секрета>=<секрет>
		

Пример:

			vault kv put kv/my-secret my-value=secret
		

Также, можно прописать сразу несколько секретов. Например:

			vault kv put kv/my-secret my-value=secret my-value-2=secret2
		

3) Теперь мы можем прочитать наши секреты следующей командой:

			vault kv get kv/<путь до секретов>
		

4) Просмотреть список секретов:

			vault kv list kv/
		

5) Удалить секреты:

			vault kv delete kv/my-secret
		

Заключение

Итак, мы рассмотрели первые шаги пользования Hashicorp Vault: запустили сервер, научились авторизовываться и создали свой первый секрет. Рассмотрели, как это можно делать в веб-интерфейсе, а, также, и в терминале.

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