Отдельные ключи доступа S3 для резервных копий и загрузки?

Я хочу использовать отдельные бакеты Backblaze B2 для резервных копий и загрузок. Я не хочу, чтобы у Discourse был доступ к каким-либо бакетам, кроме двух, которые он использует.

Backblaze позволяет создавать ключи приложений для доступа либо к одному бакету, либо ко всем бакетам.

Но, насколько я понимаю, Discourse требует, чтобы для загрузок и резервных копий использовались одни и те же учётные данные S3, поэтому сделать это невозможно.

Не упускаю ли я что-то?

Привет :wave: добро пожаловать :slight_smile:

Возможно, эта тема поможет вам:

К сожалению, нет. Для Backblaze приведённый пример просто помещает резервные копии в подкаталог /backups ведра для загрузки (которое доступно для публичного чтения). Я уверен, что это можно защитить, но такой подход, похоже, не очень хорош.

Итак, мне удалось создать пользователя IAM с двумя ролями в AWS, которые обеспечивают раздельные права доступа для моих бакетов резервного копирования и активов. Каждая роль ограничена соответствующим бакетом и имеет конкретные разрешения. Я полагаю, что для резервного копирования разрешена только операция записи (put), без чтения или перечисления. В то же время бакет активов позволяет выполнять все операции.

Однако звучит так, будто проблема связана со спецификацией роли Backblaze — верно ли это? Похоже, что вы можете прикрепить разрешение только к одному бакету или ко всем сразу, а в Discourse используется общий набор ключей доступа для обоих бакетов?

Да. Управление разрешениями ключей приложений в Backblaze, похоже, (кардинально) проще, чем в AWS.

Ключ разрешения Backblaze, по-видимому, предоставляет доступ либо к одному бакету, либо ко всем бакетам в аккаунте владельца.

Поэтому интерфейс S3 для Discourse отлично подходит для бакетов AWS S3, но не совсем удобен для бакетов Backblaze B2.

Похоже, вы можете использовать AWS или создать другую учётную запись Backblaze.

У меня такая же проблема с Backblaze.
В этом FAQ указывается, что можно использовать одно и то же хранилище, но с разными путями, однако наша текущая версия Discourse (3.4.0.beta3-dev) выдаёт ошибку при попытке сохранить эту настройку.