AWS представила практическое руководство по интеграции Amazon QuickSight в React-приложения с аутентификацией через Amazon Cognito. Материал описывает готовую архитектуру, которая позволяет встраивать не целые дашборды, а отдельные визуализации — графики, диаграммы и метрики. Такой подход дает разработчикам больше контроля над интерфейсом и упрощает переиспользование существующих элементов аналитики.
Решение построено на четырех уровнях. Фронтенд — React-приложение, раздаваемое через Amazon CloudFront из S3-бакета, с защитой AWS WAF на границе. Аутентификацию обеспечивает Cognito User Pools, выдающее JWT-токены. Бэкенд состоит из API Gateway с Cognito Authorizer и Lambda-функции, которая вызывает GenerateEmbedUrlForRegisteredUser для генерации URL с ограниченным сроком действия. Сам QuickSight рендерит визуализацию через Embedding SDK в браузере.
Ключевая особенность — автоматическая синхронизация пользователей. Когда пользователь входит через Cognito, Lambda получает его email из JWT и проверяет, существует ли он в QuickSight. Если нет, функция вызывает register_user с ролью READER — минимальными правами для просмотра. Это устраняет ручное администрирование при первом входе.
Lambda автоматически синхронизирует пользователей Cognito с QuickSight, создавая их с ролью READER при первом обращении.

Доступ к конкретным дашбордам настраивается двумя способами: администратор может вручную предоставить доступ через консоль QuickSight, либо Lambda автоматически вызывает update_dashboard_permissions после регистрации. Второй вариант полностью автоматизирует процесс, и пользователь видит визуализацию сразу после входа.
Важный нюанс: домен CloudFront должен быть добавлен в список разрешенных для встраивания в настройках QuickSight. Без этого браузер заблокирует iframe из-за CORS-ограничений, и визуализация не отобразится.
Решение разворачивается через единый CloudFormation-стек, что ускоряет внедрение. Lambda-функция генерирует URL быстро, а срок их действия достаточно велик, чтобы минимизировать повторную аутентификацию в течение сессии. Это делает подход пригодным для production-сценариев, где важна производительность и безопасность.
Для команд, которые уже используют QuickSight и хотят встроить аналитику в свои продукты, это руководство закрывает пробел в документации: большинство туториалов опускают детали identity-слоя. Предложенная схема подходит для сценариев, где требуется разграничение доступа на уровне отдельных визуализаций, например, в B2B-порталах или внутренних панелях управления.



