

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como proteger os data lakes com controle de acesso em nível de linha
<a name="cbac-tutorial"></a>

AWS Lake Formation as permissões em nível de linha permitem que você forneça acesso a linhas específicas em uma tabela com base nas políticas de governança e conformidade de dados. Se você tem tabelas grandes armazenando bilhões de registros, você precisa de uma forma de permitir que diferentes usuários e equipes acessem somente os dados que eles têm permissão para ver. O controle de acesso em nível de linha é uma maneira simples e eficaz de proteger os dados e, ao mesmo tempo, dar aos usuários acesso aos dados de que precisam para realizar seu trabalho. O Lake Formation fornece relatórios centralizados de auditoria e conformidade, identificando quais entidades principais acessaram quais dados, quando, e por meio de quais serviços.

Neste tutorial, você aprenderá como os controles de acesso em nível de linha funcionam no Lake Formation e como configurá-los.

Este tutorial inclui um AWS CloudFormation modelo para configurar rapidamente os recursos necessários. É possível revisá-lo e personalizá-lo para atender às suas necessidades.

**Topics**
+ [Público-alvo](#tut-cbac-roles-tutorial)
+ [Pré-requisitos](#tut-cbac-prereqs)
+ [Etapa 1: Provisionar os recursos](#set-up-cbac-resources)
+ [Etapa 2: Consulta sem filtros de dados](#query-without-filters)
+ [Etapa 3: Configurar filtros de dados e conceder permissões](#setup-data-filters)
+ [Etapa 4: Consulta com filtros de dados](#query-with-filters)
+ [Etapa 5: limpar AWS os recursos](#cbac-clean-up)

## Público-alvo
<a name="tut-cbac-roles-tutorial"></a>

Este tutorial é destinado a administradores de dados, engenheiros de dados e analistas de dados. A tabela a seguir lista perfis e responsabilidades de um proprietário e um consumidor de dados.


| Perfil | Description | 
| --- | --- | 
| Administrador do IAM | Um usuário que pode criar usuários e perfis e buckets do Amazon Simple Storage Service (Amazon S3). Tem a política AdministratorAccess AWS gerenciada. | 
| Administrador do data lake | Um usuário responsável por configurar o data lake, criar filtros de dados e conceder permissões aos analistas de dados.  | 
| Analista de dados | Um usuário que pode executar consultas no data lake. Analistas de dados residentes em países diferentes (para nosso caso de uso, EUA e Japão) só podem analisar avaliações de produtos de clientes localizados em seus próprios países e, por motivos de conformidade, não devem ser capazes de ver dados de clientes localizados em outros países. | 

## Pré-requisitos
<a name="tut-cbac-prereqs"></a>

Antes de começar este tutorial, você deve ter um Conta da AWS que possa ser usado para entrar como usuário administrativo com as permissões corretas. Para obter mais informações, consulte [Conclua AWS as tarefas de configuração inicial](getting-started-setup.md#initial-aws-signup).

O tutorial pressupõe que você esteja familiarizado com o IAM. Para obter informações sobre o IAM, consulte o [Guia do usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html).

**Alterar as configurações do Lake Formation**
**Importante**  
Antes de iniciar o CloudFormation modelo, desative a opção **Usar somente o controle de acesso do IAM para novos bancos de dados/tabelas** no Lake Formation seguindo as etapas abaixo:

1. Faça login no console do Lake Formation [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)na região Leste dos EUA (Norte da Virgínia) ou Oeste dos EUA (Oregon).

1. Em catálogo de dados, selecione **Configurações**.

1. Desmarque **Usar somente controle de acesso IAM para novos bancos de dados** e **Usar somente controle de acesso IAM para novas tabelas em novos bancos de dados**.

1.  Escolha **Salvar**.

## Etapa 1: Provisionar os recursos
<a name="set-up-cbac-resources"></a>

Este tutorial inclui um CloudFormation modelo para uma configuração rápida. É possível revisá-lo e personalizá-lo para atender às suas necessidades. O CloudFormation modelo gera os seguintes recursos:
+ Usuários e políticas para:
  + DataLakeAdmin
  + DataAnalystEUA
  + DataAnalystJP
+ Configurações e permissões do data lake do Lake Formation
+ Uma função Lambda (para recursos CloudFormation personalizados apoiados pelo Lambda) usada para copiar arquivos de dados de amostra do bucket público do Amazon S3 para o seu bucket do Amazon S3
+ Um bucket do Amazon S3 para servir como Data Lake.
+ Um AWS Glue Data Catalog banco de dados, tabela e partição

**Criar seus recursos**

Siga estas etapas para criar seus recursos usando o CloudFormation modelo.

1. Faça login no CloudFormation console em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) na região Leste dos EUA (Norte da Virgínia).

1. Selecione [Iniciar Pilha](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create?templateURL=https://aws-bigdata-blog.s3.amazonaws.com/artifacts/lakeformation_row_security/lakeformation_tutorial_row_security.yaml).

1. Na página **Criar pilha**, selecione **Avançar**.

1. Digite um **Nome de pilha**.

1. Para **DatalakeAdminUserName**e **DatalakeAdminUserPassword**, insira seu nome de usuário e senha do IAM para o usuário administrador do data lake.

1. Para **DataAnalystUsUserName**e **DataAnalystUsUserPassword**, insira o nome de usuário e a senha do nome de usuário e senha que você deseja para o usuário analista de dados responsável pelo mercado dos EUA.

1. **DataAnalystJpUserPassword**Em **DataAnalystJpUserName**e, insira o nome de usuário e a senha do nome de usuário e senha que você deseja para o usuário analista de dados responsável pelo mercado japonês.

1. Para **DataLakeBucketName**, insira o nome do seu repositório de dados.

1. Para **DatabaseName**e **TableName**deixe como padrão.

1. Selecione **Avançar**.

1. Na página seguinte, selecione **Avançar**.

1. Analise os detalhes na página final e selecione **Eu reconheço que isso CloudFormation pode criar recursos do IAM.**

1. Escolha **Criar**.

   A criação da pilha pode levar um minuto para ser concluída.

## Etapa 2: Consulta sem filtros de dados
<a name="query-without-filters"></a>

Depois que você configurar o ambiente, poderá consultar a tabela de avaliações de produtos. Primeiro, consulte a tabela sem controles de acesso em nível de linha para garantir que você possa ver os dados. Se você estiver executando consultas no Amazon Athena pela primeira vez, precisará configurar a localização do resultado da consulta.

**Consulte a tabela sem controle de acesso em nível de linha**

1. Faça login no Athena console [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)como `DatalakeAdmin` usuário e execute a seguinte consulta:

   ```
   SELECT * 
   FROM lakeformation_tutorial_row_security.amazon_reviews
   LIMIT 10
   ```

   A captura de tela a seguir mostra o resultado da consulta. Essa tabela tem apenas uma partição, `product_category=Video`, portanto, cada registro é um comentário de avaliação de um produto de vídeo.  
![Tabela de resultados da consulta mostrando avaliações de produtos da Amazon com colunas para mercado, ID do cliente, ID da avaliação, detalhes do produto, avaliações e votos.](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/cbac-tut-query-results1.jpg)

1. Em seguida, execute uma consulta de agregação para recuperar o número total de registros por `marketplace`.

   ```
   SELECT marketplace, count(*) as total_count
   FROM lakeformation_tutorial_row_security.amazon_reviews
   GROUP BY marketplace
   ```

   A captura de tela a seguir mostra o resultado da consulta. A coluna `marketplace` tem cinco valores diferentes. Nas etapas subsequentes, você configurará filtros baseados em linhas usando a coluna `marketplace`.  
![Resultados da consulta mostrando a coluna do mercado com cinco valores: FR, UK, JP, DE e US com contagens.](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/cbac-tut-query-results2.jpg)

## Etapa 3: Configurar filtros de dados e conceder permissões
<a name="setup-data-filters"></a>

Este tutorial usa dois analistas de dados: um responsável pelo mercado dos EUA e outro pelo mercado japonês. Cada analista usa o Athena para analisar avaliações de clientes somente para seu mercado específico. Crie dois filtros de dados diferentes, um para o analista responsável pelo mercado dos EUA e outro para o responsável pelo mercado japonês. Em seguida, conceda aos analistas suas respectivas permissões.

**Crie filtros de dados e conceda permissões**

1. Crie um filtro para restringir o acesso aos dados do `marketplace` dos `US`.

   1. Faça login no console do Lake Formation [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)na região Leste dos EUA (Norte da Virgínia) como `DatalakeAdmin` usuário.

   1. Selecione **Filtros de dados**.

   1. Selecione **Criar novo filtro**.

   1. Em **Nome do filtro de dados**, digite `amazon_reviews_US`.

   1. Em **Banco de dados de destino**, selecione o banco de dados `lakeformation_tutorial_row_security`.

   1. Em **Tabela de destino**, selecione a tabela `amazon_reviews`.

   1.  Para **acesso em nível de coluna**, deixe como padrão.

   1. Em **Expressão de filtro de linha**, digite `marketplace='US'`.

   1.  Selecione **Criar filtro**.

1. Crie um filtro para restringir o acesso aos dados japoneses do `marketplace`.

   1. Na página **Filtros de dados**, selecione **Criar novo filtro**.

   1. Em **Nome do filtro de dados**, digite `amazon_reviews_JP`.

   1. Em **Banco de dados de destino**, selecione o banco de dados `lakeformation_tutorial_row_security`.

   1.  Em **Tabela de destino**, selecione o `table amazon_reviews`.

   1. Para **acesso em nível de coluna**, deixe como padrão.

   1. Em Expressão de filtro de linha, digite `marketplace='JP'`.

   1.  Selecione **Criar filtro**.

1. Em seguida, conceda permissões aos analistas de dados usando esses filtros de dados. Siga estas etapas para conceder permissões ao analista de dados dos EUA (`DataAnalystUS`):

   1. Em **Permissões**, escolha **Permissões do Data lake**.

   1. Em **Permissão de dados**, selecione **Conceder**. 

   1. Para **Entidades principais**, selecione **Usuários e perfis do IAM** e selecione o perfil `DataAnalystUS`.

   1.  Em **Tags do LF ou recursos de catálogo**, selecione **Recursos nomeados de catálogo de dados**.

   1. Para o **Banco de dados**, selecione `lakeformation_tutorial_row_security`.

   1.  Para **Tabelas opcionais, selecione** `amazon_reviews`.

   1. Para **Filtros de dados — opcional**, selecione `amazon_reviews_US`.

   1. Para **Permissões de filtro de dados**, marque **Selecionar**.

   1. Selecione **Conceder**.

1. Siga estas etapas para conceder permissões ao analista de dados japonês (`DataAnalystJP`):

   1. Em **Permissões**, escolha **Permissões do Data lake**.

   1. Em **Permissão de dados**, selecione **Conceder**. 

   1. Para **Entidades principais**, selecione **Usuários e perfis do IAM** e selecione o perfil `DataAnalystJP`.

   1.  Em **Tags do LF ou recursos de catálogo**, selecione **Recursos nomeados de catálogo de dados**.

   1. Para o **Banco de dados**, selecione `lakeformation_tutorial_row_security`.

   1.  Para **Tabelas opcionais, selecione** `amazon_reviews`.

   1. Para **Filtros de dados — opcional**, selecione `amazon_reviews_JP`.

   1. Para **Permissões de filtro de dados**, marque **Selecionar**.

   1. Selecione **Conceder**.

## Etapa 4: Consulta com filtros de dados
<a name="query-with-filters"></a>

Com os filtros de dados anexados à tabela de avaliações de produtos, faça algumas consultas e veja como as permissões são aplicadas pelo Lake Formation.

1. Faça login no console do Athena [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)como usuário. `DataAnalystUS`

1. Execute a consulta a seguir para recuperar alguns registros, que são filtrados com base nas permissões em nível de linha que definimos:

   ```
   SELECT * 
   FROM lakeformation_tutorial_row_security.amazon_reviews
   LIMIT 10
   ```

   A captura de tela a seguir mostra o resultado da consulta.  
![Tabela de resultados da consulta mostrando avaliações de produtos da Amazon com colunas para mercado, ID do cliente, ID da avaliação, detalhes do produto e avaliações.](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/cbac-tut-query-results3.png)

1. Da mesma forma, execute uma consulta para contar o número total de registros por loja.

   ```
   SELECT marketplace , count ( * ) as total_count
   FROM lakeformation_tutorial_row_security .amazon_reviews
   GROUP BY marketplace
   ```

   O resultado da consulta mostra apenas o `US` dos `marketplace` nos resultados. Isso ocorre porque o usuário só pode ver as linhas em que o valor da coluna `marketplace` é igual a `US`.

1. Mude para o usuário `DataAnalystJP` e execute a mesma consulta.

   ```
   SELECT * 
   FROM lakeformation_tutorial_row_security.amazon_reviews
   LIMIT 10
   ```

   O resultado da consulta mostra apenas os registros que pertencem ao domínio `JP` `marketplace`.

1. Execute a consulta para contar o número total de registros por `marketplace`.

   ```
   SELECT marketplace, count(*) as total_count
   FROM lakeformation_tutorial_row_security.amazon_reviews
   GROUP BY marketplace
   ```

   O resultado da consulta mostra apenas a linha pertencente ao domínio `JP` `marketplace`.

## Etapa 5: limpar AWS os recursos
<a name="cbac-clean-up"></a>

**Limpar recursos**

Para evitar cobranças indesejadas Conta da AWS, você pode excluir os AWS recursos usados neste tutorial.
+ [Exclua a pilha do Cloud Formation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html).