Release notes

ЗАКРОМА.Хранение v 2.10.0

🚀 Новый функционал

Шаблоны бакета

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

Подробнее смотрите Шаблоны бакета.

Поддержка STS-токенов

Добавлена поддержка выдачи временных S3-credentials по протоколу AWS STS. Методы AssumeRole и GetCallerIdentity доступны на S3-интерфейсе рабочей области; временные ключи (AccessKeyId с префиксом ASIA, SecretAccessKey, SessionToken) наследуют права родительского пользователя и могут быть дополнительно сужены session policy.

Подробнее смотрите STS-токены.

Ограничение максимального срока жизни ключей доступа

Администратор может задать общесистемное ограничение на максимальный срок жизни ключей доступа пользователей — оно распространяется как на новые, так и на уже существующие ключи. Управление доступно на вкладках «Настройки ключей» и «Список ключей» раздела «Пользователи» при наличии системной пермиссии key-manage (полный доступ) или key-view (только просмотр).

Подробнее смотрите Управление ключами доступа.

Поддержка AWS S3 ACL

Реализована поддержка ACL (Access Control List) — классического, хотя и устаревшего механизма доступа S3, добавленного для совместимости с legacy-клиентами. Управление ACL бакетов и объектов, а также настройками владения бакетом, доступно через S3 API; в пользовательском интерфейсе настройки ACL не отображаются.

Подробнее смотрите Поддержка ACL.

Мониторинг фоновых процессов

В разделе «Монитор» реализован централизованный механизм отслеживания фоновых процессов системы (сканирование бакета, миграция объектов и мерг-групп, ресурсоёмкое применение политик и др.): список процессов с указанием статуса (активен/завершён) и отметкой долгоживущих процессов, а также детализация по каждому процессу со статистикой и историческим графиком в разрезе компонентов.

Подробнее смотрите Мониторинг.

Распределённая трассировка запросов (OpenTelemetry)

Внедрена трассировка запросов на основе OpenTelemetry взамен внутреннего механизма передачи TraceID. Поддерживается экспорт трасс в файл (с ротацией) или в Jaeger, а также настройка доли сохраняемых трасс (сэмплирование).

Подробнее смотрите Распределённая трассировка запросов.


✨ Улучшения

Приведение методов Bucket Policy к AWS S3

Реализована поддержка стандартных методов AWS S3 Bucket Policy. Правила доступа теперь можно устанавливать и получать через S3 API-методы PutBucketPolicy, GetBucketPolicy, DeleteBucketPolicy в виде JSON-документа (Effect, Principal, Action, Resource) — в дополнение к уже существующему интерфейсу Политик доступа. Оба способа управляют одним и тем же набором правил рабочей области/бакета. При обновлении системы существующие правила политик доступа автоматически преобразуются в формат S3 Bucket Policy.

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

Расширен состав отчёта для поддержки

В отчёт для технической поддержки добавлены: количество миграций Morpheus с ошибками (вместо общего количества миграций, с указанием ID при их наличии), сводка по фоновым процессам (завершённые/активные/долгоживущие, с ID долгоживущих), единая версия/ветка/hash-commit по всем сервисам, включая Gateway, а также данные Gateway — режим мультикластера, лицензия (секретные поля маскируются) и серверное время всех компонентов для выявления рассинхронизации. Отчёт формируется, даже если отдельные компоненты недоступны — такие компоненты попадают в отдельный блок с ошибками.

Подробнее смотрите Шаблон обращения в поддержку.

Листинг хранилищ без полного доступа к управлению

Добавлена пермиссия storage-read, дающая доступ только на просмотр списка хранилищ с параметрами конфигурации (без секретов), без права управления хранилищами. Пермиссия не входит ни в одну предустановленную роль — её нужно добавить в роль вручную.

Подробнее смотрите Роли.


🐞 Исправления

  • Исправлена ошибка зеркалирования: при загрузке файла в бакет с настроенной репликацией файл не всегда появлялся на хранилище-зеркале.
  • В zcli добавлена команда восстановления бакета из корзины: bucket restore (алиас b rst).
  • Исправлен код ошибки при повторном создании бакета его же владельцем: вместо BucketAlreadyExists теперь возвращается корректный BucketAlreadyOwnedByYou.
  • Исправлены ошибки S3 Select: обращение к несуществующему столбцу CSV корректно возвращает код 400 вместо 200 с ошибкой в теле ответа; исправлена ошибка 500 при запросе к JSON-документу; добавлена поддержка выражения CASE; исправлена фильтрация по дате — сравнение > («больше») больше не включает граничное значение.
  • Исправлена ошибка 500 InternalError при создании проксированного бакета (бесшовная миграция) на несуществующий бакет хранилища-источника — теперь возвращается 404.
  • В аудит-логе для операции GetJWT теперь указывается пользователь, получивший токен (ранее поле оставалось пустым).
  • Исправлено ошибочное удаление данных при удалении бакета из корзины со снятым чекбоксом «Удалить данные»: для групп хранения на хранилищах ZDS 2.0 этот чекбокс теперь всегда включён и заблокирован для изменения; для остальных типов хранилищ поведение не изменилось.
  • В таблице бакетов колонка «Занято» теперь показывает только количество загруженных объектов, не учитывая незавершённые загрузки.
  • Защита объектов с ObjectLock от преждевременного удаления. Политики жизненного цикла с действием «Удаление» больше не удаляют объект, у которого включён ObjectLock (установлен признак LegalHold и/или задан RetentionMode). По той же причине запрещено перемещать в корзину бакет, содержащий хотя бы один такой объект.

Смотрите также
Архитектура решения