Руководства

Файловый менеджер для Amazon S3: подключите его к Nubbo

Как подключить bucket Amazon S3 к Nubbo: нужный ключ IAM, мастер шаг за шагом, правило CORS и что делать, если что-то пошло не так.

Nubbo подключается к Amazon S3 с помощью ключа доступа IAM. Через несколько минут ваш bucket окажется в файловом проводнике с прямыми загрузками, ссылками для доступа и галереями, и ничего не придётся делать публичным. Это руководство шаг за шагом проходит мастер Nubbo по обоим путям: автоматическому и с ключом, ограниченным одним bucket.

Что вы получаете

  • Просмотр bucket как обычного диска: папки, режимы отображения, поиск, корзина, метки и избранное.
  • Загрузка и скачивание файлов напрямую между браузером и Amazon S3. Файлы никогда не проходят через серверы Nubbo.
  • Отправка файлов и папок с паролем, сроком действия и лимитом скачиваний, получение файлов в ваш bucket и создание галерей.
  • Ваши ключи хранятся в зашифрованном виде (AES-256-GCM), а bucket можно отключить в любой момент.

Перед началом

Вам нужен аккаунт Amazon S3 и аккаунт Nubbo. Каждый подключённый bucket учитывается в лимите вашего тарифа: «Бесплатно» позволяет подключить 2, Personal 5, а в Pro ограничений нет. Некоторые регионы AWS по умолчанию отключены, и их нужно включить в аккаунте перед использованием (например, Милан, Цюрих или Кейптаун). Если вы собираетесь создать bucket в одном из них, сначала включите его. Отключать Block Public Access не нужно: Nubbo оставляет bucket приватным.

Выберите способ подключения

Мастер Nubbo предлагает два пути. Оба заканчиваются одинаково: bucket подключён и готов к загрузкам из браузера.

АвтоматическиС ограниченным ключом
КлючДоступ ко всему аккаунтуОграничен одним bucket
BucketNubbo использует один из ваших или создаёт новыйВы создаёте его заранее
CORSNubbo добавляет правило за васВы добавляете правило сами
Когда выбиратьСамый быстрый способКогда не хотите давать доступ ко всему аккаунту

Автоматическое подключение

Шаг 1: создайте ключ в Amazon S3

  1. Войдите в консоль AWS и откройте IAM. Используйте пользователя IAM, а не root-пользователя аккаунта.
  2. Перейдите в Users и нажмите Create user. Дайте ему имя, например nubbo, и нажмите Next.
  3. В разделе Set permissions выберите Attach policies directly, найдите и отметьте AmazonS3FullAccess и создайте пользователя.
  4. Откройте пользователя, перейдите на вкладку Security credentials и в разделе Access keys нажмите Create access key.
  5. В качестве сценария использования выберите Application running outside AWS (или Other, если его нет в списке) и нажмите Next и Create access key.
  6. Нажмите Download .csv file. Это единственный раз, когда AWS показывает secret access key.

Шаг 2: подключите bucket в Nubbo

  1. В Nubbo откройте раздел Buckets и нажмите Подключить bucket. Выберите Amazon S3 и нажмите Продолжить.

    Шаг «Провайдер» мастера Nubbo с выбранным Amazon S3 Шаг «Провайдер» мастера Nubbo с выбранным Amazon S3
  2. Выберите Автоматически и нажмите Продолжить.

    Шаг «Способ подключения» с вариантами «Автоматически» и «С ограниченным ключом» Шаг «Способ подключения» с вариантами «Автоматически» и «С ограниченным ключом»
  3. На шаге Ваш ключ нажмите Загрузить файл и выберите скачанный CSV или вставьте его содержимое в текстовое поле. Nubbo сам прочитает access key и secret, чтобы вам не пришлось копировать их вручную. Убедитесь, что Регион совпадает с регионом ваших bucket. Нажмите Проверить ключ. Nubbo проверит, что ключ работает и что у него есть доступ ко всему аккаунту.

    Шаг «Ваш ключ» для Amazon S3 с кратким руководством и полями ключа Шаг «Ваш ключ» для Amazon S3 с кратким руководством и полями ключа
  4. Выберите один из своих bucket и нажмите Использовать этот bucket или выберите Создать новый, введите имя (и выберите регион, если мастер его спросит) и нажмите Создать и подготовить. Nubbo добавит в bucket правило CORS, которое разрешает загрузку и скачивание только из приложения, и сохранит уже существующие правила.

    Шаг «Ваш bucket» со списком bucket и вариантом «Создать новый» Шаг «Ваш bucket» со списком bucket и вариантом «Создать новый»
  5. Просмотрите три проверки, при желании измените Имя в Nubbo и нажмите Завершить. Bucket появится в разделе Buckets, и его можно будет открыть в проводнике.

    Шаг «Готово» с проверками подключения, bucket и CORS Шаг «Готово» с проверками подключения, bucket и CORS

Если Nubbo не может добавить правило CORS с вашим ключом, мастер переведёт вас на шаг CORS. В этом случае следуйте разделу Добавьте правило CORS.

Подключение с ограниченным ключом

Шаг 1: подготовьте bucket и ключ в Amazon S3

  1. В консоли выберите регион на верхней панели, откройте S3 и в разделе General purpose buckets нажмите Create bucket. Дайте ему имя (от 3 до 63 символов: строчные буквы, цифры, точки и дефисы) и создайте его с включённым Block Public Access.
  2. В IAM создайте пользователя без прав (Users, Create user).
  3. Откройте пользователя, вкладку Permissions, Add permissions, Create inline policy. Переключитесь на редактор JSON, вставьте эту политику, заменив YOUR-BUCKET именем своего bucket, и сохраните её под любым именем.
  4. Создайте ключ в Security credentials, Create access key, как при автоматическом подключении, и скачайте CSV.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": "arn:aws:s3:::YOUR-BUCKET"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts"
      ],
      "Resource": "arn:aws:s3:::YOUR-BUCKET/*"
    }
  ]
}

Шаг 2: подключите bucket в Nubbo

  1. В разделе Buckets нажмите Подключить bucket, выберите Amazon S3, а затем С ограниченным ключом.
  2. Загрузите CSV с ключом или вставьте его содержимое и выберите регион bucket. Нажмите Проверить ключ.
  3. Введите точное имя bucket и нажмите Проверить доступ.
  4. Мастер перейдёт на шаг CORS с правилом, которое нужно добавить.

Добавьте правило CORS

Правило CORS позволяет браузеру загружать и скачивать файлы из вашего bucket на https://nubbo.app. Это то же правило, которое мастер показывает на шаге CORS.

  1. В консоли S3 откройте bucket и перейдите на вкладку Permissions.
  2. Прокрутите вниз до Cross-origin resource sharing (CORS) и нажмите Edit.
  3. Вставьте правило и нажмите Save changes.
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedOrigins": ["https://nubbo.app"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
Шаг «CORS» с правилом, которое нужно добавить в bucket Шаг «CORS» с правилом, которое нужно добавить в bucket

Когда правило сохранено, вернитесь в Nubbo и нажмите Готово, проверить. Некоторым провайдерам нужна минута, чтобы его применить. Если вашему ключу разрешено менять CORS, кнопка Попробовать настроить за меня сделает это за вас.

Если что-то пошло не так

Сообщение в NubboЧто делать
«Неверные учётные данные. Проверьте access key и secret access key.»Скопируйте оба ключа ещё раз, без пробелов в начале и в конце.
«Похоже, этот ключ ограничен одним bucket. Можно продолжить по ограниченному пути или создать ключ с полным доступом.»Нажмите «Продолжить с ограниченным ключом» или создайте ключ с доступом ко всему аккаунту и нажмите «Попробовать другой ключ».
«Bucket не найден. Проверьте имя и регион.»Проверьте точное имя bucket и то, что выбранный регион совпадает с регионом bucket.
«У вашего ключа нет прав на создание bucket.»Используйте ключ с полным доступом или создайте bucket в своей панели и нажмите «Он уже создан в моей панели».
«Это имя уже занято у этого провайдера; попробуйте другое.»Имена bucket уникальны в пределах всего провайдера: выберите другое.
«У вашего ключа нет прав на эту настройку.»Добавьте правило CORS вручную, как описано выше.
«Пока не работает. Проверьте правило и попробуйте снова; некоторым провайдерам нужна минута, чтобы его применить.»Убедитесь, что источник указан точно как https://nubbo.app без косой черты в конце, подождите минуту и проверьте снова.
«Этот bucket уже используется.»Этот bucket уже подключён в Nubbo, в вашем аккаунте или в чужом.
«Bucket находится в другом регионе. Проверьте настроенный регион.»На шаге «Ваш ключ» выберите регион, в котором находится bucket.
«Мы не нашли ключи в этом файле; вставьте их вручную.»Загрузите CSV, скачанный при создании ключа, или вставьте его содержимое как есть.

Сколько это стоит

Amazon S3 берёт плату за хранение, запросы и исходящий трафик. Мы разбираем это на примерах в статье Цены Amazon S3.

Частые вопросы

Нужно ли делать bucket S3 публичным, чтобы пользоваться Nubbo?

Нет. Nubbo оставляет bucket приватным, а Block Public Access может оставаться включённым. Загрузки и скачивания используют presigned URL с ограниченным сроком действия.

Какие права нужны ключу AWS?

Для автоматического пути нужна политика AmazonS3FullAccess. Для ограниченного ключа достаточно встроенной политики, которая даёт доступ только к вашему bucket: просмотр списка, чтение, запись и удаление объектов.

Можно ли использовать ключи root-пользователя AWS?

Это плохая идея, и AWS не рекомендует так делать. Создайте пользователя IAM только для Nubbo: потом его ключ можно будет отключить, ничего больше не затрагивая.

Почему в Nubbo нет полей для ключа AWS?

Потому что AWS выдаёт ключ в файле CSV. Nubbo читает его напрямую: вы загружаете файл или вставляете его содержимое и никогда не копируете secret вручную.

Можно ли подключить несколько bucket S3?

Да. Каждый bucket учитывается в лимите вашего тарифа: «Бесплатно» позволяет подключить 2, Personal 5, а в Pro ограничений нет. Bucket могут принадлежать разным аккаунтам AWS.

Источники

Цены и лимиты взяты с официальных страниц ниже. Провайдеры их меняют, поэтому проверьте перед тем, как принимать решение.