Я работаю с Vault для своего проекта и использую Go API.
В настоящее время API поддерживает только /v1
путь, и это нормально. Моя проблема в том, что в моей конфигурации разработки у меня есть файл docker-compose.yml
, который настроен с простой конфигурацией, которая выглядит следующим образом:
version: '3.7'
services:
my-vault:
image: library/vault:1.4.0
container_name: my-vault
cap_add:
- IPC_LOCK
environment:
VAULT_DEV_ROOT_TOKEN_ID: devroot
VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200
ports:
- 8200:8200
Когда я вручную создаю свой секретный движок через пользовательский интерфейс (и явно устанавливаю его на V1), я могу нормально использовать свой код. Я просто устанавливаю данные, и библиотека Go работает как шарм:
client, err := vault.NewClient(vault.DefaultConfig())
if err != nil {
panic(err)
}
myMapValues := map[string]interface{}{}
myMapValues["mykey"] = "someSecretValue"
_, err := client.Logical().Write("myV1SecretPath/hello", myMapValues)
if err != nil {
panic(err)
}
В контейнере Docker я вижу:
/ # ps aux | grep vault
6 vault 0:07 vault server -config=/vault/config -dev-root-token-id=devroot -dev-listen-address=0.0.0.0:8200 -dev
Я вижу там, что расположение конфигурации установлено в каталог /vault/config
, который по умолчанию ничего не содержит. Читая документацию по конфигурации сервера, я не вижу способа указать конфигурацию по умолчанию для секретов.
Я хотел бы добавить файл конфигурации, эмулирующий эту команду:
vault secrets enable -address=http://127.0.0.1:8200 -version=1 -path=myV1SecretPath kv
Возможно ли это с помощью параметра конфигурации, или мне просто нужно создать свой собственный образ Docker для этого?