HashiCorp Vault / SecMan
Интеграция с хранилищем секретов настраивается с помощью полей в конфигурационном файле. Ниже пример заполненных полей конфигурационного файла для подключения к HashiCorp Vault.
Последовательность действий
Есть два способа указания секретного ключа (secret_id):
-
Ключ явно указывается непосредственно в конфигурационном файле:
vault: # настройки подключенияserver: <vault-url>namespace: <namespace>path: <mount-path>kv_version: v2approle:role_id: <role-id>secret_id: <secret-id>auth_method: approle -
Секрет находится в хранилище секретов и загружается приложением через метод распаковки секрета (
unwrap), токен для распаковки секрета необходимо записать в файл, а путь к нему указать в конфигурации (wrapping_secret_id_file_path). В таком случае ключ в самом конфигурационном файле не присутствует, переупаковка секрета (rewrap) происходит автоматически после успешного входа в хранилище секретов:vault: # настройки подключенияserver: <vault-url>namespace: <namespace>path: <mount-path>kv_version: v2approle:role_id: <role-id>auth_method: approlewrapping_secret_id_file_path: /var/pbr/cw.wrapped.secret.vlt # путь к файлу для хранения wrapping tokenwrapping_secret_id_ttl: 8h # время жизни wrapping token (например, 10m - 10 минут, 6h - 6 часов)
По умолчанию в Vault отсутствует доступ к /sys/wrapping/rewrap endpoint, поэтому при использовании механизма распаковки/упаковки секрета secret_id важно проверить наличие прав на переупаковку секрета - rewrap:
path "sys/wrapping/rewrap" {
capabilities = ["update"]
}
Например, так:
$ echo "path \"sys/wrapping/rewrap\" { capabilities = [\"update\"] }" | vault policy write test-policy-rewrap -
$ vault write auth/approle/role/ test-role policies="test-policy-reader,test-policy-rewrap"
Проверка результата
Если Agent Manager, сконфигурированный через Vault, завершил выполнение без ошибок подключения/чтения ключей из Vault, то подключение произведено корректно.
Настройка интеграции с SecMan и проверка результата выполняются аналогично настройке интеграции с HashiCorp Vault.