Использование интерфейса командной строки OpenBao
Обзор
OpenBao имеет два интерфейса командной строки (CLI): OpenBao Web CLI, доступный в веб-интерфейсе, и локальную утилиту bao, которая является оберткой вокруг HTTP API, идентичного HashiCorp Vault.
Веб-версия сильно ограничена в количестве поддерживаемых операций.
Для локальной утилиты шаблон команды выглядит следующим образом:
$ bao <command> [<options>] [<path>] [<args>]где:
- 
<command>— команда из списка команд OpenBao.
- 
<options>— флаги для указания дополнительных параметров.
- 
<path>— путь к ресурсу, необходимый для некоторых операций.
- 
<args>— API-аргументы, необходимые для некоторых операций.
Для получения информации о команде и ее параметрах вызовите ее с флагом -h:
$ bao <command> -hCLI-утилита OpenBao может считывать определенную информацию из переменных окружения, чтобы вам не приходилось явно указывать эти параметры каждый раз при исполнении команд. Если для некоторого параметра существует переменная среды, но при вызове команды значение этого параметра явно указывается флагом, то будет использовано значение флага. Доступные для чтения переменные среды вы можете увидеть в документации OpenBao.
Работа с CLI OpenBao
- 
Первым опциональным шагом является создание переменной окружения VAULT_ADDR, указывающей на хост с OpenBao. По умолчанию OpenBao отправляет запросы на адресhttps://127.0.0.1:8200, что не всегда работает корректно. Данный шаг можно пропустить, но тогда потребуется указывать параметр-addressпри каждом исполнении команды.
- 
Для выполнения действий на сервере необходимо аутентифицироваться. По умолчанию методом аутентификации является token— OpenBao запросит специальный токен доступа, если не указать его явно. Можно выбрать подходящий метод аутентификации с помощью флага-method. Например, аутентификация методомuserpassвыглядит следующим образом:$ bao login -method=userpass username=test_userПосле выполнения команды выше OpenBao попросит ввести пароль пользователя. При успешной аутентификации токен доступа закешируется и будет использован для подписи дальнейших запросов, и будет выведено следующее сообщение: Success! You are now authenticated. The token information displayed below is already stored in the token helper. You do NOT need to run "bao login" again. Future OpenBao requests will automatically use this token. Key Value --- ----- token <your_token> token_accessor o5mN3ud1fz1Zmb4EIamcVhve token_duration 1h token_renewable true token_policies ["default"] identity_policies [] policies ["default"] token_meta_username test_user 
- 
Выполните команду. Например, для записи секрета в движок cubbyholeможно использовать следующую команду:$ bao write cubbyhole/git-credentials username="student01" password="password"В случае успеха будет выведено следующее сообщение: Success! Data written to: cubbyhole/git-credentials 
Примеры использования
Запись и чтение секретов
- 
Активация движка kv:$ bao secrets enable kv
- 
Запись секрета в движок kvс помощью командыkv put:$ bao kv put kv/ssh-creds username="student02" password="password"
- 
Вывод всех ключей в движке kv:$ bao list kvКоманда выводит следующий результат: Keys ---- ssh-creds 
- 
Чтение секрета ssh-credsв движкеkv:$ bao read kv/ssh-credsКоманда выводит следующий результат: Key Value --- ----- password password username student02 
Создание пользователя
- 
Создайте ACL-политику, определяющую права пользователя: $ sudo vi admin.hclВы можете скопировать представленную ниже политику, дающую пользователю все права, или придумать свою: path "*" { capabilities = ["create", "read", "update", "delete", "list", "sudo"] }
- 
Примените политику: $ bao policy write admin admin.hcl
- 
Создайте пользователя: $ bao write auth/userpass/users/<username> password=<password> policies=adminУспешное выполнение команды приведет к следующему выводу: Success! Data written to: auth/userpass/users/<username>