Vault — это секретный сервис управления от HashiCorp. Это инструмент, который поможет вам хранить секреты (ключи API, пароли и т. д.) и безопасно получать к ним доступ. Вы можете использовать Vault с пользовательским интерфейсом, а также через интерфейс командной строки.
В этом блоге мы не будем углубляться в то, что такое хранилище, а вместо этого рассмотрим, как мы можем перенести секреты из одного хранилища в другое. Мы можем перенести секреты из хранилища с помощью интерфейса командной строки хранилища, но это может быть немного сложно. Поэтому, чтобы упростить задачу, мы будем использовать безопасный интерфейс командной строки, который представляет собой оболочку Vault. Это поможет нам в управлении и переносе наших секретов с помощью простых команд. Это также помогает нам очень быстро подключаться к различным экземплярам хранилища для целей миграции.
Для получения более подробной информации о Safe CLI просмотрите их README .
Для этой демонстрации мы перенесем секреты из одного хранилища в другое. Я, очевидно, не буду использовать хранилище производственного уровня, а запущу локальный сервер разработки хранилища, предоставленный самим хранилищем, для ознакомления с хранилищем. Вы можете проверить, как раскрутить сервер разработки здесь .
Прежде чем начать с сейфа, нам нужно подключиться к хранилищу с секретами и целевому хранилищу и получить токены. Эти токены будут использоваться сейфом для аутентификации.
Способ входа в хранилище:
export VAULT_ADDR=<vault_url>
export VAULT_SKIP_VERIFY=<true/false>
export VAULT_CLIENT_CERT=<vault_client_cert_path>
export VAULT_CLIENT_KEY=<vault_client_key_path>
export VAULT_CA_CERT=<vault_ca_cert_path>
export VAULT_TOKEN=$(vault login -method=cert -token-only)
vault login -method=cert
Как только вы войдете в хранилище, вы получите токен. Сохраните этот токен, так как он будет использоваться сейфом для входа в хранилища.
Установите безопасный интерфейс командной строки отсюда. Вы можете получить безопасные двоичные файлы здесь . Если вы работаете с Linux-машиной, как я, вы можете использовать эту команду.
wget https://github.com/starkandwayne/safe/releases/tag/v1.6.1
После установки дайте разрешение на исполняемый файл:
chmod u+x <executable name>
Вы можете добавить псевдоним для сейфа, .bashrc
чтобы упростить использование CLI.
Первым шагом к миграции через сейф будет добавление экземпляров хранилища в сейф. Safe добавляет экземпляры хранилища в качестве целей.
Сначала мы добавим хранилище, содержащее наш секрет.
safe target <vault_address> <vault_name>
Если вы хотите пропустить проверку tls -k
:
safe target -k <vault_address> <vault_name>
И чтобы подключиться к этому адресу, нам нужно пройти аутентификацию. Наиболее распространенным способом аутентификации является использование токена, но вы также можете выполнять аутентификацию по-разному.
safe auth token
После того, как вы добавили токен, вы можете проверить переменные env, чтобы убедиться, что добавленные значения верны, используя:
safe env --bash
Дополнительные сведения об аутентификации и различных командах см. в безопасном файле CLI README .
Повторите те же шаги, чтобы подключиться к целевому хранилищу, в которое вы хотите перенести свои секреты.
Перенос секретов
Если пути для обоих хранилищ одинаковы, вы можете импортировать секреты с помощью одной команды.
safe -T <target> export <path> | safe -T <target_vault> import <path> Если пути для обоих хранилищ разные, вам нужно будет сделать это вручную, выполнив следующие действия: safe -T <target> export <path>
Это будет эхом секретов. Скопируйте их в файл и измените значение ключа на новый путь.
Импортируйте обновленные секреты с новыми путями с помощью команды
Safe import < ./<filename>
Вы можете проверить секретное дерево, указав на желаемую цель
Safe tree <path>
Эти шаги должны помочь вам легко завершить миграцию.
Статья является переводом сайта upanshu73.medium.com