Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Агент. Генерация конфигураций

Генерирует простой файл конфигурации 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") — команда для выполнения в режиме супервизора процесса агента.