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

Установка в среде выполнения контейнеров

Предварительные требования
  • Установлена среда выполнения контейнеров, например, docker или podman.

  • Установлен, в зависимости от среды исполнения, Docker Compose или Podman Compose.

    Обычно для Docker compose-оболочка устанавливается вместе со средой выполнения.

    Для podman в rh-based дистрибутивах выполните следующее:

    1. Установите репозиторий epel:

      dnf install -y epel-release
    2. Установите podman-compose:

      dnf install -y podman-compose
Порядок действий
  1. Добавьте разрешающее правило на сетевом экране для TCP-порта 8200, например для firewalld:

    firewall-cmd --add-port=8200/tcp --permanent
    firewall-cmd --reload
    В примере используется порт 8200, но вы можете использовать любой другой порт. Конфигурационный файл после установки расположен по пути /etc/starvault.d/starvault.hcl.
  2. Создайте каталог для хранения данных и конфигурации:

    mkdir -p /opt/starvault/{data,tls}
  3. Создайте самодписанный сертификат или пропустите текущий этап, если будет использоваться сертификат выданный вашим Центром сертификации:

    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. Если вам не требуется шифрование, то пропустите текущий этап.
  4. Подготовьте конфигурационной файл /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".

  5. Создайте Compose манифест:

    cat << EOF > /opt/starvault/compose.yml
    services:
      starvault:
        image: hub.orionsoft.ru/public/starvault:v1.2.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):

    1. Смените владельца каталога для starvault:

      chown admin:admin -R /opt/starvault
    2. Добавьте параметры доступа к списку подключаемых томов в 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
  6. Поднимите контейнер:

    • Для docker:

      docker compose --file /opt/starvault/compose.yml up
    • Для podman:

      podman compose --file /opt/starvault/compose.yml up
  7. Выполните инициализацию:

    Инициализация - это процесс настройки StarVault. Она происходит только один раз, когда сервер запускается с новым бэкендом, который никогда ранее не использовался с StarVault.
    1. В браузере перейдите по адресу https://SERVER-IP:8200, где SERVER-IP - адрес сервера, на котором развертывается StarVault.

      sv init 1
    2. В поле Key shares введите количество долей ключа на которое будет разделён ключ распечатки

    3. В поле Key threshold введите количество долей, которого будет достаточно для расшифровывания корневого ключа

    4. Нажмите Initialize для инициализации StarVault.

    sv init 2
  8. После того, как инициализация будет выполнена, на экране будут выведены все части ключа и корневой токен. Сохраните эти данные и нажмите Continue to Unseal для перехода к распечатыванию хранилища.

    Части ключа и начальный корневой токен крайне важны. Это единственный раз, когда все эти данные известны StarVault, а также единственный раз, когда они должны быть так близко друг к другу.
    Для быстрого сохранения вы можете загрузить токен и доли ключа в формате json, нажав Download keys.
    sv init 3
  9. Поочередно введите доли ключа распечатки в поле Unseal Key Portion в необходимом количестве. После ввода каждой доли нажимайте Unseal

    sv init 4
  10. После ввода необходимого количества долей, хранилище будет распечатано, на что указывает статус:

    sv init 5
  11. На экране логина убедитесь, что выбран метод аутентификации Token и введите корневой токен, полученный после инициализации. Нажмите Sign In для входа.

    sv login
  12. При успешном входе вы увидите Secrets Engines.

    sv dash