Хранилища
Ключи серверов
У каждого сервера в каждом хранилище — свой ключ S3, только на его папку arcula/<id сервера>/. Ключ знает только агент сервера: панель его не хранит и не видит. Взломанный сервер портит только свои бэкапы, а утечка базы панели не открывает ни одного.
Какие ключи нужны
| Ключ | Сколько | Что им можно |
|---|---|---|
| Ключ панели | Один на хранилище | Список объектов с версиями и настройки bucket. Ни писать, ни удалять, ни читать данные |
| Ключ сервера | По одному на сервер в каждом хранилище | Писать, читать и удалять только в своей папке. Удалять старые версии и менять настройки защиты — нельзя |
Ключ панели вводится при подключении хранилища. Ключи серверов — после того, как хранилище попало в план сервера.
Создать ключ сервера у провайдера
- Хранилище → вкладка «Подключение» → карточка «Ключи серверов».
- У сервера нажмите «Задать ключ» и раскройте «Политика сервера для провайдера». Это IAM-политика именно для этого сервера: его папка уже подставлена.
- У провайдера создайте ключ и примените к нему эту политику. Где это делается — в кабинете провайдера: политика ключа, пользователя или 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. У старого агента в «Ключах серверов» — «Агент старый»: обновите его или введите ключ на сервере командой выше.
Та же статья — в панели, в разделе «Справка».