

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 compartilhar um data lake usando o controle de acesso refinado do Lake Formation
<a name="share-dl-fgac-tutorial"></a>

Este tutorial fornece step-by-step instruções sobre como você pode compartilhar conjuntos de dados de forma rápida e fácil usando o Lake Formation ao gerenciar vários Contas da AWS com AWS Organizations. Você define permissões específicas para controlar o acesso a dados confidenciais.

Os procedimentos a seguir também mostram como um administrador de data lake da Conta A pode fornecer acesso refinado à Conta B, e como um usuário na Conta B, atuando como administrador de dados, pode conceder acesso refinado à tabela compartilhada para outros usuários em suas contas. Os administradores de dados em cada conta podem delegar o acesso de forma independente a seus próprios usuários, dando autonomia a cada equipe ou linha de negócios (LOB).

O caso de uso pressupõe que você esteja usando AWS Organizations para gerenciar seu Contas da AWS. O usuário da Conta A em uma unidade organizacional (OU1) concede acesso aos usuários da Conta B em OU2. Você pode usar a mesma abordagem quando não estiver usando organizações, como quando você tem apenas algumas contas. O diagrama a seguir ilustra o controle de acesso refinado de conjuntos de dados em um data lake. O data lake está disponível na Conta A. O administrador do data lake da Conta A fornece acesso refinado à Conta B. O diagrama também mostra que um usuário da Conta B fornece acesso em nível de coluna à tabela de data lake da Conta A para outro usuário na Conta B.

![AWS Organização com duas contas mostrando acesso ao data lake dos usuários da Conta A para a Conta B.](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/tutorial-fine-grained-access1.jpg)


**Topics**
+ [Público-alvo](#tut-share-fine-grained-roles)
+ [Pré-requisitos](#tut-share-fine-grained-prereqs)
+ [Etapa 1: Forneça acesso refinado a outra conta](#tut-fgac-another-account)
+ [Etapa 2: Forneça acesso refinado a um usuário na mesma conta](#tut-fgac-same-account)

## Público-alvo
<a name="tut-share-fine-grained-roles"></a>



Este tutorial é destinado a administradores de dados, engenheiros de dados e analistas de dados. A tabela a seguir lista os perfis usados neste tutorial:


| Perfil | Description | 
| --- | --- | 
| Administrador do IAM | Usuário que tem a política gerenciada pela AWS : AdministratorAccess.  | 
| Administrador do data lake | Usuário que tem a política AWS `AWSLakeFormationDataAdmin` gerenciada: anexado à função. | 
| Analista de dados | Usuário que tem a política AWS gerenciada: AmazonAthenaFullAccess anexado. | 

## Pré-requisitos
<a name="tut-share-fine-grained-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).

**Você precisa dos seguintes recursos para este tutorial:**
+ Duas unidades organizacionais:
  + OU1 — Contém a conta A
  + OU2 — Contém a conta B
+ Um local (bucket) do data lake do Amazon S3 na Conta A.
+ Um usuário administrador de data lake na Conta A. Você pode criar um administrador de data lake usando o console Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) ou a `PutDataLakeSettings` operação da API Lake Formation.
+ Lake Formation configurado na Conta A e o local do data lake do Amazon S3 registrada com o Lake Formation na Conta A.
+ Dois usuários na Conta B com as seguintes políticas gerenciadas pelo IAM:
  +  testuser1 — tem as políticas AWS `AWSLakeFormationDataAdmin` gerenciadas anexadas.
  +  testuser2 — Tem a política AWS `AmazonAthenaFullAccess` gerenciada anexada.
+ Um banco de dados testdb no banco de dados Lake Formation para a Conta B.

## Etapa 1: Forneça acesso refinado a outra conta
<a name="tut-fgac-another-account"></a>

Saiba como um administrador de data lake da Conta A fornece acesso refinado à Conta B.

**Conceda acesso refinado a outra conta**

1. Faça login Console de gerenciamento da AWS [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)na Conta A como administrador do data lake.

1. Abra o console do Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) e escolha **Começar**.

1. No painel de navegação, escolha **Bancos de dados**.

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

1. Na seção informações do **Banco de dados**, selecione **Banco de dados**.

1. Em **Nome**, digite um nome (para este tutorial, usamos `sampledb01`).

1. Certifique-se de que a opção **Usar somente o controle de acesso do IAM para novas tabelas nesse banco de dados** não esteja selecionada. Deixar essa opção desmarcada nos permite controlar o acesso a partir do Lake Formation.

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

1. Na página **Bancos de dados**, selecione seu banco de dados `sampledb01`.

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

1. Na seção **Conceder permissões**, selecione **Conta externa**.

1. Para Conta da AWS ID ou ID AWS da organização, insira o ID da conta da Conta B em OU2.

1. Em **Tabela**, selecione a tabela à qual você deseja que a Conta B tenha acesso (neste caso, usamos a tabela `acc_a_area`). Opcionalmente, você pode conceder acesso às colunas dentro da tabela, o que fazemos neste caso.

1. Em **Incluir colunas**, selecione as colunas às quais você deseja que a Conta B tenha acesso (para este caso, concedemos permissões para digitar, nomear e identificadores).

1. Em **Colunas**, selecione **Incluir colunas**.

1. Em **Permissões de tabela**, selecione **Selecionar**.

1. Para **Permissões concedidas**, marque **Selecionar**. As permissões concedidas são necessárias para que os usuários administradores na Conta B possam conceder permissões a outros usuários na Conta B.

1. Selecione **Conceder**.

1. No painel de navegação, selecione **Tabelas**.

1. Você pode ver uma conexão ativa na seção Contas da AWS e AWS organizações com acesso.

**Crie um link de recurso**

Serviços integrados, como o Amazon Athena, não podem acessar diretamente bancos de dados ou tabelas entre contas. Portanto, você precisa criar um link de recurso para que o Athena possa acessar links de recursos em sua conta para bancos de dados e tabelas em outras contas. Crie um link de recurso para a tabela (`acc_a_area`) para que os usuários da Conta B possam consultar seus dados com o Athena.

1. Faça login no AWS console [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)na Conta B como`testuser1`.

1. No console do Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)), no painel de navegação, escolha **Tabelas**. Você deve ver as tabelas às quais a Conta A forneceu acesso.

1. Selecione a tabela `acc_a_area`.

1. No menu **Ações**, selecione **Criar link de recurso**.

1. Em **Nome do link do recurso**, digite um nome (para este tutorial, `acc_a_area_rl`).

1. Em **Banco de dados**, selecione o banco de dados (`testdb`).

1. Escolha **Criar**.

1. No painel de navegação, selecione **Tabelas**.

1. Selecione a tabela `acc_b_area_rl`.

1. No menu **Ações**, selecione **Exibir dados**.

   Você será redirecionado para o console do Athena, onde deverá ver o banco de dados e a tabela.

   Agora você pode executar uma consulta na tabela para ver o valor da coluna para o qual o acesso foi fornecido ao testuser1 da Conta B.

## Etapa 2: Forneça acesso refinado a um usuário na mesma conta
<a name="tut-fgac-same-account"></a>

Esta seção mostra como um usuário na Conta B (`testuser1`), atuando como administrador de dados, fornece acesso refinado a outro usuário na mesma conta (`testuser2`) ao nome da coluna na tabela compartilhada `aac_b_area_rl`.

**Conceda acesso refinado a um usuário na mesma conta**

1. Faça login no AWS console [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)na Conta B como`testuser1`.

1. No console do Lake Formation, no painel de navegação, selecione **Tabelas**.

   É possível conceder permissões em uma tabela por meio do link do recurso. Para fazer isso, na página **Tabelas**, selecione o link do recurso `acc_b_area_rl`, e no menu **Ações**, selecione **Conceder no destino**.

1. Na seção **Conceder permissões**, selecione **Minha conta**.

1.  Para **Usuários e perfis do IAM**, selecione o usuário `testuser2`.

1. Em **Coluna**, escolha o nome da coluna.

1. Em **Permissões de tabela**, selecione **Selecionar**.

1. Selecione **Conceder**.

   Após criar um link de recurso, somente você poderá visualizá-lo e acessá-lo. Para permitir que outros usuários da sua conta acessem o link do recurso, você precisa conceder permissões no próprio link do recurso. Você precisa conceder as permissões **Descrever** ou **Descartar**. Na página **Tabelas**, selecione sua tabela novamente e, no menu **Ações**, selecione **Conceder**.

1. Na seção **Conceder permissões**, selecione **Minha conta**.

1. Para **Usuários e perfis do IAM**, selecione o usuário `testuser2`.

1. Para **permissões de links de recursos**, selecione **Descrever**.

1. Selecione **Conceder**.

1. Faça login no AWS console na Conta B como`testuser2`.

   No console do Athena ([https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)), você deve ver o banco de dados e a tabela. `acc_b_area_rl` Agora você pode executar uma consulta na tabela para ver o valor da coluna que `testuser2` tem acesso.