Общая информация о проекте
Описание приложения
Приложение предназначено для автоматизированного резервного копирования данных сервисов Яндекса в облачное хранилище S3-совместимого типа. Поддерживается мультитенантная архитектура: в рамках одной учётной записи пользователь может быть связан с несколькими организациями, при этом данные, настройки и права доступа каждой организации полностью изолированы друг от друга.
Данные из сервисов Яндекса извлекаются через официальные API, после чего сохраняются в бакеты S3, указанные администратором организации. Поддерживается подключение нескольких S3-хранилищ одновременно с настройкой приоритета использования каждого бакета.
Приложение предоставляет дашборд для мониторинга статуса задач, управления подписками, настройки резервного копирования, а также ручного выполнения копирования и миграции данных.
Функционал приложения
- Извлечение данных через API Яндекса (Диск, Почта, Календарь, Списки задач, Контакты, Трекер, Общие диски, Формы, Вики).
- Мультитенантность — управление несколькими организациями из одной учётной записи с изоляцией данных и настроек каждого тенанта. Переключаться между организациями может пользователь, который сам их подключил.
- Гибкая настройка резервного копирования — выбор сервисов, расписание (в т. ч. CRON-выражения), групповые политики хранения.
- Множественные S3-подключения — несколько хранилищ одновременно, приоритеты использования бакетов, включение/отключение отдельных бакетов, перенос уже созданных резервных копий между хранилищами.
- Миграция данных — между сотрудниками организации, из ранее скачанного локального бэкапа, импорт почты из файла .pst, а при наличии опции тарифа «Мультитенантность» — также в другую организацию, к которой у пользователя есть доступ.
- Дашборд для управления — мониторинг задач в реальном времени, история операций, статистика используемого места в виде таблиц и графиков.
- Восстановление и доступ к данным — полное или выборочное восстановление и скачивание данных из резервной копии.
- Администрирование для организаций — гибкая scope-модель разграничения прав доступа сотрудников.
- Поиск по резервным копиям — глобальный поиск писем, файлов, событий, задач и контактов в сохранённых копиях с возможностью восстановить найденное.
- Управление почтой в Яндекс 360 — поиск писем и удаление дубликатов в текущих почтовых ящиках сотрудников в режиме реального времени, без обращения к резервным копиям.
- Внешний API — программный доступ к функциям приложения с использованием паролей приложений (App Passwords).
- Безопасность данных — шифрование данных при передаче и хранении, авторизация через защищённые cookie-сессии.
Безопасность и защита данных
Шифрование данных при передаче
Все взаимодействия между приложением, сервисами Яндекса и S3 осуществляются через защищённый протокол HTTPS с использованием TLS. Это исключает возможность перехвата данных третьими лицами во время передачи.
Отсутствие хранения данных внутри приложения
Приложение не сохраняет содержимое данных сотрудников или организаций на своих серверах. Оно выступает посредником, извлекая данные из сервисов Яндекса через API и передавая их напрямую в бакеты S3, указанные администратором.
Симметричное и асимметричное шифрование
- AES-GCM: для симметричного шифрования данных используется алгоритм AES с длиной ключа 256 бит и режимом GCM, обеспечивающим дополнительную проверку целостности данных.
- RSA: для асимметричного шифрования применяется алгоритм RSA с длиной ключа 4096 бит — для безопасной передачи ключей шифрования и аутентификации.
Ключи шифрования генерируются индивидуально для каждой организации (тенанта) и доступны только администратору.
Авторизация и разграничение доступа
Сессия пользователя защищена с использованием защищённых (httpOnly) cookie-файлов, что исключает доступ к токену авторизации из клиентского кода страницы. Доступ сотрудников к функциям организации разграничивается по модели уровней доступа (scope), а доступ внешних систем к API — по паролям приложений, которые можно в любой момент отозвать.