Uso das visualizações do AWS Glue Data Catalog
Esse recurso está em prévia de release e sujeito a alterações. Para obter mais informações, consulte a seção Beta e pré-visualizações no documento de Termos de serviço da AWS |
Use as visualizações do AWS Glue Data Catalog quando desejar uma perspectiva única e comum entre os Serviços da AWS, como o Amazon Athena e o Amazon Redshift. Nas visualizações do Catálogo de Dados, as permissões de acesso são definidas pelo usuário que criou a visualização, e não pelo usuário que consulta a visualização. Esse método de concessão de permissões é chamado de semântica do programador.
Os casos de uso apresentados a seguir mostram como é possível usar as visualizações do Catálogo de Dados.
-
Maior controle de acesso: você cria uma visualização que restringe o acesso aos dados com base no nível de permissões requeridas pelo usuário. Por exemplo, é possível usar as visualizações do Catálogo de Dados para evitar que colaboradores que não trabalham no departamento de recursos humanos (RH) vejam informações de identificação pessoal.
-
Garantia de registros completos: ao aplicar determinados filtros na visualização do Catálogo de Dados, você garante que os registros de dados em uma visualização do Catálogo de Dados estejam sempre completos.
-
Segurança aprimorada: nas visualizações do Catálogo de Dados, a definição de consulta que cria a visualização deve estar intacta para que a visualização seja criada. Isso torna as visualizações do Catálogo de Dados menos suscetíveis a comandos SQL de agentes mal-intencionados.
-
Prevenção do acesso às tabelas subjacentes: a semântica do programador permite que os usuários acessem uma visualização sem disponibilizar a tabela subjacente para eles. Somente o usuário que define a visualização necessita de acesso às tabelas.
As definições de visualização do Catálogo de Dados são armazenadas no AWS Glue Data Catalog. Isso significa que você pode usar o AWS Lake Formation para conceder acesso usando concessões de recursos, concessões de colunas ou controles de acesso baseados em etiquetas. Para obter mais informações sobre como conceder e revogar acesso no Lake Formation, consulte Granting and revoking permissions on Data Catalog resources no Guia do desenvolvedor do AWS Lake Formation.
Permissões
As visualizações do Catálogo de Dados requerem três perfis: Lake Formation Admin
, Definer
e Invoker
.
-
Lake Formation Admin
: tem acesso para configurar todas as permissões do Lake Formation. -
Definer
: cria a visualização do Catálogo de Dados. O perfilDefiner
deve ter permissõesSELECT
completas e concedíveis em todas as tabelas subjacentes às quais a definição de visualização faz referência. -
Invoker
: pode consultar a visualização do Catálogo de Dados ou verificar seus metadados.
As relações de confiança do perfil Definer
devem permitir a ação sts:AssumeRole
para os principais de serviço do AWS Glue e do Lake Formation, como apresentado no exemplo a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
As permissões do IAM para o acesso ao Athena também são necessárias. Para ter mais informações, consulte Politicas gerenciadas pela AWS para o Amazon Athena.
Limitações
-
As visualizações do Catálogo de Dados não podem fazer referência a outras visualizações.
-
É possível fazer referência a até dez tabelas na definição de visualização.
-
As tabelas subjacentes devem estar registradas no Lake Formation.
-
A entidade principal
DEFINER
pode ser somente um perfil do IAM. -
O perfil
DEFINER
deve ter permissõesSELECT
completas (concedíveis) nas tabelas subjacentes. -
Não há suporte para as visualizações
UNPROTECTED
do Catálogo de Dados. -
Não há suporte para as funções definidas pelo usuário (UDFs) na definição de visualização.
-
As fontes de dados federadas do Athena não podem ser usadas em visualizações do Catálogo de Dados.
-
As visualizações do Catálogo de Dados não têm suporte para metastores externos do Hive.
-
O Athena exibe uma mensagem de erro quando detecta visualizações obsoletas. Uma exibição obsoleta é relatada quando um dos seguintes itens ocorrer:
-
A exibição faz referência a tabelas ou bancos de dados que não existem.
-
Uma alteração de esquema ou metadados é feita em uma tabela referenciada.
-
Uma tabela referenciada é descartada e recriada com um esquema ou uma configuração diferente.
-
Criação de uma visualização do Catálogo de Dados
O exemplo de sintaxe apresentado a seguir mostra como um usuário do perfil Definer
cria a visualização orders_by_date
do Catálogo de Dados. O exemplo pressupõe que o perfil Definer
tenha permissões SELECT
completas na tabela orders
no banco de dados default
.
CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate
Consulta de uma visualização do Catálogo de Dados
Depois que a visualização for criada, o Lake Formation
Admin
poderá conceder permissões SELECT
na visualização do Catálogo de Dados para as entidades principais do Invoker
. Em seguida, as entidades principais do Invoker
poderão consultar a visualização sem ter acesso às tabelas subjacentes básicas referenciadas pela visualização. Veja a seguir um exemplo de consulta do Invoker
.
SELECT * from orders_by_date where price > 5000
Atualização de uma visualização do Catálogo de Dados
O Lake Formation Admin
ou o Definer
podem usar a sintaxe ALTER VIEW
UPDATE DIALECT
para atualizar a definição de visualização. O exemplo apresentado a seguir modifica a definição de visualização para selecionar colunas da tabela returns
em vez de usar a tabela orders
.
ALTER VIEW orders_by_date UPDATE DIALECT AS SELECT return_date, sum(totalprice) AS price FROM returns WHERE order_city = 'SEATTLE' GROUP BY orderdate
Para obter mais informações sobre a sintaxe para criar e gerenciar visualizações do Catálogo de Dados, consulte Sintaxe da visualização do Catálogo de Dados do Glue.