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

Запечатывание/распечатывание хранилища

Сервер StarVault запускается в запечатанном состоянии. В этом состоянии StarVault знает, где и как получить доступ к физическому хранилищу, но не знает, как его расшифровать.

Распечатывание — это процесс получения (в незашифрованном виде) корневого ключа, без которого невозможно прочитать ключ дешифрования, расшифровать данные и получить доступ к StarVault.

До распечатывания невозможны почти никакие операции с StarVault, в том числе аутентификация или управление таблицами монтирования. Доступны только операции распечатывания StarVault и проверки статуса печати (status of the seal).

Данные, хранящиеся в StarVault, зашифрованы. Для расшифровки данных StarVault нужен ключ шифрования. Ключ шифрования также хранится вместе с данными (в связке ключей), но зашифрован другим корневым ключом шифрования.

Поэтому для расшифровки данных StarVault должен расшифровать ключ шифрования, для чего требуется корневой ключ. Распечатывание — процесс получения доступа к корневому ключу. Корневой ключ хранится вместе с другими данными StarVault, но зашифрован еще одним механизмом: ключом распечатывания.

Подведем итог: большинство данных StarVault зашифрованы ключом шифрования в связке ключей, связка ключей зашифрована корневым ключом, а корневой ключ зашифрован ключом распечатывания.

1. Схема Шамира

Конфигурация StarVault по умолчанию использует схему Шамира.

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

Это и есть процесс распечатывания: части ключа распечатывания добавляются по одной за раз (в любом порядке) до тех пор, пока количество частей не станет достаточным для восстановления ключа и расшифровки корневого ключа.

2. Распечатывание

Чтобы запустить распечатывание, выполните starvault operator unseal или создайте API-запрос В процессе сохраняется состояния: каждый ключ распечатывания можно ввести с помощью нескольких механизмов и с нескольких клиентских машин. Поэтому каждую часть корневого ключа можно держать на отдельной клиентской машине, тем самым повысив безопасность.

Обратите внимание, что при использовании схемы Шамира с несколькими узлами каждый узел должен быть распечатан с помощью порогового количества частей ключа. Частичное распечатывание каждого узла не распространяется по кластеру.

Узел StarVault остается распечатанным, пока не произойдет одно из следующих событий:

  1. Узел повторно запечатан через API (см. ниже).

  2. Сервер перезапущен.

  3. На уровне хранения StarVault возникнет неустранимая ошибка.

Распечатывание затрудняет автоматизацию установки StarVault. Автоматизированные инструменты позволяют легко установить, настроить и запустить StarVault, но распечатывание по схеме Шамира происходит вручную. Для большинства пользователей автоматическое распечатывание (Auto Unseal) – лучший вариант.

3. Запечатывание

Для запечатывания StarVault, в том числе есть API. В результате запечатывания корневой ключ в памяти будет сброшен, и, чтобы восстановить работоспособность StarVault, придется снова его распечатать. Для запечатывания требуется только один оператор с root-привилегиями.

Таким образом, при вторжении данные StarVault можно быстро заблокировать для минимизации ущерба. К ним нельзя будет получить доступ снова, пока нет доступа к частям корневого ключа.

4. Автоматическое распечатывание

Автоматическое распечатывание позволяет обезопасить ключ распечатывания гораздо меньшими усилиями. Эта функция делегирует защиту ключа распечатывания от пользователей к доверенному устройству или службе. При запуске StarVault подключится к устройству или службе запечатывания и запросит расшифровку корневого ключа из хранилища.

Помимо распечатывания, в StarVault есть и другие операции (например, создание корневого токена), требующие кворума пользователей. Если используется схема Шамира, то для авторизации этих операций должны быть предоставлены ключи распечатывания. Если же происходит автоматическое распечатывание, то для этих операций требуются ключи восстановления.

Так же, как процесс инициализации с использованием схемы Шамира дает ключи распечатывания, инициализация с автоматическим распечатыванием дает ключи восстановления.

По-прежнему можно запечатать узел StarVault с помощью API. В этом случае StarVault останется запечатанным до перезапуска или до использования API распечатывания. В случае автоматического распечатывания для API потребуются фрагменты ключа восстановления вместо фрагментов ключа распечатывания, которые предоставлялись при использовании схемы Шамира. Процесс же остается прежним.

Ключи восстановления не расшифровывают корневой ключ

Ключи восстановления не расшифровывают корневой ключ, и поэтому их недостаточно для распечатывания StarVault, если механизм автоматического распечатывания не работает. Они используются исключительно для авторизации. Автоматическое распечатывание создает строгую зависимость жизненного цикла StarVault от базового механизма запечатывания. Это означает, что если механизм запечатывания (например, ключ Cloud KMS) становится недоступным или удаляется до изменения способа запечатывания, то восстановить доступ к кластеру StarVault нельзя до тех пор, пока механизм не станет снова доступен. Если механизм запечатывания или его ключи будут удалены навсегда, то кластер StarVault не получится восстановить даже из резервных копий. Чтобы снизить этот риск, рекомендуем тщательно контролировать механизм запечатывания.

5. Ключ восстановления

Когда StarVault инициализируется с помощью KMS, вместо возврата ключей распечатывания оператору возвращаются ключи восстановления. Они генерируются из внутреннего ключа восстановления, который разделяется с помощью Схемы разделения секрета Шамира, так же как это происходит с ключами распечатывания при запуске StarVault без KMS.

Подробная информация об инициализации и пересоздании ключей приведена ниже. При выполнении операции, использующей ключи восстановления, например, generate-root, выбор соответствующих ключей восстановления, а не барьерных ключей распечатывания, происходит автоматически.

5.1. Инициализация

При инициализации разделение выполняется в соответствии со следующими флагами командной строки и их эквивалентами API в конечной точке /sys/init:

  • recovery-shares: Количество частей, на которое следует разделить ключ восстановления. Эквивалентно значению recovery_shares в конечной точке API.

  • recovery-threshold: Пороговое количество частей, необходимое для воссоздания ключа восстановления. Эквивалентно значению recovery_threshold в конечной точке API.

  • recovery-pgp-keys: PGP-ключи, используемые для шифрования возвращаемых частей ключа восстановления. Эквивалентно значению recovery_pgp_keys в конечной точке API, хотя, как и в случае с pgp_keys, объект в конечной точке API является массивом, а не строкой.

Кроме того, StarVault не инициализируется, если генерация ключа параметром не была задана и никаких ключей не найдено. Дополнительную информацию см. в разделе «Конфигурация».

5.2. Пересоздание ключей

5.2.1. Ключ распечатывания

Ключ распечатывания в StarVault можно пересоздать с помощью обычной операции starvault operator rekey из командной строки или соответствующих вызовов по API. Операция пересоздания ключа разрешается, когда количество ключей восстановления достигает порогового значения. После пересоздания новый барьерный ключ хранится как предыдущий ключ. Новый барьерный ключ не возвращается пользователям, которые отправили свои ключи восстановления.

5.2.2. Ключ восстановления

Ключ восстановления можно пересоздать, чтобы изменить количество частей, пороговое значение или указать разных держателей ключей с помощью разных PGP-ключей. Для пересоздания в командной строке StarVault установите флаг -target=recovery команде starvault operator rekey.

Через API операция пересоздания выполняется с теми же параметрами, что и на обычной конечной точке /sys/rekey; однако для этой операции префикс API находится в /sys/rekey-recovery-key, а не в /sys/rekey.

6. Изменение способа запечатывания

Из-за технических особенностей реализации для изменения способа запечатывания придется на короткое время отключить весь кластер. Изменение способа запечатывания происходит довольно редко, в отличие от других видов простоя.

ПРИМЕЧАНИЕ: Прежде чем менять способ запечатывания, сделайте резервную копию на случай, если что-то пойдет не так.

ПРИМЕЧАНИЕ: Для успешного изменения способа запечатывания, в ходе операции должны быть доступны как старый, так и новый способы запечатывания. Например, при переходе с автоматического распечатывания на схему Шамира служба, сопровождающая автоматическое распечатывание, должна быть доступна во время такого перехода.