Подключение внешнего хранилища в Yandex Cloud


В КБ можно использовать Yandex Object Storage для хранения файлов во внешнем хранилище. Object Storage позволяет хранить файлы в специальных контейнерах - бакетах.

Для подключения Yandex Cloud к КБ необходимо создать сервисный аккаунт и статический ключ доступа. После этого ключи указываются в настройках модуля «Внешние хранилища файлов».

Ниже рассмотрим настройку пошагово.

Шаг 1: Вход в Yandex Cloud

Перейдите в консоль управления Yandex Cloud.

Если у вас еще нет аккаунта, сначала зарегистрируйтесь.

Для использования Yandex Cloud необходимо подключить платежный аккаунт и иметь положительный баланс.

Вы можете пополнить баланс самостоятельно или привязать банковскую карту. При доступности соответствующего предложения после привязки карты может быть предоставлен грант на 4000 рублей, который можно использовать для оплаты ресурсов Yandex Cloud.
Актуальные условия оплаты и доступные предложения можно посмотреть в документации Yandex Cloud.

После входа в консоль у вас уже будет создано облако и каталог. Их можно использовать для дальнейшей настройки.

yacl1

При необходимости вы можете создать новые облако или каталог. Для этого в верхней панели нажмите на стрелку вниз рядом с текущим облаком и выберите «Создать», после чего выберите нужный ресурс.

yacl2

Шаг 2: Создание сервисного аккаунта

Сервисный аккаунт - это отдельная учетная запись, от имени которой КБ будет подключаться к Yandex Cloud.

В верхней панели отображаются ваше облако и каталог.
Нажмите на три точки рядом с каталогом и выберите «Создать сервисный аккаунт».

yacl3

Укажите имя сервисного аккаунта, например:
cb-storage

yacl4

Описание можно добавить при необходимости.

В поле «Роли в каталоге» выберите роль: admin

yacl5

После этого нажмите «Создать».

Важно: роль admin предоставляет широкие права на управление ресурсами каталога. В данном варианте подключения она используется для того, чтобы обеспечить корректную работу всех операций КБ с внешним хранилищем.

Шаг 3: Создание статического ключа доступа

После создания сервисного аккаунта необходимо создать ключ, с помощью которого КБ будет подключаться к Yandex Cloud.

Перейдите к списку сервисных аккаунтов. Он будет отображаться в разделе "Ресурсы".

yacl6

Откройте созданный сервисный аккаунт.

yacl7

В его настройках нажмите «Создать новый ключ» и выберите «Создать статический ключ доступа».

yacl8

При необходимости укажите описание ключа, например:

Для подключения к КБ

Нажмите «Создать».

yacl9

После создания появится окно с двумя значениями:

  • Идентификатор ключа;
  • Секретный ключ.

yacl101

Сохраните оба значения в безопасном месте.

Важно! Секретный ключ отображается только один раз. После закрытия окна посмотреть его повторно будет невозможно.

Эти данные понадобятся при настройке внешнего хранилища в КБ.

Шаг 4: Создание бакета

Бакет - это контейнер в Object Storage, в котором будут храниться ваши файлы.

На этом этапе есть два варианта:

  1. Создать бакет самостоятельно в Yandex Cloud.
  2. Не создавать бакет заранее - в этом случае его автоматически создаст модуль «Внешние хранилища файлов» при настройке.

Вариант 1. Создать бакет в Yandex Cloud

Если вы хотите создать бакет самостоятельно, в боковой панели нажмите «Все сервисы», найдите Object Storage и перейдите в него.

yacl11

Нажмите «Создать бакет».

yacl12

Укажите уникальное имя бакета.
Настройте необходимые параметры. Обратите внимание на параметр «Макс. размер» — он определяет максимальный объем хранилища.

Важно! Если общий объем файлов, которые вы планируете перенести во внешнее хранилище, превышает 50 ГБ, увеличьте значение «Макс. размер» до необходимого объема или выберите вариант «Без ограничений».

Рекомендуем заранее оценить объем файлов в КБ и установить достаточный лимит, чтобы во время миграции не возникло ограничений по объему хранилища.

Нажмите «Создать».

yacl13.2

Бакет создан. Его можно будет указать в настройках внешнего хранилища в КБ.

Вариант 2. Создать бакет автоматически из КБ

Создавать бакет заранее необязательно.

При настройке внешнего хранилища в КБ можно выбрать создание нового бакета и указать его название. В этом случае бакет будет создан автоматически модулем.

В дальнейшей инструкции рассмотрим именно этот вариант.

Шаг 5: Настройка внешнего хранилища в КБ

Важно! Перед включением внешнего хранилища рекомендуется сделать полный бэкап. Это позволит восстановить данные в случае возникновения непредвиденной ситуации во время настройки или миграции файлов.

  1. Перейдите в КБ и включите модуль «Внешние хранилища файлов».
  2. В настройках модуля укажите данные, которые были получены при создании статического ключа в Yandex Cloud.
  3. Далее выберите тип хранения.
  4. После этого укажите, какие таблицы необходимо загружать во внешнее хранилище (определенные таблицы или все таблицы).

yacl141

Настройка корзины

В настройке «Корзина» можно выбрать, использовать существующий бакет или создать новый.

Если вы заранее создали бакет в Yandex Cloud, выберите использование существующего бакета и укажите его название.

В нашем случае бакет заранее не создавался, поэтому выбираем «Создавать новый».

yacl15

Ниже укажите название нового бакета.
После этого сохраните настройки.

Модуль начнет процесс миграции файлов во внешнее хранилище.

Важно! Пока миграция не завершена, не рекомендуется добавлять новые файлы в КБ. Дождитесь окончания текущей миграции, чтобы все файлы были корректно перенесены во внешнее хранилище.

Не рекомендуется оставлять миграцию незавершенной на длительное время. После запуска дождитесь ее окончания и перейдите к проверке результата.

Шаг 6. Проверка созданного бакета

Чтобы проверить результат, перейдите обратно в Yandex Cloud.

Откройте Object Storage.

yacl16

В списке бакетов вы увидите новый бакет, который был автоматически создан модулем КБ.

yacl17

Теперь файлы будут переноситься из КБ в этот бакет.

Дождитесь завершения миграции.

После завершения переноса проверьте, что файлы действительно появились в созданном бакете. После проверки файлов в бакете можно завершить миграцию.

Настройка внешнего хранилища завершена.

Альтернативный способ подключения с ролью storage.editor

Если вы не хотите предоставлять сервисному аккаунту широкую роль admin, можно использовать альтернативный способ подключения с ролью storage.editor.

В этом случае необходимо самостоятельно создать бакет и настроить для него ACL.

Роль storage.editor позволяет работать с бакетами и объектами, но не позволяет управлять настройками ACL. Поэтому для корректной работы необходимо отдельно предоставить сервисному аккаунту полный доступ к конкретному бакету через ACL.

Шаг 1. Создание сервисного аккаунта

Создайте сервисный аккаунт так же, как описано выше.

При создании вместо admin выберите роль:
storage.editor

yacl18

После этого нажмите «Создать».

Шаг 2. Создание статического ключа

Откройте настройки созданного сервисного аккаунта.

Нажмите «Создать новый ключ» → «Создать статический ключ доступа».

При необходимости укажите описание и нажмите «Создать».

Скопируйте и сохраните:

  • Идентификатор ключа;
  • Секретный ключ.

Важно! Секретный ключ отображается только один раз. После закрытия окна получить его повторно невозможно.

Шаг 3. Создание бакета

  1. Перейдите в «Все сервисы» → «Object Storage».
  2. Нажмите «Создать бакет».
  3. Укажите имя бакета и остальные необходимые параметры.
  4. Нажмите «Создать».

Шаг 4. Настройка ACL бакета

После создания бакета необходимо предоставить созданному сервисному аккаунту полный доступ к нему.

В списке бакетов найдите созданный бакет.

Нажмите на три точки рядом с его названием и выберите «Настроить ACL».

yacl19

В открывшемся окне редактирования ACL найдите поле «Имя или e-mail пользователя» и выберите созданный ранее сервисный аккаунт.

В соседнем поле с уровнем доступа вместо READ выберите:
FULL_CONTROL

Нажмите «Добавить», после чего нажмите «Сохранить».

yacl20

FULL_CONTROL предоставляет сервисному аккаунту полный доступ к бакету и объектам внутри него.

Важно! Сервисный аккаунт и бакет должны находиться в одном каталоге, чтобы выбрать сервисный аккаунт через консоль при настройке ACL.

Шаг 5. Подключение к КБ

После настройки ACL можно перейти в КБ.

Откройте настройки «Внешних хранилищ файлов» и укажите:

  • идентификатор ключа;
  • секретный ключ;
  • тип хранения;
  • необходимые таблицы.

В настройке «Корзина» можно выбрать созданный в Yandex Cloud бакет и указать его название.

При этом также можно использовать создание нового бакета из модуля, если это предусмотрено выбранным сценарием работы.

После сохранения настроек можно пользоваться внешним хранилищем и выполнять миграцию файлов.

Какой способ выбрать

Основной вариант подключения предполагает назначение сервисному аккаунту роли admin и не требует отдельной настройки ACL для бакета.

Если вы не хотите предоставлять сервисному аккаунту роль admin, используйте альтернативный вариант с storage.editor и дополнительной настройкой ACL конкретного бакета.

Для альтернативного варианта важно выполнить настройку ACL до подключения хранилища в КБ.