AmazonQuickSight é um serviço de business intelligence (BI) totalmente gerenciado e nativo da nuvem que facilita a conexão com seus dados, a criação de painéis interativos e o compartilhamento com dezenas de milhares de usuários, seja no próprio QuickSight ou incorporado no software como um aplicativos de serviço (SaaS).
QuickSight Enterprise Edition adicionou recentemente segurança em nível de linha (RLS) usando tags, um novo recurso que permite aos desenvolvedores compartilhar um único painel com dezenas de milhares de usuários, ao mesmo tempo que garante que cada usuário possa ver e ter acesso apenas a dados específicos. Isso significa que quando um fornecedor independente de software (ISV) adiciona um painel integrado ao QuickSight em seu aplicativo, ele não precisa provisionar seus usuários finais no QuickSight e pode simplesmente configurar tags para filtrar dados com base em quem é o painel sendo servido. Por exemplo, se um ISV quisesse configurar um painel que fosse compartilhado com 20,000 usuários em 100 clientes de um aplicativo, com todos os usuários de um cliente tendo acesso a dados idênticos, esse novo recurso permitirá que você compartilhe um único painel para todos os usuários, sem precisar configurar ou gerenciar os 20,000 usuários no QuickSight.
O RLS aplicado por meio de tags garante que cada usuário final veja apenas os dados que são relevantes para ele, enquanto o QuickSight é dimensionado automaticamente para atender à simultaneidade do usuário para garantir que cada usuário final veja um desempenho consistentemente rápido. Nesta postagem, veremos como isso pode ser implementado.
Visão geral da solução
Para incorporar painéis sem provisionamento de usuário, usamos a API GerarEmbedURLForAnonymousUser, que funciona com o QuickSight preços de capacidade de sessão. Com esta API, o servidor de incorporação (lógica no aplicativo SaaS) determina e gerencia a identidade do usuário para quem o painel está sendo exibido (em oposição a essa identidade ser provisionada e gerenciada no QuickSight).
O diagrama a seguir mostra um exemplo de fluxo de trabalho de painéis integrados que protege os dados com base em quem está acessando o aplicativo usando RLS com tags.
Neste caso, um ISV possui uma aplicação SaaS que é acessada por dois usuários finais. Um é gerente e o outro é supervisor de local. Ambos os usuários acessam o mesmo aplicativo e o mesmo painel do QuickSight incorporado no aplicativo e não são provisionados no QuickSight. Quando o supervisor do site acessa o painel, ele vê apenas os dados pertencentes ao seu site, e quando o gerente acessa o painel, ele vê os dados pertencentes a todos os sites que gerencia.
Para conseguir esse comportamento, usamos um novo recurso que permite configurar a segurança em nível de linha usando tags. Este método de proteger dados em painéis integrados funciona somente quando os painéis são incorporados sem provisionamento de usuário (também chamado incorporação anônima). O processo inclui duas etapas:
- Configure chaves de tag nas colunas dos conjuntos de dados usados para construir o painel.
- Defina valores para as chaves de tag em tempo de execução ao incorporar o painel anonimamente.
Configure chaves de tag em colunas nos conjuntos de dados usados para criar o painel
ISVs ou desenvolvedores podem definir colunas nos conjuntos de dados usando o CreateDataset
or UpdateDataset
APIs da seguinte forma:
No código do exemplo anterior, row-level-permission-tag-configuration
é o elemento que você pode usar para definir chaves de tag nas colunas de um conjunto de dados. Para cada tag, você pode definir os seguintes itens opcionais:
- TagMultiValueDelimitador – Esta opção quando definida em uma coluna permite passar mais de um valor para o tag em tempo de execução, e os valores são delimitados pela string definida para esta opção. Neste exemplo, uma vírgula é definida como uma sequência delimitadora.
- CorresponderTodosValor – Esta opção quando definida em uma coluna permite passar todos os valores de uma coluna em tempo de execução, e os valores são representados pela string definida para esta opção. Neste exemplo, um asterisco é definido como uma correspondência com todas as strings.
Depois de definirmos nossas tags, podemos ativar ou desativar essas regras usando o Status
elemento da API. Neste caso o valor é definido como ENABLED
. Para desabilitar as regras, o valor é DISABLED
. Depois que as tags forem habilitadas, podemos passar valores para as tags em tempo de execução para proteger os dados exibidos com base em quem está acessando o painel.
Cada conjunto de dados pode ter até 50 chaves de tag.
Recebemos a seguinte resposta para o CreateDataset
or UpdateDataset
API:
Permitir que os autores acessem dados protegidos por chaves de tags ao criar análises
Depois que as chaves de tags são definidas e habilitadas no conjunto de dados, ele fica protegido. Os autores, ao usarem esse conjunto de dados para criar um painel, não veem nenhum dado. Eles devem receber permissões para ver qualquer dado no conjunto de dados ao criar um painel. Para conceder permissão aos autores do QuickSight para ver os dados no conjunto de dados, crie um arquivo de permissões ou um conjunto de dados de regras. Para mais informações, veja Criando regras de conjunto de dados para segurança em nível de linha. A seguir está um exemplo de conjunto de dados de regras.
UserName | nome_coluna_1 | nome_coluna_2 | nome_coluna_3 |
administrador/autor de amostra |
Neste conjunto de dados de amostra, temos o nome de usuário do autor listado na coluna UserName. As outras três colunas são as colunas do conjunto de dados no qual definimos chaves de tag. Os valores são deixados em branco para estas colunas para o autor adicionado a esta tabela. Isso permite que o autor veja todos os dados nessas colunas sem qualquer restrição quando estiver criando análises.
Defina valores para as chaves de tag em tempo de execução ao incorporar o painel
Depois que as chaves de tag são definidas para colunas dos conjuntos de dados, os desenvolvedores definem valores para as chaves em tempo de execução ao incorporar o painel. Os desenvolvedores chamam a API GenerateDashboardEmbedURLForAnonymousUser
para incorporar o painel e passar valores para as chaves de tag no elemento SessionTags
, conforme mostrado no código de exemplo a seguir:
Como esse recurso protege dados de usuários não provisionados no QuickSight, a chamada de API é para AnonymousUser
somente e, portanto, esse recurso funciona apenas com a API GenerateDashboardEmbedURLForAnonymousUser
.
O código de exemplo anterior possui os seguintes componentes:
- Escolha
tag_name_1
, você define dois valores (value1
evalue2
) Utilizando oTagMultiValueDelimiter
definido ao definir as chaves da tag (neste caso, uma vírgula). - Escolha
tag_name_2
, você define um valor como um asterisco. Isso permite que esta chave de tag tenha todos os valores dessa coluna atribuídos porque definimos asterisco como oMatchAllValue
ao definir uma chave de tag na coluna anteriormente. - Escolha
tag_name_3
, você define um valor (value3
).
Definição de resposta da API
A resposta da API tem o EmbedURL
, Status
e RequestID
. Você pode incorporar este URL em sua página HTML. Os dados neste painel são protegidos com base nos valores transmitidos às chaves de tag ao chamar a API de incorporação GenerateDashboardEmbedURLForAnonymousUser
:
- IncorporarUrl (string) – Um URL de uso único que você pode colocar na página da web do servidor para incorporar seu painel. Este URL é válido por 5 minutos. A operação da API fornece ao URL um
auth_code
valor que permite um (e apenas um) logon em uma sessão de usuário válida por até 10 horas. Este URL renderiza o painel com regras RLS aplicadas com base nos valores definidos para as chaves de tag RLS. - Estado (inteiro) – O status HTTP da solicitação.
- ID da solicitação (string) – O ID de solicitação da AWS para esta operação.
Controle de acesso refinado
Você pode obter controle de acesso refinado usando Gerenciamento de acesso e identidade da AWS (IAM) geração de políticas. Para mais informações, veja Isolando locatários de SaaS com políticas de IAM geradas dinamicamente. Ao usar o GenerateEmbedUrlForAnonymousUser
API para incorporação, você precisa mencionar dois tipos de recursos na política do IAM: os ARNs de namespace aos quais seus usuários anônimos pertencem virtualmente e os ARNs do painel que podem ser usados no AuthorizedResourceArns
valor do parâmetro de entrada. As sessões geradas através desta API podem acessar os recursos autorizados e aqueles (dashboards) compartilhados com o namespace.
Como os usuários anônimos fazem parte de um namespace, quaisquer painéis compartilhados com o namespace são acessíveis a eles, independentemente de serem transmitidos explicitamente por meio do AuthorizedResourceArns
parâmetro.
Para permitir que a identidade do chamador gere uma URL para qualquer usuário e qualquer painel, o Resource
bloco da política pode ser definido como *
. Para permitir que a identidade do chamador gere uma URL para qualquer usuário anônimo em um namespace específico (como Tenant1
), O Resource
parte da política pode ser definida como arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. Isso é o mesmo para o ID do painel. Para geração de política dinâmica, você também pode usar espaços reservados para namespace e usuários.
O código a seguir é um exemplo de política do IAM:
Caso de uso
OkTank é um ISV na área de saúde. Eles têm um aplicativo SaaS que é usado por diferentes hospitais em diferentes regiões do país para gerenciar suas receitas. OkTank tem milhares de funcionários de saúde acessando seu aplicativo e incorporou operações relacionadas aos seus negócios em um painel QuickSight em seu aplicativo. OkTank não deseja gerenciar seus usuários no QuickSight separadamente e deseja proteger os dados com base em qual usuário de qual hospital está acessando seu aplicativo. OkTank protege os dados nos painéis em tempo de execução usando segurança em nível de linha usando tags.
OkTank possui hospitais (North Hospital, South Hospital e Downtown Hospital) nas regiões Central, Leste, Sul e Oeste.
Neste exemplo, os seguintes usuários acessam o aplicativo OkTank e o painel integrado. Cada usuário possui um determinado nível de regras de restrição que definem quais dados eles podem acessar nos dashboards. PowerUser
é um superusuário que pode ver os dados de todos os hospitais e regiões.
Usuário do aplicativo OkTank | hospital | Região |
Usuário Norte | Hospital Norte | Central e Leste |
Administrador do Norte | Hospital Norte | Todas as regiões |
Usuário Sul | Hospital Sul | Sul |
Administrador Sul | Hospital Sul | Todas as regiões |
Usuário avançado | Todos os hospitais | Todas as regiões |
Nenhum desses usuários foi provisionado no QuickSight. O OkTank gerencia esses usuários em seu próprio aplicativo e, portanto, sabe a qual região e hospital cada usuário pertence. Quando qualquer um desses usuários acessa o painel QuickSight integrado no aplicativo, o OkTank deve proteger os dados no painel para que os usuários possam ver apenas os dados de sua região e hospital.
Primeiro, o OkTank criou chaves de tag no conjunto de dados que está usando para alimentar o painel. Em seu UpdateDataset
chamada de API, o RowLevelPermissionTagConfiguration
elemento no conjunto de dados é o seguinte:
Segundo, em tempo de execução ao incorporar o painel por meio do GenerateDashboardEmbedURLForAnonymousUser
API, eles definiram SessionTags
para cada usuário.
SessionTags
para NorthUser
no GenerateDashboardEmbedURLForAnonymousUser
As chamadas de API são as seguintes:
SessionTags
para NorthAdmin
são como segue:
SessionTags
para SouthUser
são como segue:
SessionTags
para SouthAdmin
são como segue:
SessionTags
para PowerUser
são como segue:
A captura de tela a seguir mostra o que SouthUser
vê referente ao Hospital Sul da região Sul.
A captura de tela a seguir mostra o que SouthAdmin
vê pertencentes ao Hospital Sul em todas as regiões.
A captura de tela a seguir mostra o que PowerUser
vê pertencentes a todos os hospitais em todas as regiões.
Com base em tags de sessão, o OkTank protegeu os dados nos painéis integrados de forma que cada usuário veja apenas dados específicos com base em seu acesso. Você pode acessar o painel como um dos usuários (alterando o usuário no menu suspenso no canto superior direito) e veja como os dados mudam com base no usuário selecionado.
No geral, com segurança em nível de linha usando tags, o OkTank é capaz de fornecer uma experiência analítica atraente em seu aplicativo SaaS, ao mesmo tempo em que garante que cada usuário veja apenas os dados apropriados, sem ter que provisionar e gerenciar usuários no QuickSight. O QuickSight oferece uma opção de análise segura e altamente escalonável que você pode configurar e implementar em produção em dias, em vez de semanas ou meses antes.
Conclusão
A combinação de painel incorporado para usuários não provisionados no QuickSight e segurança em nível de linha usando tags permite que desenvolvedores e ISVs configurem de forma rápida e fácil análises sofisticadas e personalizadas para seus usuários de aplicativos, tudo sem qualquer configuração ou gerenciamento de infraestrutura, ao mesmo tempo em que escala para milhões de usuários . Para mais atualizações de Análise incorporada do QuickSight, Ver O que há de novo no Guia do usuário do Amazon QuickSight.
Sobre os autores
Raji Sivasubramaniam é Arquiteto de Soluções Especialista na AWS, com foco em Analytics. Raji tem 20 anos de experiência na arquitetura de soluções completas de gerenciamento de dados empresariais, business intelligence e análise para empresas Fortune 500 e Fortune 100 em todo o mundo. Ela tem profunda experiência em dados e análises integradas de saúde com uma ampla variedade de conjuntos de dados de saúde, incluindo mercado gerenciado, segmentação por médicos e análises de pacientes. Nas horas vagas, Raji gosta de fazer caminhadas, ioga e jardinagem.
Srikanth Baheti é um arquiteto de soluções sênior especializado em todo o mundo para o Amazon QuickSight. Ele começou sua carreira como consultor e trabalhou para várias organizações privadas e governamentais. Mais tarde, trabalhou para a PerkinElmer Health and Sciences & eResearch Technology Inc, onde foi responsável por projetar e desenvolver aplicativos da Web de alto tráfego, pipelines de dados altamente escaláveis e sustentáveis para plataformas de relatórios usando serviços da AWS e computação sem servidor.
Kareem Syed-Mohammed é gerente de produto da Amazon QuickSight. Ele se concentra em análises incorporadas, APIs e experiência do desenvolvedor. Antes do QuickSight, ele trabalhou no AWS Marketplace e no varejo da Amazon como PM. Kareem começou sua carreira como desenvolvedor e depois PM para tecnologias de call center, Local Expert e Ads for Expedia. Ele trabalhou como consultor da McKinsey and Company por um curto período.
- '
- "
- &
- 000
- 100
- 11
- Acesso
- Conta
- Açao Social
- anúncios
- Todos os Produtos
- Amazon
- analítica
- api
- APIs
- app
- Aplicação
- aplicações
- Aplicativos
- autores
- AWS
- construir
- negócio
- inteligência de negócios
- chamada
- Capacidade
- Oportunidades
- código
- Coluna
- Empresas
- Empresa
- computação
- consultor
- Clientes
- painel de instrumentos
- dados,
- gestão de dados
- Developer
- desenvolvedores
- centro da cidade
- colaboradores
- Empreendimento
- vasta experiência
- RÁPIDO
- Característica
- Governo
- Saúde
- saúde
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- caminhadas
- hospital
- hospitais
- Como funciona o dobrador de carta de canal
- HTTPS
- IAM
- Dados de identificação:
- Incluindo
- INFORMAÇÕES
- Infraestrutura
- Inteligência
- interativo
- IT
- Chave
- chaves
- Nível
- local
- Fazendo
- de grupos
- mercado
- marketplace
- Match
- mês
- novo recurso
- Norte
- Operações
- Opção
- Outros
- atuação
- colega
- Plataformas
- Privacidade
- poder
- privado
- Produto
- Produção
- recurso
- Recursos
- resposta
- varejo
- receita
- Rolo
- regras
- SaaS
- dimensionamento
- CIÊNCIAS
- segurança
- vê
- selecionado
- Serverless
- Serviços
- conjunto
- contexto
- Partilhar
- compartilhado
- Baixo
- Locais
- So
- Software
- Soluções
- Sul
- Espaço
- começado
- Declaração
- Status
- Tecnologias
- Equipar
- tempo
- topo
- tráfego
- Atualizações
- usuários
- valor
- web
- Aplicativos da web
- Ocidente
- QUEM
- dentro
- de gestão de documentos
- trabalho
- mundo
- anos
- Ioga