Хранение чувствительной информации с выбранным способом хранения «hvac»
Способ хранения паролей выбирается на этапе установки Termidesk. Способ хранения паролей «hvac» подразумевает, что будет использоваться хранилище OpenBao или Hashicorp Vault. Хранилище при этом должно быть заранее создано и настроено. При использовании Hashicorp Vault со схемой AD (Active Directory) поддерживается автоматическое обновление паролей.
При этом способе чувствительная информация (имена учетных записей, пароли, открытые и закрытые ключи, keytab-файлы, токены) хранится в контейнерах, пути к которым задаются вручную.
В контейнерах может содержаться как динамически обновляемая чувствительная информация, так и статическая. Поэтому в Termidesk для определения типа информации используются префиксы при задании пути к контейнеру хранения:
hvac-ad://- префикс используется для динамически обновляемой чувствительной информации. Может быть задан только для хранилища Hashicorp Vault;hvac-kv://- префикс используется для статической чувствительной информации. Может быть задан как для хранилища OpenBao, так и для Hashicorp Vault.
Для корректной работы Termidesk со статической чувствительной информацией в хранилище должна быть повторена структура данных Active Directory. Контейнер, содержащий чувствительную информацию, должен содержать параметры:
current_password- пароль учетной записи;username- имя учетной записи.
Пример:
{
'current_password': '?@09AZ3PlvTzMKhsvZ91YFyVjVRHceYQ34eizKcKhVNHPjQJ46kvGGdsBPSkRcE9',
'username': 'adfs-s'
},
Помимо указания префикса должна использоваться точка монтирования (mount point), заданная администратором в хранилище.
Таким образом общий формат указания пути к контейнеру хранения чувствительной информации в Termidesk выглядит следующим образом:
Символ «/» определяет, что должно быть возвращено все содержимое контейнера.
Если нужно вернуть значение конкретной переменной (key) контейнера, символ «/» не используется.
- если нужно вернуть всю информацию из контейнера:
<префикс> <точка_монтирования#> <путь_к_контейнеру>/
- если нужно вернуть только значение конкретного параметра:
<префикс> <точка_монтирования#> <путь_к_параметру_в_хранилище>
Допустим, в хранилище создан контейнер со статической информацией termidesk и точкой монтирования secret:
vault kv get secret/termidesk
Контейнер содержит следующие параметры:
========== Data ========== Key Value --- ----- current_password my_password username Администратор
В этом случае в Termidesk следует указывать:
- для возврата всех параметров:
hvac-kv://secret#termidesk/(будет возвращено:{'current_password': 'my_password', 'username': 'Администратор'}); - для возврата значения параметра
username:hvac-kv://secret#termidesk/username(будет возвращено:'Администратор').
Дополнительные примеры приведены в таблице.
| Команда в хранилище | Указание пути в Termidesk |
|---|---|
Команда записи роли в хранилище: vault write ad/roles/vvddaa service_account_name="vvddaa@domain.local" |
где:
|
Команда записи сертификата в хранилище: vault kv put secret/termidesk-admin/ssl-cert-snakeoil pem=@astra.local.pem Команды вида |
где:
|
Сгенерированный на контроллере домена base64 termidesk.keytab > termidesk.keytab.b64 Команда записи vault kv put secret/termidesk-admin/keytabs termidesk=@kerberos.keytab.b64 Пример команды для преобразования файла и одновременной записи в хранилище: vault kv put secret/termidesk-admin/keytabs termidesk="$(base64 -w 0 termidesk.keytab)" |
где:
|