Установка в среде выполнения контейнеров
-
Установлена среда выполнения контейнеров, например, docker или podman.
-
Установлен, в зависимости от среды исполнения, Docker Compose или Podman Compose.
Обычно для Docker compose-оболочка устанавливается вместе со средой выполнения.
Для podman в rh-based дистрибутивах выполните следующее:
-
Установите репозиторий epel:
dnf install -y epel-release -
Установите podman-compose:
dnf install -y podman-compose
-
-
Добавьте разрешающее правило на сетевом экране для TCP-порта 8200, например для firewalld:
firewall-cmd --add-port=8200/tcp --permanent firewall-cmd --reloadВ примере используется порт 8200, но вы можете использовать любой другой порт. Конфигурационный файл после установки расположен по пути /etc/starvault.d/starvault.hcl. -
Создайте каталог для хранения данных и конфигурации:
mkdir -p /opt/starvault/{data,tls} -
Создайте самодписанный сертификат или пропустите текущий этап, если будет использоваться сертификат выданный вашим Центром сертификации:
openssl req -nodes -x509 -sha256 -newkey rsa:4096 \ -keyout /opt/starvault/tls/starvault.key \ -out /opt/starvault/tls/starvault.crt \ -days 356 \ -subj "/C=RU/O=Orionsoft/CN=starvault" \ -extensions san \ -config <( \ echo '[req]'; \ echo 'distinguished_name=req'; \ echo '[san]'; \ echo 'subjectAltName=DNS:localhost,DNS:starvault,IP:127.0.0.1')StarVault может быть запущен без использования SSL. Если вам не требуется шифрование, то пропустите текущий этап. -
Подготовьте конфигурационной файл /opt/starvault/config.hcl:
cat << EOF > /opt/starvault/config.hcl ui = true storage "file" { path = "/opt/starvault/data" } listener "tcp" { address = "0.0.0.0:8200" tls_cert_file = "/opt/starvault/tls/starvault.crt" tls_key_file = "/opt/starvault/tls/starvault.key" } EOFДля запуска StarVault без SSL замените параметры в конфигурационной файле
tls_cert_fileиtls_key_fileнаtls_disable = "true". -
Создайте Compose манифест:
cat << EOF > /opt/starvault/compose.yml services: starvault: image: hub.orionsoft.ru/public/starvault:v1.5.0 volumes: - /opt/starvault/data:/opt/starvault/data - /opt/starvault/tls:/opt/starvault/tls - /opt/starvault/config.hcl:/opt/starvault/config.hcl ports: - 8200:8200 - 8201:8201 cap_add: - IPC_LOCK entrypoint: starvault server -config /opt/starvault/config.hcl EOFДля запуска с помощью podman в режиме rootless нужно явно задать права на доступ к прокинутым томам для пользователя, от имени которого будет запускаться контейнер (в примере ниже используется admin):
-
Смените владельца каталога для starvault:
chown admin:admin -R /opt/starvault -
Добавьте параметры доступа к списку подключаемых томов в compose.yml:
- /opt/starvault/data:/opt/starvault/data:z - /opt/starvault/tls:/opt/starvault/tls:z - /opt/starvault/config.hcl:/opt/starvault/config.hcl:z
-
-
Поднимите контейнер:
-
Для docker:
docker compose --file /opt/starvault/compose.yml up -
Для podman:
podman compose --file /opt/starvault/compose.yml up
-
-
Выполните инициализацию:
Инициализация - это процесс настройки StarVault. Она происходит только один раз, когда сервер запускается с новым бэкендом, который никогда ранее не использовался с StarVault. -
В браузере перейдите по адресу https://SERVER-IP:8200, где SERVER-IP - адрес сервера, на котором развертывается StarVault.
-
В поле Key shares введите количество долей ключа на которое будет разделён ключ распечатки
-
В поле Key threshold введите количество долей, которого будет достаточно для расшифровывания корневого ключа
-
Нажмите Initialize для инициализации StarVault.
-
-
После того, как инициализация будет выполнена, на экране будут выведены все части ключа и корневой токен. Сохраните эти данные и нажмите Continue to Unseal для перехода к распечатыванию хранилища.
Части ключа и начальный корневой токен крайне важны. Это единственный раз, когда все эти данные известны StarVault, а также единственный раз, когда они должны быть так близко друг к другу. Для быстрого сохранения вы можете загрузить токен и доли ключа в формате json, нажав Download keys.
-
Поочередно введите доли ключа распечатки в поле Unseal Key Portion в необходимом количестве. После ввода каждой доли нажимайте Unseal
-
После ввода необходимого количества долей, хранилище будет распечатано, на что указывает статус:
-
На экране логина убедитесь, что выбран метод аутентификации Token и введите корневой токен, полученный после инициализации. Нажмите Sign In для входа.
-
При успешном входе вы увидите Secrets Engines.