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

Настройка автоматического распечатывания через второй StarVault

1. Описание стенда

  1. Стенд №1: отказоустойчивый кластер StarVault

    HAProxy адрес: http://rg-starvault.uran.rg
    StarVault node1 адрес: https://rg-starvault-1.uran.rg:8200
    StarVault node2 адрес: https://rg-starvault-2.uran.rg:8200
    StarVault node3 адрес: https://rg-starvault-3.uran.rg:8200
  2. Стенд №2: 1 нода StarVault, служит только для unseal

    Отдельный starvault: https://rg-sv.uran.rg:8200

2. Настройка целевого StarVault (для auto-unseal)

2.1. Авторизация и создание транзитного метода

  1. Авторизуйтесь с помощью команды:

    starvault login <root_token_rg-sv>
  2. Включите механизм секретов transit.

    starvault secrets enable transit

2.2. Создание ключа для auto-unseal

starvault write -f transit/keys/autounseal-key

2.3. Создание политики доступа для основного кластера

Политики доступа всегда должны быть минимально необходимыми для обеспечения максимальной защиты.

  1. Название политики: autounseal.

starvault policy write autounseal - <<EOF
path "transit/encrypt/autounseal-key" {
   capabilities = [ "update" ]
}

path "transit/decrypt/autounseal-key" {
   capabilities = [ "update" ]
}
EOF

2.4. Создание токена для основного кластера

starvault token create -policy="autounseal" -format=json

Сохраните полученный токен. В дальнейшем он понадобится для настройки основного кластера.

3. Настройка основного кластера StarVault

3.1. Создание конфигурационного файла для auto-unseal

На каждом узле основного кластера необходимо (rg-starvault-1, rg-starvault-2, rg-starvault-3) создайте/дополните конфигурационный файл StarVault (например, /etc/starvault.d/starvault.hcl):

seal "transit" { (1)
  address = "https://rg-sv.uran.rg:8200"
  token = "s.VJkygn5FgiGOAQirglme5je5" # токен, полученный из unseal StarVault
  key_name = "autounseal-key"
  mount_path = "transit/"
  tls_skip_verify = true
}
1 Параметры, применяемые в блоке конфигурации seal отображены в данном разделе.

Перезапуск служб StarVault:

systemctl restart starvault

Проверка статуса запуска сервиса StarVault:

systemctl restart starvault

Проверка статуса StarVault:

starvault status

4. Описание вариантов при аварии unseal StarVault

В случае выхода из строя узла, с unseal StarVault могут возникнуть критические последствия.

Список критических последствий:

  • Основной кластер НЕ сможет автоматически распечатываться

  • При перезапуске основного кластера - он останется запечатанным

  • Данные будут недоступны до восстановления механизма секретов transit StarVault

Рекомендуется в случае выхода узла из строя выполнить следующие шаги:

  1. Выполните резервное копирование с возможностью восстановления.

  2. Вернитесь к Shamir seal (считается экстренным).

4.1. Резервное копирование ключей transit StarVault

  1. На rg-sv.uran.rg необходимо выполнить команду:

    export STARVAULT_ADDR='https://rg-sv.uran.rg:8200'
    starvault login
  2. Выполните резервное копирование transit ключа.

    starvault read -format=json transit/backup/autounseal-key > autounseal-key-backup.json
  3. Выполните резервное копирование корневого токена и ключей transit StarVault.

    starvault operator init > transit-starvault-keys-backup.txt

4.2. Резервное копирование конфигурации

  1. Выполните резервное копирование конфигурации с помощью команды:

    sudo tar -czf starvault-config-backup.tar.gz /etc/starvault.d/ /opt/starvault/
  2. Выполните резервное копирование данных Raft с помощью команды:

    sudo tar -czf starvault-data-backup.tar.gz /var/lib/starvault/

4.3. Настройка резервного transit StarVault

Выполните настройку репликации между transit StarVault:

starvault write sys/replication/performance/primary/enable primary_cluster_addr="https://rg-sv.uran.rg:8201"

4.4. План восстановления на случай потери UNSEAL узла

4.4.1. Восстановление transit StarVault из резервной копии

Для восстановления transit StarVault из резервной копии, необходимо выполнить следующие шаги:

  1. Разверните новую VM.

  2. Восстановите конфигурации и данные из резервной копии.

  3. Импортируйте transit ключ.

    starvault write transit/restore/autounseal-key backup=@autounseal-key-backup.json

4.4.2. Переключение основного кластера на новый transit StarVault

# Измените конфиг основного кластера
seal "transit" {
  address = "https://NEW-TRANSIT-VAULT:8200" # смените адрес
  token = "new-token"                        # укажите новый токен
  mount_path = "transit/"
  key_name = "autounseal-key"
}

4.5. Возвращение к Shamir seal (экстренный)

Для возвращения к Shamir seal необходимо выполнить следующие действия:

  1. Уберите секцию seal из конфигурации.

  2. Перейдите обратно на ручное распечатывание.