arculaДокументация

Хранилища

Ключи серверов

У каждого сервера в каждом хранилище — свой ключ S3, только на его папку arcula/<id сервера>/. Ключ знает только агент сервера: панель его не хранит и не видит. Взломанный сервер портит только свои бэкапы, а утечка базы панели не открывает ни одного.

Какие ключи нужны

КлючСколькоЧто им можно
Ключ панелиОдин на хранилищеСписок объектов с версиями и настройки bucket. Ни писать, ни удалять, ни читать данные
Ключ сервераПо одному на сервер в каждом хранилищеПисать, читать и удалять только в своей папке. Удалять старые версии и менять настройки защиты — нельзя

Ключ панели вводится при подключении хранилища. Ключи серверов — после того, как хранилище попало в план сервера.

Создать ключ сервера у провайдера

  1. Хранилище → вкладка «Подключение» → карточка «Ключи серверов».
  2. У сервера нажмите «Задать ключ» и раскройте «Политика сервера для провайдера». Это IAM-политика именно для этого сервера: его папка уже подставлена.
  3. У провайдера создайте ключ и примените к нему эту политику. Где это делается — в кабинете провайдера: политика ключа, пользователя или bucket.

Политика явно запрещает удалять старые версии и менять версионирование, жизненный цикл, Object Lock и политику bucket. Так взломанный сервер не снимет защиту от удаления.

Ввести ключ

Два способа — выберите один.

В ЛК. В той же форме введите access key и secret key и нажмите «Зашифровать и передать». Браузер шифрует ключ открытым ключом агента этого сервера; панель передаёт агенту только шифротекст. Агент расшифрует ключ, проверит его в своей папке и сообщит итог — строка сервера в «Ключах серверов» обновится.

На самом сервере. Тогда ключ не проходит ни через браузер, ни через панель:

sudo arcula storage key "Основной"

Команда спросит access key и secret key. В скриптах — --access-key-id и --secret-file (секрет — первой строкой файла).

Если ключ не работает в папке сервера, он не сохраняется: прежний остаётся.

Что проверяет агент

Агент проверяет свой ключ при вводе и раз в 6 часов:

  • в своей папке — список, запись, чтение и удаление должны пройти;
  • вне своей папки — запись, список и удаление должны получить отказ. Не получили — «видит чужие папки»;
  • в своей папке — удаление старой версии и запись настроек версий и жизненного цикла должны получить отказ. Не получили — «может удалять старые версии».

Настройки Object Lock агент не пробует: ошибка там необратима. Их запрещает политика.

Провайдер не умеет ключи на папку

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

У некоторых провайдеров ключ на префикс задаётся только политикой bucket, например у Timeweb: примените политику сервера к bucket с условием на этот ключ.

Старый агент

Агенту нужен свой ключ шифрования — он есть с версии 0.4. У старого агента в «Ключах серверов» — «Агент старый»: обновите его или введите ключ на сервере командой выше.

Та же статья — в панели, в разделе «Справка».