

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 gerenciar um data lake usando o controle de acesso baseado em tags do Lake Formation
<a name="managing-dl-tutorial"></a>

Milhares de clientes estão criando lagos de dados em escala de petabytes. AWS Muitos desses clientes usam AWS Lake Formation para criar e compartilhar facilmente seus lagos de dados em toda a organização. À medida que o número de tabelas e usuários aumenta, administradores de dados procuram maneiras de gerenciar facilmente as permissões em data lakes em grande escala. O controle de acesso baseado em Lake Formation tags (LF-TBAC) resolve essa questão, permitindo que administradores de dados criem *tags do LF* (com base em sua classificação e ontologia de dados) que podem ser anexadas aos recursos.

O LF-TBAC é uma estratégia de autorização que define permissões com base em atributos. No Lake Formation, esses atributos são chamados de tags do LF. Você pode anexar tags do LF aos recursos do catálogo de dados e às entidades principais do Lake Formation. Administradores do Data Lake podem atribuir e revogar permissões nos recursos do Lake Formation usando tags do LF. Para obter mais informações, consulte [Controle de acesso baseado em tags do Lake Formation](tag-based-access-control.md). 

 Este tutorial demonstra como criar uma política de controle de acesso baseada em tags do Lake Formation usando um conjunto de dados AWS público. Além disso, mostra como consultar tabelas, bancos de dados e colunas que têm políticas de acesso baseadas em tags do Lake Formation associadas a eles. 

Você pode usar o LF-TBAC para os seguintes casos:
+ Você tem um grande número de tabelas e entidades principais às quais o administrador do data lake precisa conceder acesso
+ Você deseja classificar seus dados com base em uma ontologia e conceder permissões com base na classificação
+ O administrador do data lake deseja atribuir permissões dinamicamente, com acoplamento fraco

A seguir estão as etapas de alto nível para configurar as permissões usando o LF-TBAC:

1. O administrador de dados define a ontologia da tag com duas tags do LF: `Confidential` e `Sensitive`. Os dados com `Confidential=True` têm controles de acesso mais rígidos. Os dados com `Sensitive=True` requerem uma análise específica do analista.

1. O administrador de dados atribui diferentes níveis de permissão ao engenheiro de dados para criar tabelas com diferentes tags do LF.

1. O engenheiro de dados cria dois bancos de dados: `tag_database` e `col_tag_database`. Todas as tabelas em `tag_database` são configuradas com `Confidential=True`. Todas as tabelas do `col_tag_database` são configuradas com `Confidential=False`. Algumas colunas da tabela `col_tag_database` estão marcadas com `Sensitive=True` para necessidades específicas de análise.

1. O engenheiro de dados concede permissão de leitura ao analista para tabelas com condições de expressão específicas `Confidential=True` e `Confidential=False`, `Sensitive=True`. 

1. Com essa configuração, o analista de dados pode se concentrar em realizar análises com os dados certos.

**Topics**
+ [Público-alvo](#tut-manage-dl-roles)
+ [Pré-requisitos](#tut-manage-dl-prereqs)
+ [Etapa 1: Provisionar os recursos](#tut-manage-dl-provision-resources)
+ [Etapa 2: registrar sua localização de dados, criar uma ontologia da tag do LF e conceder permissões](#tut-manage-dl-register-datalocation-lftag)
+ [Etapa 3: Criar bancos de dados do Lake Formation](#tut-manage-dl-tbac-create-databases)
+ [Etapa 4: Conceder permissões de dados](#tut-manage-dl-grant-table-permissions)
+ [Etapa 5: Executar uma consulta no Amazon Athena para verificar as permissões](#tut-manage-dl-tbac-run-query)
+ [Etapa 6: limpar AWS os recursos](#tut-manage-dl-tbac-clean-up-db)

## Público-alvo
<a name="tut-manage-dl-roles"></a>



Este tutorial é destinado a administradores de dados, engenheiros de dados e analistas de dados. Quando se trata de gerenciar AWS Glue Data Catalog e administrar permissões no Lake Formation, os administradores de dados nas contas produtoras têm propriedade funcional com base nas funções que suportam e podem conceder acesso a vários consumidores, organizações externas e contas.

A tabela a seguir lista os perfis usados neste tutorial:


| Perfil | Description | 
| --- | --- | 
| Administrador de dados (administrador) | O usuário lf-data-steward tem o seguinte acesso: [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/managing-dl-tutorial.html)  | 
| Engenheiro de dados | O usuário `lf-data-engineer` tem o seguinte acesso: [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/managing-dl-tutorial.html) | 
| Analista de dados | O usuário lf-data-analyst tem o seguinte acesso: [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/managing-dl-tutorial.html)  | 

## Pré-requisitos
<a name="tut-manage-dl-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).

## Etapa 1: Provisionar os recursos
<a name="tut-manage-dl-provision-resources"></a>

Este tutorial inclui um AWS CloudFormation modelo para uma configuração rápida. É possível revisá-lo e personalizá-lo para atender às suas necessidades. O modelo cria três funções diferentes (listadas em[Público-alvo](#tut-manage-dl-roles)) para realizar esse exercício e copia o nyc-taxi-data conjunto de dados para seu bucket local do Amazon S3.
+ Um bucket Amazon S3
+ Configurações apropriadas do Lake Formation
+ Recursos apropriados do Amazon EC2
+ Três perfis do IAM com credenciais

**Criar seus recursos**

1. Faça login no AWS 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/new?templateURL=https://aws-bigdata-blog.s3.amazonaws.com/artifacts/lakeformationtbac/cfn/tbac_permission.json).

1.  Escolha **Próximo**.

1.  Na seção **Configuração do usuário**, digite a senha para três perfis: `DataStewardUserPassword`, `DataEngineerUserPassword` e `DataAnalystUserPassword`. 

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

1.  Escolha **Criar**.

   A criação da pilha pode levar até cinco minutos.

**nota**  
Depois de concluir o tutorial, talvez você queira excluir a pilha CloudFormation para evitar que continuem incorrendo em cobranças. Verifique se os recursos foram excluídos com sucesso no status de eventos da pilha.

## Etapa 2: registrar sua localização de dados, criar uma ontologia da tag do LF e conceder permissões
<a name="tut-manage-dl-register-datalocation-lftag"></a>

Nesta etapa, o usuário administrador de dados define a ontologia de tags com duas tags do LF (`Confidential` e `Sensitive`) e possibilita que entidades principais específicas do IAM anexem tags do LF recém-criadas aos recursos.

**Registre uma localização de dados e defina a ontologia da tag do LF**

1. Execute a primeira etapa como usuário administrador de dados (`lf-data-steward`) para verificar os dados no Amazon S3 e no catálogo de dados no Lake Formation.

   1. Faça login no console do Lake Formation da [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)mesma forma que `lf-data-steward` com a senha usada ao implantar a CloudFormation pilha.

   1. No painel de navegação, em **Permissões**, selecione **Perfis e tarefas administrativas**.

   1. Na seção **Administradores do data lake**, selecione **Adicionar**.

   1. Na página **Adicionar administrador**, em **Usuários e perfis do IAM**, escolha o usuário `lf-data-steward`.

   1. selecione **Salvar** para adicionar `lf-data-steward` como administrador do Lake Formation.

1. Em seguida, atualize as configurações do catálogo de dados para usar a permissão do Lake Formation para controlar os recursos do catálogo em vez do controle de acesso baseado no IAM.

   1. No painel de navegação, em **Administração**, selecione **Configurações do catálogo de dados**.

   1. Desmarque **Usar somente o controle de acesso do IAM para novos bancos de dados**.

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

   1. Clique em **Salvar**. 

1. Em seguida, registre o local dos dados para o data lake.

   1. No painel de navegação, em **Administração** em **Locais de data lake**.

   1. Selecione **Registrar local**.

   1. Na página **Registrar localização**, em **Caminho do Amazon S3**, insira `s3://lf-tagbased-demo-{{Account-ID}}`.

   1. Para o **Perfil do IAM**, deixe o valor padrão `AWSServiceRoleForLakeFormationDataAccess` como está.

   1. Escolha **Lake Formation** como o modo de permissão.

   1. Selecione **Registrar local**.

1. Em seguida, crie a ontologia definindo uma tag do LF.

   1. No painel de navegação, em **Permissões**, selecione **Tags do LF e permissões**.

   1. Selecione **Adicionar tag do LF**.

   1. Em **Chave**, digite `Confidential`.

   1. Para **Valores**, adicione `True` e `False`.

   1. Selecione **Adicionar tag do LF**.

   1. Repita as etapas para criar a **tag do LF** `Sensitive` com o valor `True`.

   Você criou todas as tags do LF necessárias para este exercício.

**Conceda permissões a usuários do IAM**

1. Em seguida, forneça às entidades principais específicas do IAM a capacidade de anexar tags do LF recém-criadas aos recursos.

   1. No painel de navegação, em **Permissões**, selecione **Tags do LF e permissões**.

   1. Na seção **Permissões da tag do LF**, escolha **Conceder permissões**.

   1. Em **Tipo de permissão**, escolha **Permissões do par de chave-valor da tag do LF**.

   1. Selecione **Usuários e perfis do IAM**.

   1. Para **Usuários e perfis do IAM**, pesquise e selecione o perfil `lf-data-engineer`.

   1. Na seção **Tags do LF**, adicione a chave `Confidential` com valores `True` e `False`, e a `key` `Sensitive` com valor `True`.

   1. Em **Permissões**, selecione **Descrever** e **Associar** para **Permissões** e **Permissões concedíveis**.

   1. Selecione **Conceder**.

1. Em seguida, conceda permissões `lf-data-engineer` para criar bancos de dados em nosso catálogo de dados e no bucket subjacente do Amazon S3 criado por. AWS CloudFormation

   1. No painel de navegação, em **Administração**, selecione **Perfis e tarefas administrativas**.

   1.  Na seção **Criadores de banco de dados**, selecione **Conceder**.

   1. Para **Usuários e perfis do IAM**, selecione o perfil `lf-data-engineer`.

   1. Para **Permissões de catálogo**, selecione **Criar banco de dados**.

   1. Selecione **Conceder**.

1. Em seguida, conceda permissões no bucket do Amazon S3 do `(s3://lf-tagbased-demo-{{Account-ID}})` ao usuário `lf-data-engineer`.

   1. No painel de navegação, em **Permissões**, selecione **Locais de dados**.

   1. Selecione **Conceder**.

   1. Selecione **Minha conta**.

   1. Para **Usuários e perfis do IAM**, selecione o perfil `lf-data-engineer`.

   1. Para **locais de armazenamento**, insira o bucket do Amazon S3 criado pelo CloudFormation modelo. `(s3://lf-tagbased-demo-{{Account-ID}})`

   1. Selecione **Conceder**.

1. Em seguida, conceda permissões concedíveis `lf-data-engineer` aos recursos associados à expressão `Confidential=True` da **tag do LF**.

   1. No painel de navegação, em **Permissões**, escolha **Permissões do data lake**.

   1. Selecione **Conceder**.

   1. Selecione **Usuários e perfis do IAM**.

   1.  Selecione o perfil de `lf-data-engineer`.

   1. Na seção **Tag do LF ou recursos do catálogo**, selecione **Recursos correspondentes às tags do LF**.

   1. Escolha **Adicionar par de chave-valor da tag do LF**.

   1.  Adicione a chave `Confidential` com os valores `True`.

   1. Na seção **Permissões do banco de dados**, selecione **Descrever** em **Permissões de banco de dados** e **Permissões concedíveis**. 

   1. Na seção **Permissões de tabela**, selecione **Descrever**, **Selecionar** e **Alterar** para as **Permissões de tabela** e as **Permissões concedíveis**. 

   1.  Selecione **Conceder**.

1. Em seguida, conceda as permissões concedíveis `lf-data-engineer` aos recursos associados à expressão `Confidential=False` da tag do LF.

   1. No painel de navegação, em **Permissões**, escolha **Permissões do data lake**.

   1. Selecione **Conceder**.

   1. Selecione **Usuários e perfis do IAM**.

   1. Selecione o perfil de `lf-data-engineer`.

   1.  Selecione **Recursos correspondentes às tags do LF**.

   1. Selecione **Adicionar tag do LF**.

   1.  Adicione a chave `Confidential` com o valor `False`.

   1. Na seção **Permissões do banco de dados**, selecione **Descrever** em **Permissões de banco de dados** e **Permissões concedíveis**.

   1. Na seção **Permissões de tabela e coluna**, não selecione nada.

   1. Selecione **Conceder**.

1. Em seguida, damos permissões concedíveis `lf-data-engineer` aos recursos associados aos pares de chave-valor `Confidential=False` e `Sensitive=True` da **tag do LF**.

   1. No painel de navegação, em **Permissões**, escolha **Permissões de dados**. 

   1. Selecione **Conceder**.

   1. Selecione **Usuários e perfis do IAM**.

   1. Selecione o perfil de `lf-data-engineer`.

   1. Na seção **Tags do LF ou recursos do catálogo**, selecione **Recursos correspondentes às tags do LF**.

   1. Selecione **Adicionar tag do LF**.

   1.  Adicione a chave `Confidential` com o valor `False`.

   1. Escolha **Adicionar par de chave-valor da tag do LF**.

   1. Adicione a chave `Sensitive` com o valor `True`.

   1. Na seção **Permissões do banco de dados**, selecione **Descrever** em **Permissões de banco de dados** e **Permissões concedíveis**.

   1. Na seção **Permissões de tabela**, selecione **Descrever**, **Selecionar** e **Alterar** para as **Permissões de tabela** e as **Permissões concedíveis**.

   1. Selecione **Conceder**.

## Etapa 3: Criar bancos de dados do Lake Formation
<a name="tut-manage-dl-tbac-create-databases"></a>

Nesta etapa, você cria dois bancos de dados e anexa tags do LF aos bancos de dados e às colunas específicas para fins de teste.

**Crie seus bancos de dados e sua tabela para acesso em nível de banco de dados**

1. Primeiro, crie o banco de dados `tag_database` e a tabela `source_data` e anexe as tags do LF apropriadas.

   1. No console do Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)), em **Catálogo de dados**, escolha **Bancos de dados**. 

   1. Selecione **Criar banco de dados**.

   1. Em **Nome**, digite `tag_database`.

   1. Em **Localização**, insira a localização do Amazon S3 criada pelo CloudFormation modelo. `(s3://lf-tagbased-demo-{{Account-ID}}/tag_database/)`

   1. Desmarque **Usar somente controle de acesso do IAM para novas tabelas nesse banco de dados**.

   1. Selecione **Criar banco de dados**.

1. Em seguida, crie uma nova tabela dentro dela com `tag_database`.

   1. Na página **Bancos de dados**, selecione o banco de dados `tag_database`.

   1.  Selecione **Exibir tabelas** e clique em **Criar tabela**.

   1. Em **Nome**, digite `source_data`.

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

   1. Em **Formato de tabela**, escolha ** AWS Glue Tabela padrão**.

   1. Em **Dados localizados em**, selecione **Caminho especificado em minha conta**.

   1. Em Incluir caminho, insira o caminho a ser `tag_database` criado pelo CloudFormation modelo`(s3://lf-tagbased-demo{{Account-ID}}/tag_database/)`.

   1. Em **Formato de dados**, selecione **CSV**.

   1. Em **Esquema de upload**, digite a seguinte matriz JSON da estrutura da coluna para criar um esquema:

      ```
       [
                     {
                          "Name": "vendorid",
                          "Type": "string"
                     },
                     {
                          "Name": "lpep_pickup_datetime",
                          "Type": "string"                    
                     },
                     {
                          "Name": "lpep_dropoff_datetime",
                          "Type": "string"  
                    
                     },
                        {
                          "Name": "store_and_fwd_flag",
                          "Type": "string"                                
                     },
                        {
                          "Name": "ratecodeid",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "pulocationid",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "dolocationid",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "passenger_count",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "trip_distance",
                          "Type": "string"                    
                          
                     }, 
                        {
                          "Name": "fare_amount",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "extra",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "mta_tax",
                          "Type": "string"                    
                          
                     },
                     {
                          "Name": "tip_amount",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "tolls_amount",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "ehail_fee",
                          "Type": "string"                    
                          
                     }, 
                     {
                          "Name": "improvement_surcharge",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "total_amount",
                          "Type": "string"                    
                          
                     },
                     {
                          "Name": "payment_type",
                          "Type": "string"                    
                          
                     }
       ]
      ```

   1. Selecione **Carregar**. Após fazer o upload do esquema, o esquema da tabela deve ter a aparência da seguinte captura de tela:  
![Esquema de tabela com 18 colunas, incluindo ID do fornecedor, data e hora de coleta e entrega, localização IDs e detalhes da tarifa, todos os tipos de dados de string.](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/tutorial-manage-dl-tbac1.jpg)

   1. Selecione **Enviar**.

1. Em seguida, anexe as tags do LF no nível do banco de dados.

   1. Na página **Bancos de dados**, localize e selecione `tag_database`. 

   1. No menu **Ações**, selecione **Editar tags do LF**.

   1. Escolha **Atribuir nova tag do LF**.

   1. Em **Chaves atribuídas**, selecione a tag do LF `Confidential` que você criou anteriormente.

   1. Em **Valores**, selecione `True`.

   1. Selecione **Salvar**.

   Isso conclui a atribuição de tags do LF ao banco de dados tag\_database.

**Crie seu banco de dados e tabela para acesso em nível de coluna**

Repita as etapas a seguir para criar o banco de dados `col_tag_database` e a tabela `source_data_col_lvl` e anexar tags do LF no nível da coluna. 

1. Na página **Bancos de dados**, selecione **Criar banco de dados**.

1. Em **Nome**, digite `col_tag_database`.

1. Em **Localização**, insira a localização do Amazon S3 criada pelo CloudFormation modelo. `(s3://lf-tagbased-demo-{{Account-ID}}/col_tag_database/)`

1. Desmarque **Usar somente controle de acesso do IAM para novas tabelas nesse banco de dados**.

1. Selecione **Criar banco de dados**.

1. Na página **Bancos de dados**, selecione seu novo banco de dados `(col_tag_database)`. 

1. Selecione **Visualizar tabelas** e clique em **Criar tabela**.

1. Em **Nome**, digite `source_data_col_lvl`.

1. Em **Banco de dados**, selecione seu novo banco de dados `(col_tag_database)`.

1. Em **Formato de tabela**, escolha ** AWS Glue Tabela padrão**.

1. Em **Dados localizados em**, selecione **Caminho especificado em minha conta**.

1. Digite o caminho do Amazon S3 para `col_tag_database` `(s3://lf-tagbased-demo-{{Account-ID}}/col_tag_database/)`.

1. Em **Formato de dados**, selecione `CSV`.

1. Em `Upload schema`, digite o seguinte esquema JSON: 

   ```
   [
                  {
                       "Name": "vendorid",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "lpep_pickup_datetime",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "lpep_dropoff_datetime",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "store_and_fwd_flag",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "ratecodeid",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "pulocationid",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "dolocationid",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "passenger_count",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "trip_distance",
                       "Type": "string"
                       
                       
                  }, 
                     {
                       "Name": "fare_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "extra",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "mta_tax",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "tip_amount",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "tolls_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "ehail_fee",
                       "Type": "string"
                       
                       
                  }, 
                  {
                       "Name": "improvement_surcharge",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "total_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "payment_type",
                       "Type": "string"
                       
                       
                  }
   ]
   ```

1. Selecione `Upload`. Após fazer o upload do esquema, o esquema da tabela deve ter a aparência da seguinte captura de tela.  
![Esquema de tabela com 18 colunas, incluindo ID do fornecedor, data e hora de coleta e entrega e valores de tarifas.](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/tutorial-manage-dl-tbac2.jpg)

1. Selecione **Enviar** para concluir a criação da tabela.

1. Agora associe a tag do LF `Sensitive=True` às colunas `vendorid` e `fare_amount`.

   1. Na página **Tabelas**, selecione a tabela que você criou `(source_data_col_lvl)`.

   1. No menu **Ações**, selecione **Esquema**.

   1. Selecione a coluna `vendorid` e escolha **Editar tags do LF**.

   1. Em **Chaves atribuídas**, selecione **Sensível**.

   1.  Em **Valores**, selecione **True**.

   1. Escolha **Salvar**.

1. Em seguida, associe a tag do LF `Confidential=False` ao `col_tag_database`. Isso é necessário `lf-data-analyst` para poder descrever o banco de dados `col_tag_database` quando conectado. Amazon Athena

   1. Na página **Bancos de dados**, localize e selecione `col_tag_database`.

   1. No menu **Ações**, selecione **Editar tags do LF**.

   1. Escolha Atribuir nova **tag do LF**.

   1. Em **Chaves atribuídas**, selecione a tag do LF `Confidential` que você criou anteriormente.

   1. Em **Valores**, selecione `False`.

   1. Escolha **Salvar**.

## Etapa 4: Conceder permissões de dados
<a name="tut-manage-dl-grant-table-permissions"></a>

Conceda permissões aos analistas de dados para o consumo dos bancos de dados `tag_database` e da tabela `col_tag_database` usando as tags do LF `Confidential` e `Sensitive`.

1. Siga estas etapas para conceder permissões ao usuário `lf-data-analyst` nos objetos associados à tag do LF `Confidential=True` (Database:tag\_database) para ter a permissão `Describe` no banco de dados e `Select` nas tabelas.

   1. Faça login no console do Lake Formation em [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)como`lf-data-engineer`.

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

   1. Selecione **Conceder**.

   1. Em **Entidades principais**, selecione **Usuários e perfis do IAM**.

   1. Para **Usuários e perfis do IAM**, selecione `lf-data-analyst`.

   1. Em **Tags do LF ou recursos do catálogo**, selecione **Recursos correspondentes às tags do LF**.

   1. Selecione **Adicionar tag do LF**.

   1. Para **Chave**, selecione `Confidential`.

   1. Em **Valores**, selecione `True`.

   1. Para **Permissões de banco de dados**, selecione `Describe`.

   1. Para **Permissões de tabela**, clique em **Selecionar** e **Descrever**. 

   1. Selecione **Conceder**.

1. Em seguida, repita as etapas para conceder permissões aos analistas de dados referentes à expressão da tag do LF para `Confidential=False`. Essa **tag do LF** é usada para descrever o `col_tag_database` e a tabela `source_data_col_lvl` quando conectada como `lf-data-analyst` no Amazon Athena. 

   1. Faça login no console do Lake Formation em [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)como`lf-data-engineer`.

   1. Na página **Bancos de dados**, selecione o banco de dados `col_tag_database`.

   1. Selecione **Ações** e **Concessão**.

   1. Em **Entidades principais**, selecione **Usuários e perfis do IAM**.

   1. Para **Usuários e perfis do IAM**, selecione `lf-data-analyst`.

   1. Selecione **Recursos correspondentes às tags do LF**.

   1. Selecione **Adicionar tag do LF**.

   1. Para **Chave**, selecione `Confidential`.

   1.  Para **Valores**, selecione `False`.

   1. Para **Permissões de banco de dados**, selecione `Describe`.

   1. Para **Permissões de tabela**, não selecione nada. 

   1. Selecione **Conceder**.

1. Em seguida, repita as etapas para conceder permissões aos analistas de dados referentes à expressão da tag do LF para `Confidential=False` e `Sensitive=True`. Essa tag do LF é usada para descrever o `col_tag_database` e a tabela `source_data_col_lvl` (em nível de coluna) quando conectada como `lf-data-analyst` no Amazon Athena.

   1. Faça login no console do Lake Formation em [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)`lf-data-engineer`.

   1. Na página Bancos de dados, selecione o banco de dados `col_tag_database`.

   1. Selecione **Ações** e **Concessão**.

   1. Em **Entidades principais**, selecione **Usuários e perfis do IAM**.

   1.  Para **Usuários e perfis do IAM**, selecione `lf-data-analyst`.

   1. Selecione **Recursos correspondentes às tags do LF**.

   1. Selecione **Adicionar tag do LF**.

   1. Para **Chave**, selecione `Confidential`.

   1. Para **Valores**, selecione `False`.

   1. Selecione **Adicionar tag do LF**.

   1. Para **Chave**, selecione `Sensitive`.

   1. Para **Valores**, selecione `True`.

   1. Para **Permissões de banco de dados**, selecione `Describe`.

   1. Para **Permissões de tabela**, selecione `Select` e `Describe`.

   1. Selecione **Conceder**.

## Etapa 5: Executar uma consulta no Amazon Athena para verificar as permissões
<a name="tut-manage-dl-tbac-run-query"></a>

Para essa etapa, use o Amazon Athena para executar consultas `SELECT` nas duas tabelas `(source_data and source_data_col_lvl)`. Use o caminho do Amazon S3 como o local do resultado da consulta `(s3://lf-tagbased-demo-{{Account-ID}}/athena-results/)`.

1. Faça login no console Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home). `lf-data-analyst`

1. No editor de consultas do Athena, selecione `tag_database` no painel esquerdo.

1. Selecione o ícone de opções de menu adicionais (três pontos verticais) ao lado de `source_data` e selecione **Exibir tabela**.

1. Selecione **Executar consulta**.

   A consulta deve levar alguns minutos para ser executada. A consulta exibe todas as colunas na saída porque a tag do LF está associada no nível do banco de dados e a tabela `source_data` a herdou automaticamente `LF-tag` do banco de dados `tag_database`.

1. Execute outra consulta usando `col_tag_database` e `source_data_col_lvl`.

   A segunda consulta retorna as duas colunas que foram marcadas como `Non-Confidential` e `Sensitive`.

1. Você também pode verificar o comportamento da política de acesso baseada em tags do Lake Formation em colunas para as quais você não tem concessões de políticas. Quando uma coluna não marcada é selecionada na tabela `source_data_col_lvl`, o Athena retorna um erro. Por exemplo, você pode executar a seguinte consulta para escolher colunas não marcadas `geolocationid`:

   ```
   SELECT geolocationid FROM "col_tag_database"."source_data_col_lvl" limit 10;
   ```

## Etapa 6: limpar AWS os recursos
<a name="tut-manage-dl-tbac-clean-up-db"></a>

Para evitar cobranças indesejadas Conta da AWS, você pode excluir os AWS recursos usados neste tutorial.

1. Faça login no console do Lake Formation como `lf-data-engineer` e exclua os bancos de dados `tag_database` e `col_tag_database`.

1. Em seguida, faça login como `lf-data-steward` e limpe todas as permissões de **tags do LF**, **Permissões de dados** e **Permissões de localização de dados** que foram concedidas acima e que foram concedidas a `lf-data-engineer` e `lf-data-analyst.`.

1. Faça login no console do Amazon S3 como proprietário da conta usando as credenciais do IAM que você usou para implantar a pilha. CloudFormation 

1. Exclua os seguintes buckets:
   + lf-tagbased-demo-accesslogs-{{acct-id}}
   + lf-tagbased-demo-{{acct-id}}

1. Faça login no CloudFormation console em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) e exclua a pilha que você criou. Aguarde até que o status da pilha mude para `DELETE_COMPLETE`.