Amazon QuickSight es un servicio de inteligencia empresarial (BI) nativo de la nube y completamente administrado que facilita la conexión a sus datos, la creación de paneles interactivos y compartirlos con decenas de miles de usuarios, ya sea dentro de QuickSight o integrado en el software como un aplicaciones de servicio (SaaS).
QuickSight Enterprise Edition agregó recientemente seguridad a nivel de fila (RLS) mediante etiquetas, una nueva característica que permite a los desarrolladores compartir un solo tablero con decenas de miles de usuarios, al tiempo que garantiza que cada usuario solo pueda ver y tener acceso a datos particulares. Esto significa que cuando un proveedor de software independiente (ISV) agrega un panel de control integrado de QuickSight en su aplicación, no tiene que aprovisionar a sus usuarios finales en QuickSight y simplemente puede configurar etiquetas para filtrar datos en función de quién es el panel de control. siendo servido a. Por ejemplo, si un ISV quisiera configurar un panel que se compartiera con 20,000 usuarios en 100 clientes de una aplicación, con todos los usuarios dentro de un cliente teniendo acceso a datos idénticos, esta nueva función le permite compartir un solo panel para todos los usuarios, sin tener que configurar o administrar los 20,000 usuarios en QuickSight.
El RLS aplicado mediante etiquetas garantiza que cada usuario final solo vea los datos que son relevantes para ellos, mientras que QuickSight se escala automáticamente para cumplir con la concurrencia del usuario para garantizar que cada usuario final vea un rendimiento rápido y constante. En esta publicación, veremos cómo se puede implementar.
Resumen de la solución
Para insertar paneles sin aprovisionamiento de usuarios, usamos la API Generar URL de inserción para usuario anónimo, que funciona con QuickSight precio de la capacidad de la sesión. Con esta API, el servidor de incrustación (lógica en la aplicación SaaS) determina y administra la identidad del usuario al que se muestra el tablero (en contraposición a que esta identidad se aprovisione y administre dentro de QuickSight).
El siguiente diagrama muestra un flujo de trabajo de ejemplo de paneles integrados que protege los datos en función de quién accede a la aplicación mediante RLS con etiquetas.
En este caso, un ISV tiene una aplicación SaaS a la que acceden dos usuarios finales. Uno es gerente y el otro es supervisor de sitio. Ambos usuarios acceden a la misma aplicación y al mismo panel de QuickSight integrado en la aplicación y no están aprovisionados en QuickSight. Cuando el supervisor del sitio accede al panel, solo ve datos pertenecientes a su sitio, y cuando el administrador accede al panel, ve datos pertenecientes a todos los sitios que administra.
Para lograr este comportamiento, utilizamos una nueva función que permite configurar la seguridad a nivel de fila mediante etiquetas. Este método de protección de datos en paneles integrados solo funciona cuando los paneles están integrados sin aprovisionamiento de usuarios (también llamado incrustación anónima). El proceso incluye dos pasos:
- Configure claves de etiqueta en las columnas de los conjuntos de datos utilizados para crear el tablero.
- Establezca valores para las claves de la etiqueta en tiempo de ejecución al incrustar el panel de forma anónima.
Configurar claves de etiquetas en columnas en los conjuntos de datos que se utilizan para crear el panel
Los ISV o los desarrolladores pueden establecer columnas en los conjuntos de datos utilizando el CreateDataset
or UpdateDataset
API de la siguiente manera:
En el código de ejemplo anterior, row-level-permission-tag-configuration
es el elemento que puede utilizar para definir claves de etiquetas en las columnas de un conjunto de datos. Para cada etiqueta, puede definir los siguientes elementos opcionales:
- EtiquetaMultiValueDelimiter - Esta opción cuando se establece en una columna le permite pasar más de un valor a la etiqueta en tiempo de ejecución, y los valores están delimitados por la cadena establecida para esta opción. En este ejemplo, se establece una coma como cadena delimitadora.
- Coincidir con todos los valores - Esta opción cuando se establece en una columna le permite pasar todos los valores de una columna en tiempo de ejecución, y los valores están representados por la cadena establecida para esta opción. En esta muestra, un asterisco se establece como una cadena que coincide con todas las demás.
Después de definir nuestras etiquetas, podemos habilitar o deshabilitar estas reglas usando el Status
elemento de la API. En este caso, el valor se establece en ENABLED
. Para deshabilitar las reglas, el valor es DISABLED
. Una vez habilitadas las etiquetas, podemos pasar valores a las etiquetas en tiempo de ejecución para proteger los datos que se muestran en función de quién accede al panel.
Cada conjunto de datos puede tener hasta 50 claves de etiqueta.
Recibimos la siguiente respuesta para el CreateDataset
or UpdateDataset
API:
Permitir que los autores accedan a datos protegidos por claves de etiquetas al crear análisis
Una vez que se establecen y habilitan las claves de etiquetas en el conjunto de datos, se protege. Los autores cuando usan este conjunto de datos para crear un panel no ven ningún dato. Deben tener permisos para ver los datos del conjunto de datos al crear un panel. Para dar permiso a los autores de QuickSight para ver datos en el conjunto de datos, cree un archivo de permisos o un conjunto de datos de reglas. Para más información, ver Creación de reglas de conjuntos de datos para la seguridad a nivel de filas. El siguiente es un ejemplo de conjunto de datos de reglas.
Nombre de usuario | columna_nombre_1 | columna_nombre_2 | columna_nombre_3 |
admin / sampleauthor |
En este conjunto de datos de muestra, tenemos el nombre de usuario del autor en la columna Nombre de usuario. Las otras tres columnas son las columnas del conjunto de datos en el que configuramos las claves de etiqueta. Los valores se dejan vacíos para estas columnas para el autor agregado a esta tabla. Esto permite al autor ver todos los datos en estas columnas sin ninguna restricción cuando están creando análisis.
Establecer valores para las claves de etiqueta en tiempo de ejecución al incrustar el tablero
Una vez que se establecen las claves de etiqueta para las columnas de los conjuntos de datos, los desarrolladores establecen valores en las claves en tiempo de ejecución al incrustar el panel. Los desarrolladores llaman a la API GenerateDashboardEmbedURLForAnonymousUser
para incrustar el tablero y pasar valores a las claves de etiqueta en el elemento SessionTags
, como se muestra en el siguiente código de ejemplo:
Debido a que esta función protege los datos de los usuarios no aprovisionados en QuickSight, la llamada a la API es para AnonymousUser
solo y, por lo tanto, esta característica solo funciona con la API GenerateDashboardEmbedURLForAnonymousUser
.
El código de ejemplo anterior tiene los siguientes componentes:
-
tag_name_1
, estableces dos valores (value1
yvalue2
) utilizando elTagMultiValueDelimiter
definido al configurar las claves de etiqueta (en este caso, una coma). -
tag_name_2
, establece un valor como un asterisco. Esto permite que esta clave de etiqueta tenga todos los valores asignados para esa columna porque definimos el asterisco comoMatchAllValue
al configurar una clave de etiqueta en la columna anterior. -
tag_name_3
, estableces un valor (value3
).
Definición de respuesta de API
La respuesta de la API tiene la EmbedURL
, Status
y RequestID
. Puede incrustar esta URL en su página HTML. Los datos de este panel se protegen en función de los valores que se pasan a las claves de las etiquetas al llamar a la API de inserción. GenerateDashboardEmbedURLForAnonymousUser
:
- EmbedUrl (cadena) - Una URL de un solo uso que puede colocar en su página web del lado del servidor para incrustar su panel de control. Esta URL es válida por 5 minutos. La operación de la API proporciona a la URL una
auth_code
valor que habilita un (y solo uno) inicio de sesión en una sesión de usuario que es válido por hasta 10 horas. Esta URL muestra el panel con las reglas de RLS aplicadas en función de los valores establecidos para las claves de etiquetas de RLS. - Estado (entero) - El estado HTTP de la solicitud.
- RequestId (cadena) - El ID de solicitud de AWS para esta operación.
Control de acceso detallado
Puede lograr un control de acceso detallado mediante el uso dinámico Gestión de identidades y accesos de AWS (IAM) generación de políticas. Para más información, ver Aislar a los inquilinos de SaaS con políticas de IAM generadas dinámicamente. Al usar el GenerateEmbedUrlForAnonymousUser
API para incrustar, debe mencionar dos tipos de recursos en la política de IAM: los ARN del espacio de nombres a los que pertenecen virtualmente sus usuarios anónimos y los ARN del tablero que se pueden usar en el AuthorizedResourceArns
valor del parámetro de entrada. Las sesiones generadas con esta API pueden acceder a los recursos autorizados y a los (cuadros de mando) compartidos con el espacio de nombres.
Dado que los usuarios anónimos forman parte de un espacio de nombres, pueden acceder a todos los paneles compartidos con el espacio de nombres, independientemente de si se pasan explícitamente a través del AuthorizedResourceArns
parámetro.
Para permitir que la identidad de la persona que llama genere una URL para cualquier usuario y cualquier panel, el Resource
El bloque de la política se puede establecer en *
. Para permitir que la identidad de la persona que llama genere una URL para cualquier usuario anónimo en un espacio de nombres específico (como Tenant1
), el Resource
parte de la política se puede configurar para arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. Esto es lo mismo para el ID del panel. Para la generación de políticas dinámicas, también puede utilizar marcadores de posición para el espacio de nombres y los usuarios.
El siguiente código es un ejemplo de política de IAM:
Caso de uso
OkTank es un ISV en el ámbito de la salud. Tienen una aplicación SaaS que utilizan diferentes hospitales en diferentes regiones del país para administrar sus ingresos. OkTank tiene miles de empleados de atención médica que acceden a su aplicación y ha incorporado operaciones relacionadas con su negocio en un panel de QuickSight en su aplicación. OkTank no quiere administrar a sus usuarios en QuickSight por separado y desea proteger los datos en función de qué usuario desde qué hospital accede a su aplicación. OkTank protege los datos de los paneles en tiempo de ejecución mediante la seguridad a nivel de fila mediante etiquetas.
OkTank tiene hospitales (North Hospital, South Hospital y Downtown Hospital) en las regiones Central, East, South y West.
En este ejemplo, los siguientes usuarios acceden a la aplicación de OkTank y al panel integrado. Cada usuario tiene un cierto nivel de reglas de restricción que definen a qué datos pueden acceder en los paneles. PowerUser
es un superusuario que puede ver los datos de todos los hospitales y regiones.
Usuario de la aplicación de OkTank | Hospital | Provincia |
Usuario norte | Hospital del Norte | Central y Este |
administrador norte | Hospital del Norte | Todas las regiones |
Usuario Sur | Hospital Sur | Sur |
administrador del sur | Hospital Sur | Todas las regiones |
Usuario de poder | Todos los hospitales | Todas las regiones |
Ninguno de estos usuarios ha sido aprovisionado en QuickSight. OkTank gestiona a estos usuarios en su propia aplicación y, por tanto, sabe a qué región y hospital pertenece cada usuario. Cuando cualquiera de estos usuarios accede al panel de QuickSight integrado en la aplicación, OkTank debe proteger los datos en el panel para que los usuarios solo puedan ver los datos de su región y hospital.
Primero, OkTank creó claves de etiquetas en el conjunto de datos que están usando para alimentar el tablero. En su UpdateDataset
Llamada a la API, el RowLevelPermissionTagConfiguration
elemento en el conjunto de datos es el siguiente:
En segundo lugar, en tiempo de ejecución cuando se inserta el panel a través del GenerateDashboardEmbedURLForAnonymousUser
API, establecieron SessionTags
para cada usuario.
SessionTags
para NorthUser
existentes GenerateDashboardEmbedURLForAnonymousUser
Las llamadas a la API son las siguientes:
SessionTags
para NorthAdmin
son los siguientes:
SessionTags
para SouthUser
son los siguientes:
SessionTags
para SouthAdmin
son los siguientes:
SessionTags
para PowerUser
son los siguientes:
La siguiente captura de pantalla muestra lo que SouthUser
ve perteneciente al Hospital Sur en la región Sur.
La siguiente captura de pantalla muestra lo que SouthAdmin
ve perteneciente a South Hospital en todas las regiones.
La siguiente captura de pantalla muestra lo que PowerUser
ve perteneciente a todos los hospitales en todas las regiones.
Según las etiquetas de sesión, OkTank ha protegido los datos en los paneles integrados de modo que cada usuario solo ve datos específicos en función de su acceso. Usted puede acceder al tablero como uno de los usuarios (cambiando el usuario en el menú desplegable en la parte superior derecha) y vea cómo cambian los datos según el usuario seleccionado.
En general, con la seguridad a nivel de fila mediante etiquetas, OkTank puede proporcionar una experiencia de análisis convincente dentro de su aplicación SaaS, al tiempo que se asegura de que cada usuario solo vea los datos adecuados sin tener que aprovisionar y administrar usuarios en QuickSight. QuickSight proporciona una opción de análisis segura y altamente escalable que puede configurar e implementar en producción en días, en lugar de semanas o meses antes.
Conclusión
La combinación de panel de control integrado para usuarios no aprovisionados en QuickSight y seguridad a nivel de fila mediante etiquetas permite a los desarrolladores e ISV configurar rápida y fácilmente análisis sofisticados y personalizados para los usuarios de sus aplicaciones, todo sin ninguna configuración de infraestructura o administración mientras se escala a millones de usuarios. . Para obtener más actualizaciones de Análisis integrado QuickSight, consulte nuestra página, Novedades de la Guía del usuario de Amazon QuickSight.
Acerca de los autores
Raji Shivasubramaniam es un arquitecto de soluciones especializado en AWS, que se especializa en análisis. Raji tiene 20 años de experiencia en la arquitectura de soluciones integrales de gestión de datos empresariales, inteligencia empresarial y análisis para empresas Fortune 500 y Fortune 100 en todo el mundo. Tiene una amplia experiencia en análisis y datos de atención médica integrados con una amplia variedad de conjuntos de datos de atención médica, incluido el mercado administrado, la selección de médicos y el análisis de pacientes. En su tiempo libre, a Raji le gusta el senderismo, el yoga y la jardinería.
Srikanth Baheti es un arquitecto de soluciones senior especializado en todo el mundo para Amazon QuickSight. Comenzó su carrera como consultor y trabajó para múltiples organizaciones privadas y gubernamentales. Más tarde, trabajó para PerkinElmer Health and Sciences & eResearch Technology Inc, donde fue responsable del diseño y desarrollo de aplicaciones web de alto tráfico, canalizaciones de datos altamente escalables y fáciles de mantener para plataformas de informes que utilizan servicios de AWS y computación sin servidor.
Kareem Syed-Mohammed es Product Manager en Amazon QuickSight. Se centra en la analítica integrada, las API y la experiencia del desarrollador. Antes de QuickSight, trabajó en AWS Marketplace y Amazon Retail como PM. Kareem comenzó su carrera como desarrollador y luego como PM para tecnologías de centros de llamadas, Local Expert y Ads for Expedia. Trabajó como consultor con McKinsey and Company durante un tiempo.
- '
- "
- &
- 000
- 100
- 11
- de la máquina
- Mi Cuenta
- la columna Acción
- Anuncios
- Todos
- Amazon
- Analytics
- abejas
- API
- applicación
- Aplicación
- aplicaciones
- aplicaciones
- Autorzy
- AWS
- build
- inteligencia empresarial
- llamar al
- Capacidad
- Propósito
- código
- Columna
- Empresas
- compañía
- informática
- consultor
- Clientes
- página de información de sus operaciones
- datos
- datos de gestión
- Developer
- desarrolladores
- Downtown
- personas
- Empresa
- experience
- RÁPIDO
- Feature
- Gobierno
- Salud
- la salud
- esta página
- Alta
- excursionismo
- Hospital
- hospitales
- Cómo
- HTTPS
- AMI
- Identidad
- Incluye
- información
- EN LA MINA
- Intelligence
- interactivo
- IT
- Clave
- claves
- Nivel
- local
- Realizar
- Management
- Mercado
- mercado
- Match
- meses
- nueva función
- North
- Operaciones
- Optión
- Otro
- actuación
- médico
- Plataformas
- política
- industria
- privada
- Producto
- Producción
- Recurso
- Recursos
- respuesta
- el comercio minorista
- ingresos
- Rodar
- reglas
- SaaS
- la ampliación
- CIENCIAS
- EN LINEA
- ve
- seleccionado
- Sin servidor
- Servicios
- set
- pólipo
- Compartir
- compartido
- En Corto
- Sitios Web
- So
- Software
- Soluciones
- Sur
- Espacio
- fundó
- Posicionamiento
- Estado
- Tecnologías
- Tecnología
- equipo
- parte superior
- tráfico
- Actualizaciones
- usuarios
- propuesta de
- web
- aplicaciones web
- West
- QUIENES
- dentro de
- flujo de trabajo
- funciona
- mundo
- años
- Yoga