Перейти к основному содержимому

Настроить S3 после обновления

Последнее изменение:

29.09.2023 было выпущено крупное обновление S3. Если у вас были созданы бакеты до обновления S3, перенесите их в проект, чтобы продолжить работу с S3 в панели управления.

Наиболее значимые изменения в работе хранилища:

  • новая авторизация во все API для работы с хранилищем и новые эндпоинты для доступа;
  • новый публичный домен бакета (домен вида <uuid>.selstorage.ru). Этот домен заменит персональный домен аккаунта (домена вида *****.selcdn.ru), который будет отключен позднее. Об отключении мы сообщим заранее;
  • переезд S3 в проекты;
  • новая модель управления доступом: полная поддержка ролевой модели и появление политик доступа к бакетам.

Ранее созданные пользователи, вызовы методов API и т. п. продолжат работать какое-то время — об отключении мы сообщим заранее. Мы рекомендуем изменить настройки хранилища уже сейчас и использовать обновленные настройки для новых бакетов.

Перенести бакеты в проект

Без переноса в проект вы не сможете работать с хранилищем в панели управления.

Перенести хранилище можно один раз и целиком (в один проект). Распределить старые бакеты по разным проектам нельзя. Создавать новые бакеты можно будет в разных проектах.

Если у вас уже есть проект, вы можете перенести бакеты в него или создать новый.

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3. При первом после 29.09.2023 переходе в раздел откроется страница для переноса бакетов.
  2. Укажите Использовать существующий проект.
  3. Выберите проект, в который хотите перенести бакеты, и нажмите Перенести.

Настроить S3

  1. Настройте доступ к хранилищу для пользователей.
  2. Настройте политику доступа к бакету.
  3. Если вы используете API или FTP, обновите ключи доступа и URL.
  4. Если вы используете CDN, измените CDN-ресурс.
  5. Проверьте, что вы заменили домены на новые.
  6. Удалите старых пользователей хранилища.

1. Настроить доступ к хранилищу для пользователей

S3 теперь поддерживает типы пользователей и роли:

  • доступ к S3 через панель управления будет у пользователей панели управления, чья роль разрешает доступ ко всему аккаунту или проекту, в который были перенесены бакеты;
  • доступ к API осуществляется через сервисных пользователей вместо пользователей хранилища (создавались в разделе S3 → Пользователи). Старые пользователи продолжат работать и будут отключены позднее. Создавать новых пользователей такого вида больше нельзя.

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

У пользователей с ролью Пользователь S3 доступ определяется исключительно политикой доступа — если она не настроена, пользователь не будет иметь доступ в бакет. Подробнее о работе разных ролей в хранилище в инструкции Управлять доступом в S3.

2. Настроить политику доступа к бакету

Создать политику доступа к бакету можно через панель управления. Для создания политики доступа через API воспользуйтесь документацией AWS S3.

При настройке политики учитывайте доступы в рамках ролевой модели, подробнее в инструкции Управлять доступом в S3.

Подробнее о работе политик доступа в разделе Политика доступа.

3. Обновить ключи доступа и URL

Подробнее об авторизации в документации S3 API.

  1. Выдайте S3-ключ сервисному пользователю. Выдать ключ можно также через IAM API.

  2. В запросах замените URL и используйте ключ для аутентификации по новой схеме:

    • AWS_ACCESS_KEY_ID — значение поля Access key из S3-ключа;
    • AWS_SECRET_KEY — значение поля Secret key из S3-ключа;
    • URL — s3.<pool>.storage.selcloud.ru, где <pool> — пул, в котором находится S3 (например, ru-1).

4. Изменить CDN-ресурс

Если вы используете S3 в качестве источника контента CDN, измените CDN-ресурс. Подробнее о подключении хранилища к CDN в инструкции Подключить CDN к S3.

  1. В панели управления в верхнем меню нажмите Продукты и выберите CDN.
  2. Перейдите в раздел CDN-ресурсы.
  3. Откройте страницу CDN-ресурса → вкладка Общий.
  4. Нажмите Редактировать источник.
  5. Замените домен на публичный домен бакета вида <uuid>.selstorage.ru.
  6. В поле Переопределение заголовка Host укажите публичный домен бакета.

5. Проверить домены

Убедитесь, что вы везде используете новые домены. Старые домены продолжат работать какое-то время и будут отключены позднее. Об отключении мы сообщим в заранее.

Подробнее о доменах в инструкции Домены в S3.

Для чего используетсяСтарый доменНовый домен
Публичный доступ*****.selcdn.ru<uuid>.selstorage.ru
Swift APIapi.selcdn.ruswift.<pool>.storage.selcloud.ru
S3 API
  • s3.storage.selcloud.ru/<bucket_name> (Path-Style)
  • <bucket_name>.s3.storage.selcloud.ru (Virtual Hosted)
  • s3.<pool>.storage.selcloud.ru/<bucket_name> (Path-Style)
  • <bucket_name>.s3.<pool>.storage.selcloud.ru (Virtual Hosted)
FTPftp.selcdn.ruftp.<pool>.storage.selcloud.ru
Домен для DNS-записей*****.selcdn.ruaccess.<pool>.storage.selcloud.ru

6. Удалить старых пользователей хранилища

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Пользователи.
  3. В карточке пользователя нажмите Удалить.