Агент. Генерация конфигураций
Генерирует простой файл конфигурации StarVault Agent из заданных параметров. В настоящее время единственным поддерживаемым типом конфигурации является env-template, который помогает генерировать файл конфигурации с шаблонами переменных среды для запуска StarVault Agent в режиме супервизора процесса.
Для каждого указанного секретного -пути команда попытается сгенерировать одну или несколько записей env_template на основе ключей JSON, хранящихся в указанном секрете. Если секретный -путь заканчивается на /*, команда попытается выполнить рекурсию по дереву секретов, корнем которого является указанный путь, генерируя записи env_template для каждого обнаруженного секрета. В настоящее время поддерживаются только пути kv-v1 и kv-v2.
Команда, указанная в параметре -exec, будет использоваться для создания записи exec, которая сообщит StarVault Agent, какой дочерний процесс следует запустить.
В дополнение к записям env_template команда генерирует раздел auto_auth с методом аутентификации token_file. Хотя этот метод очень удобен для локального тестирования, его НЕ следует использовать в производственной среде. В производственной среде вместо этого используйте любой другой метод Auto-Auth.
1. Пример
Перед генерацией файла конфигурации давайте вставим секретный файл foo:
$ starvault kv put -mount=secret foo user="admin" password="s3cr3t"
Создайте файл конфигурации агента, который будет ссылаться на secret/foo:
$ starvault agent generate-config \
-type="env-template" \
-exec="./my-app arg1 arg2" \
-namespace="my/ns/" \
-path="secret/foo" \
my-config.hcl
Ожидаемый результат:
Успешно сгенерирован файл конфигурации "my-config.hcl"!
Внимание: сгенерированный файл использует метод аутентификации "token_file", который не подходит для производственных сред.
Это создаст файл my-config.hcl в текущем каталоге с содержимым, аналогичным следующему:
auto_auth {
method {
type = "token_file"
config {
token_file_path = "/Users/avean/.vault-token"
}
}
}
template_config {
static_secret_render_interval = "5m"
exit_on_retry_failure = true
}
vault {
address = "http://localhost:8200"
}
env_template "FOO_PASSWORD" {
contents = "{{ with secret \"secret/data/foo\" }}{{ .Data.data.password }}{{ end }}"
error_on_missing_key = true
}
env_template "FOO_USER" {
contents = "{{ with secret \"secret/data/foo\" }}{{ .Data.data.user }}{{ end }}"
error_on_missing_key = true
}
exec {
command = ["./my-app", "arg1", "arg2"]
restart_on_secret_changes = "always"
restart_stop_signal = "SIGTERM"
}
2. Использование
В дополнение к стандартному набору флагов, включенных во все команды, доступны следующие флаги.
-
type(string: <required>)— тип файла конфигурации для генерации; в настоящее время поддерживается толькоenv-template. -
path(string: "")— путь к секрету kv-v1 или kv-v2 (например,secret/data/foo,kv-v2/my-app/); разрешены несколько секретов и подстановочные знаки. -
-exec(string: "env")— команда для выполнения в режиме супервизора процесса агента.