Коды ошибок секретов при хранении (mpbx-secrets)
Возвращает хранилище ключей, которое шифрует сохранённые секреты сторонних сервисов, и команда
mpbx init --rotate master-key (W1-PBX-09). Сообщения никогда не содержат секрет, ключ или шифротекст;
в них указываются не более чем идентификаторы ключей данных и мастер-ключей (отпечатки
MPBX_MASTER_KEY_ID). Руководство: секреты при хранении.
| Код | Вид | Значение | Что делать |
|---|---|---|---|
MPBX-SECRETS-WRONG-MASTER-KEY | config | Мастер-ключ, переданный процессу (или хранящийся в приёмнике во время ротации), не является ключом, которым зашифрованы секреты этой базы данных. Проверяется при запуске в Keyring::open, поэтому пересозданный ключ не может сделать существующие секреты недоступными. | Восстановите исходные MPBX_MASTER_KEY и MPBX_MASTER_KEY_ID из резервной копии секретов или ключа восстановления. Никогда не заменяйте ключ новым вручную; выполняйте ротацию командой mpbx init --rotate master-key. |
MPBX-SECRETS-MASTER-KEY-ROTATED | config | После завершения ротации процесс всё ещё работает с прежним мастер-ключом и требует ключ данных, которого у него нет в кэше; либо ключ данных передан на хранение, обёрнутый ключом, который не является текущим. | Перезапустите процесс с текущими секретами установки. |
MPBX-SECRETS-ROTATION-PENDING | conflict | Ротация мастер-ключа находится между двумя шагами работы с базой данных: сохранение первого секрета компании (нового ключа данных) отклоняется до её завершения. Также возвращается, если ротация запущена, когда другая ротация ещё не завершена. Можно повторить. | Дождитесь завершения ротации или запустите mpbx init --rotate master-key снова с теми же приёмниками, чтобы завершить её. |
MPBX-SECRETS-KEYRING-UNINITIALISED | config | Ключ данных записан до того, как хранилище ключей зафиксировало мастер-ключ (secret_master_key пуст), либо ротация завершена в базе, где она не начиналась. | Откройте хранилище ключей (Keyring::open) при запуске, до сохранения секретов. |
MPBX-SECRETS-DECRYPT-FAILED | internal | Аутентифицированная расшифровка не удалась: значение перенесено в другую строку, колонку или компанию, изменено, либо ключ данных не открывается мастер-ключом. Ничего не возвращается. | Считайте это подменой или повреждением данных: восстановите строку из резервной копии. Если не расшифровывается ни один секрет, неверен мастер-ключ (см. выше). |
MPBX-SECRETS-KEY-NOT-FOUND | internal | Шифротекст ссылается на ключ данных, которого нет в запрошенной области: секрет другой компании предъявлен для этой, либо секрет всей установки предъявлен для компании (или наоборот). | Проверьте компанию строки и то, является ли секрет общим для установки (Scope::System); восстановите из резервной копии, если строка ключа данных была удалена. |
MPBX-SECRETS-SCOPE-MISMATCH | permission_denied | Ключ данных существует в запрошенной области, но принадлежит другому семейству ключей (назначению), чем то, которое открывает область. Например, ключ media предъявлен как секрет конфигурации. Отклоняется до расшифровки. | Ошибка в вызывающем коде: используйте область и назначение, с которыми был зашифрован секрет. |
MPBX-SECRETS-CIPHERTEXT-INVALID | internal | Сохранённое значение обрезано, имеет неизвестную версию формата (включая 0x01, формат W1-PBX-09 без привязки к владельцу и назначению) либо обёрнутый ключ данных имеет неверную длину. | Восстановите строку из резервной копии. |
MPBX-SECRETS-CONTEXT-INVALID | invalid_argument | Имя поля не имеет вида <table>.<column> в нижнем регистре (ошибка программирования). | Используйте имя из mpbx_secrets::context::fields. |
MPBX-SECRETS-SCHEMA-OUTDATED | config | mpbx init --rotate master-key нашёл непримённые миграции базы данных. | Запустите этот релиз один раз (он применит миграции), затем выполните ротацию. |
MPBX-SECRETS-INVALID | config | MPBX_MASTER_KEY не является base64url от 32 байт или не соответствует MPBX_MASTER_KEY_ID (тот же код, что и в mpbx init). Также возвращается, если ротация повторно использовала бы текущий ключ. | Восстановите исходную пару из резервной копии. |
MPBX-SECRETS-RNG | internal | Генератор случайных чисел операционной системы не сработал (тот же код, что и в mpbx init). | Проверьте хост и повторите попытку. |
Коды, общие с mpbx init, которые также возвращает --rotate master-key: MPBX-SECRETS-MISSING
(приёмник не существует или в нём нет мастер-ключа), MPBX-SECRETS-CONFLICT (в приёмнике неожиданное
значение, приёмники расходятся, при обновлении в Kubernetes вернулся 409 или существует файл
--recovery-key-file), MPBX-SECRETS-SINK (ошибка ввода-вывода или API; для Kubernetes 403
указывает на право update, необходимое для ротации) и MPBX-RECOVERY-NOT-CONFIRMED. См.
ошибки установщика.