Amazon QuickSight — это полностью управляемый облачный сервис бизнес-аналитики (BI), который позволяет легко подключаться к вашим данным, создавать интерактивные информационные панели и делиться ими с десятками тысяч пользователей либо внутри самого QuickSight, либо встроенного в программное обеспечение в виде сервисные (SaaS) приложения.
В QuickSight Enterprise Edition недавно добавлена безопасность на уровне строк (RLS) с использованием тегов — новая функция, которая позволяет разработчикам использовать одну панель мониторинга для десятков тысяч пользователей, гарантируя при этом, что каждый пользователь может видеть и иметь доступ только к определенным данным. Это означает, что когда независимый поставщик программного обеспечения (ISV) добавляет в свое приложение встроенную панель мониторинга QuickSight, ему не нужно предоставлять своих конечных пользователей в QuickSight, и он может просто настроить теги для фильтрации данных в зависимости от того, кем является панель мониторинга. обслуживаются. Например, если независимый поставщик программного обеспечения хотел настроить панель мониторинга, которая должна была быть доступна 20,000 100 пользователей из 20,000 клиентов приложения, при этом все пользователи внутри клиента имели бы доступ к идентичным данным, эта новая функция позволит вам использовать единую панель мониторинга для всеми пользователями без необходимости настраивать или управлять XNUMX XNUMX пользователей в QuickSight.
RLS, усиленный с помощью тегов, гарантирует, что каждый конечный пользователь видит только те данные, которые ему важны, а QuickSight автоматически масштабируется в соответствии с параллельным доступом пользователей, чтобы гарантировать, что каждый конечный пользователь видит стабильно высокую производительность. В этой статье мы рассмотрим, как это можно реализовать.
Обзор решения
Для встраивания дашбордов без предоставления пользователей мы используем API СоздатьEmbedURLForAnonymousUser, который работает с QuickSight стоимость сеансовой мощности. С помощью этого API встроенный сервер (логика в приложении SaaS) определяет и управляет удостоверением пользователя, которому отображается панель мониторинга (в отличие от предоставления и управления этим удостоверением в QuickSight).
На следующей схеме показан пример рабочего процесса встроенных панелей мониторинга, который защищает данные в зависимости от того, кто обращается к приложению, с помощью RLS с тегами.
В этом случае у независимого поставщика программного обеспечения есть приложение SaaS, к которому имеют доступ два конечных пользователя. Один — менеджер, другой — руководитель участка. Оба пользователя получают доступ к одному и тому же приложению и одной и той же информационной панели QuickSight, встроенной в приложение, и они не подготовлены в QuickSight. Когда руководитель сайта получает доступ к информационной панели, он видит только данные, относящиеся к его сайту, а когда менеджер получает доступ к информационной панели, он видит данные, относящиеся ко всем сайтам, которыми он управляет.
Чтобы добиться такого поведения, мы используем новую функцию, которая позволяет настраивать безопасность на уровне строк с помощью тегов. Этот метод защиты данных на встроенных информационных панелях работает только в том случае, если информационные панели встроены без подготовки пользователя (также называемый анонимное встраивание). Процесс включает в себя два этапа:
- Настройте ключи тегов для столбцов наборов данных, используемых для построения информационной панели.
- Задайте значения для ключей тегов во время выполнения при анонимном встраивании информационной панели.
Настройте ключи тегов для столбцов в наборах данных, используемых для создания информационной панели.
Независимые поставщики программного обеспечения или разработчики могут устанавливать столбцы в наборах данных с помощью CreateDataset
or UpdateDataset
API следующим образом:
В предыдущем примере кода row-level-permission-tag-configuration
— это элемент, который можно использовать для определения ключей тегов в столбцах набора данных. Для каждого тега вы можете определить следующие дополнительные элементы:
- ТегMultiValueDelimiter – Эта опция, если она установлена в столбце, позволяет передавать в тег более одного значения во время выполнения, при этом значения разделяются строкой, установленной для этой опции. В этом примере в качестве строки-разделителя задана запятая.
- МатчВсеЗначение – Если этот параметр установлен для столбца, он позволяет передавать все значения столбца во время выполнения, и эти значения представляются строкой, установленной для этого параметра. В этом примере звездочка установлена как соответствие всей строке.
После того, как мы определим наши теги, мы можем включить или отключить эти правила, используя Status
элемент API. В этом случае устанавливается значение ENABLED
. Чтобы отключить правила, значение равно DISABLED
. После включения тегов мы можем передавать значения тегам во время выполнения, чтобы защитить отображаемые данные в зависимости от того, кто обращается к панели мониторинга.
Каждый набор данных может содержать до 50 ключей тегов.
Мы получаем следующий ответ на CreateDataset
or UpdateDataset
API:
Предоставьте авторам доступ к данным, защищенным ключами тегов, при написании анализа.
После того как ключи тегов установлены и включены в наборе данных, он становится защищенным. Авторы, использующие этот набор данных для создания информационной панели, не видят никаких данных. Им должны быть предоставлены разрешения на просмотр любых данных в наборе данных при создании информационной панели. Чтобы предоставить авторам QuickSight разрешение на просмотр данных в наборе данных, создайте файл разрешений или набор данных правил. Для получения дополнительной информации см. Создание правил набора данных для безопасности на уровне строк. Ниже приведен пример набора данных правил.
UserName | имя_столбца_1 | имя_столбца_2 | имя_столбца_3 |
администратор/автор примеров |
В этом примере набора данных имя пользователя автора указано в столбце «Имя пользователя». Остальные три столбца — это столбцы из набора данных, для которых мы установили ключи тегов. Значения в этих столбцах остаются пустыми для автора, добавленного в эту таблицу. Это позволяет автору видеть все данные в этих столбцах без каких-либо ограничений при создании анализа.
Задайте значения для ключей тегов во время выполнения при встраивании панели мониторинга.
После того как ключи тегов установлены для столбцов наборов данных, разработчики задают значения для ключей во время выполнения при встраивании информационной панели. Разработчики называют API GenerateDashboardEmbedURLForAnonymousUser
для встраивания панели мониторинга и передачи значений в ключи тега в элементе SessionTags
, как показано в следующем примере кода:
Поскольку эта функция защищает данные пользователей, не предоставленных в QuickSight, вызов API предназначен для AnonymousUser
только и поэтому эта функция работает только с API GenerateDashboardEmbedURLForAnonymousUser
.
Код предыдущего примера состоит из следующих компонентов:
- Что касается
tag_name_1
, вы устанавливаете два значения (value1
иvalue2
) используяTagMultiValueDelimiter
определяется при установке ключей тега (в данном случае запятая). - Что касается
tag_name_2
, вы устанавливаете одно значение в виде звездочки. Это позволяет этому ключу тега назначить все значения для этого столбца, поскольку мы определили звездочку какMatchAllValue
при установке ключа тега в столбце ранее. - Что касается
tag_name_3
, вы устанавливаете одно значение (value3
).
Определение ответа API
Ответ API имеет EmbedURL
, Status
качества RequestID
. Вы можете встроить этот URL-адрес в свою HTML-страницу. Данные на этой информационной панели защищены на основе значений, передаваемых в ключи тегов при вызове API внедрения. GenerateDashboardEmbedURLForAnonymousUser
:
- ВставитьUrl (строка) – Одноразовый URL-адрес, который вы можете разместить на своей серверной веб-странице, чтобы встроить свою панель мониторинга. Этот URL действителен в течение 5 минут. Операция API предоставляет URL-адресу
auth_code
значение, которое позволяет один (и только один) вход в пользовательский сеанс, действительный до 10 часов. Этот URL-адрес отображает панель мониторинга с применением правил RLS на основе значений, установленных для ключей тега RLS. - Статус (целое число) – HTTP-статус запроса.
- RequestId (строка) – Идентификатор запроса AWS для этой операции.
Детальный контроль доступа
Вы можете добиться детального контроля доступа, используя динамический Управление идентификацией и доступом AWS (IAM) формирование политики. Для получения дополнительной информации см. Изоляция клиентов SaaS с помощью динамически генерируемых политик IAM. При использовании GenerateEmbedUrlForAnonymousUser
API для встраивания, вам необходимо указать в политике IAM два типа ресурсов: ARN пространства имен, к которому фактически принадлежат ваши анонимные пользователи, и ARN панели мониторинга, которые можно использовать в AuthorizedResourceArns
значение входного параметра. Сеансы, созданные с использованием этого API, могут получить доступ к авторизованным ресурсам и ресурсам (панелям мониторинга), совместно используемым с пространством имен.
Поскольку анонимные пользователи являются частью пространства имен, им доступны любые информационные панели, общие для этого пространства имен, независимо от того, передаются ли они явно через AuthorizedResourceArns
Параметр.
Чтобы разрешить идентификатору вызывающего абонента генерировать URL-адрес для любого пользователя и любой информационной панели, Resource
блок политики может быть установлен на *
. Чтобы разрешить идентификатору вызывающего абонента генерировать URL-адрес для любого анонимного пользователя в определенном пространстве имен (например, Tenant1
) Resource
часть политики может быть установлена на arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. То же самое касается идентификатора информационной панели. Для динамического создания политики вы также можете использовать заполнители для пространства имен и пользователей.
Следующий код представляет собой пример политики IAM:
Примеры использования
OkTank — независимый поставщик программного обеспечения в сфере здравоохранения. У них есть SaaS-приложение, которое используют разные больницы в разных регионах страны для управления своими доходами. OkTank имеет тысячи сотрудников здравоохранения, имеющих доступ к своему приложению, и встроил операции, связанные с их бизнесом, в панель управления QuickSight в своем приложении. OkTank не хочет отдельно управлять своими пользователями в QuickSight и хочет защитить данные в зависимости от того, какой пользователь из какой больницы обращается к их приложению. OkTank защищает данные на информационных панелях во время выполнения, используя безопасность на уровне строк с помощью тегов.
У OkTank есть больницы (Северная больница, Южная больница и Центральная больница) в Центральном, Восточном, Южном и Западном регионах.
В этом примере следующие пользователи получают доступ к приложению OkTank и встроенной информационной панели. У каждого пользователя есть определенный уровень правил ограничения, которые определяют, к каким данным он может получить доступ на информационных панелях. PowerUser
является суперпользователем, который может видеть данные по всем больницам и регионам.
Пользователь приложения OkTank | Больница | Регион |
Северный пользователь | Северная больница | Центральный и Восточный |
СеверныйАдмин | Северная больница | Все регионы |
ЮжныйПользователь | Южная больница | Южная |
ЮжныйАдмин | Южная больница | Все регионы |
Продвинутый пользователь | Все больницы | Все регионы |
Ни один из этих пользователей не был подготовлен в QuickSight. OkTank управляет этими пользователями в собственном приложении и, следовательно, знает, к какому региону и больнице принадлежит каждый пользователь. Когда любой из этих пользователей получает доступ к встроенной панели управления QuickSight в приложении, OkTank должен защитить данные на панели управления, чтобы пользователи могли видеть данные только для своего региона и больницы.
Во-первых, OkTank создал ключи тегов для набора данных, которые они используют для работы панели управления. В их UpdateDataset
вызов API, RowLevelPermissionTagConfiguration
элемент в наборе данных выглядит следующим образом:
Во-вторых, во время выполнения при встраивании информационной панели через GenerateDashboardEmbedURLForAnonymousUser
API, они установили SessionTags
для каждого пользователя.
SessionTags
для NorthUser
в GenerateDashboardEmbedURLForAnonymousUser
Вызов API выглядит следующим образом:
SessionTags
для NorthAdmin
заключаются в следующем:
SessionTags
для SouthUser
заключаются в следующем:
SessionTags
для SouthAdmin
заключаются в следующем:
SessionTags
для PowerUser
заключаются в следующем:
На следующем скриншоте показано, что SouthUser
видит, что касается Южной больницы в Южном регионе.
На следующем скриншоте показано, что SouthAdmin
видит в отношении Южной больницы во всех регионах.
На следующем скриншоте показано, что PowerUser
см. относящиеся ко всем больницам во всех регионах.
На основе тегов сеанса OkTank защитил данные на встроенных информационных панелях, так что каждый пользователь видит только определенные данные в зависимости от своего доступа. Ты можешь доступ к панели управления в качестве одного из пользователей (изменяя пользователя в раскрывающемся меню в правом верхнем углу) и посмотрите, как изменяются данные в зависимости от выбранного пользователя.
В целом, благодаря безопасности на уровне строк с использованием тегов, OkTank может предоставить привлекательные возможности аналитики в своем SaaS-приложении, гарантируя при этом, что каждый пользователь видит только соответствующие данные без необходимости предоставлять пользователям и управлять ими в QuickSight. QuickSight предоставляет высокомасштабируемую и безопасную функцию аналитики, которую можно настроить и внедрить в производство за несколько дней, а не недель или месяцев ранее.
Заключение
Сочетание встроенной информационной панели для пользователей, не предоставленных в QuickSight, и безопасности на уровне строк с использованием тегов позволяет разработчикам и независимым поставщикам программного обеспечения быстро и легко настраивать сложную, настраиваемую аналитику для пользователей своих приложений — и все это без какой-либо настройки или управления инфраструктурой при масштабировании до миллионов пользователей. . Для получения дополнительных обновлений от Встроенная аналитика QuickSightСм. Что нового в руководстве пользователя Amazon QuickSight.
Об авторах
Раджи Шивасубраманиам — специалист по архитектуре решений в AWS, специализирующийся на аналитике. Раджи имеет 20-летний опыт разработки комплексных решений для управления корпоративными данными, бизнес-аналитики и аналитики для компаний из списка Fortune 500 и Fortune 100 по всему миру. Она имеет обширный опыт в области интегрированных медицинских данных и аналитики с широким спектром наборов медицинских данных, включая управляемый рынок, таргетинг на врачей и аналитику пациентов. В свободное время Раджи увлекается пешим туризмом, йогой и садоводством.
Шрикант Бахети является старшим архитектором решений World Wide для Amazon QuickSight. Он начал свою карьеру в качестве консультанта и работал в нескольких частных и государственных организациях. Позже он работал в PerkinElmer Health and Sciences & eResearch Technology Inc, где отвечал за проектирование и разработку веб-приложений с высоким трафиком, хорошо масштабируемых и удобных в обслуживании конвейеров данных для платформ отчетности с использованием сервисов AWS и бессерверных вычислений.
Карим Сайед-Мохаммед работает менеджером по продукту в Amazon QuickSight. Он фокусируется на встроенной аналитике, API и опыте разработчиков. До QuickSight он работал менеджером по продажам в AWS Marketplace и Amazon Retail. Карим начал свою карьеру в качестве разработчика, а затем продакт-менеджера по технологиям колл-центра, Local Expert и Ads для Expedia. Некоторое время он работал консультантом в McKinsey and Company.
- '
- "
- &
- 000
- 100
- 11
- доступ
- Учетная запись
- Действие
- объявления
- Все
- Amazon
- аналитика
- API
- API
- приложение
- Применение
- Приложения
- Программы
- Авторы
- AWS
- строить
- бизнес
- бизнес-аналитика
- призывают
- Пропускная способность
- Карьера
- код
- Column
- Компании
- Компания
- вычисление
- консультант
- Клиенты
- приборная панель
- данным
- управление данными
- Застройщик
- застройщиков
- Центр города
- сотрудников
- Предприятие
- опыт
- БЫСТРО
- Особенность
- Правительство
- Медицина
- здравоохранение
- здесь
- High
- пеший туризм
- Больница
- больницы
- Как
- HTTPS
- IAM
- Личность
- В том числе
- информация
- Инфраструктура
- Интеллекта
- интерактивный
- IT
- Основные
- ключи
- уровень
- локальным
- Создание
- управление
- рынок
- рынка
- Совпадение
- месяцев
- Новая функция
- север
- Операционный отдел
- Опция
- Другие контрактные услуги
- производительность
- врач
- Платформы
- политика
- мощностью
- частная
- Продукт
- Производство
- ресурс
- Полезные ресурсы
- ответ
- розничный
- доходы
- Катить
- условиями,
- SaaS
- масштабирование
- НАУКА
- безопасность
- видит
- выбранный
- Serverless
- Услуги
- набор
- установка
- Поделиться
- общие
- Короткое
- Сайтов
- So
- Software
- Решения
- Южная
- Space
- и политические лидеры
- заявление
- Статус:
- технологии
- Технологии
- время
- топ
- трафик
- Updates
- пользователей
- ценностное
- Web
- веб-приложений
- запад
- КТО
- в
- рабочий
- работает
- Мир
- лет
- Йога