

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á.

# Gerenciamento de permissões em conjuntos de dados que usam repositórios de dados externos
<a name="data-sharing-hms"></a>

Com a federação de AWS Glue Data Catalog metadados (federação do catálogo de dados), você pode conectar o catálogo de dados a metastores externos que armazenam metadados para seus dados do Amazon S3 e gerenciar com segurança as permissões de acesso aos dados usando. AWS Lake Formation Você não precisa migrar os metadados do repositório externo para o catálogo de dados.

O Catálogo de Dados oferece um repositório centralizado de metadados que facilita o gerenciamento e a descoberta de dados em sistemas diferentes. Quando sua organização gerencia dados no catálogo de dados, você pode usar AWS Lake Formation para controlar o acesso aos seus conjuntos de dados no Amazon S3.

**nota**  
Atualmente, oferecemos suporte somente à federação de repositórios do Apache Hive (versão 3 e superior).

Para configurar a federação do Catálogo de Dados, fornecemos um aplicativo AWS Serverless Application Model (AWS SAM) chamado [GlueDataCatalogFederation- HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) no AWS Serverless Application Repository. 

A implementação de referência é fornecida GitHub como um projeto de código aberto na [AWS Glue Data Catalog Federation - Hive Metastore](https://github.com/awslabs/aws-glue-data-catalog-federation).

O AWS SAM aplicativo cria e implanta os seguintes recursos que são necessários para conectar o Catálogo de Dados ao metastore do Hive:
+ **Uma AWS Lambda função** — Hospeda a implementação do serviço de federação que se comunica entre o Catálogo de Dados e o metastore do Hive. AWS Glue invoca essa função Lambda para recuperar objetos de metadados do metastore Hive.
+ **Amazon API Gateway** — O endpoint de conexão do seu repositório do Hive que atua como um proxy para rotear todas as invocações para a função do Lambda. 
+ **Um perfil do IAM**: um perfil com as permissões necessárias para criar a conexão entre o Catálogo de Dados e o repositório do Hive.
+ **AWS Glue conexão** — Um Amazon API Gateway tipo de AWS Glue conexão que armazena o Amazon API Gateway endpoint e uma função do IAM para invocá-lo. 

Quando você consulta tabelas, o AWS Glue serviço faz uma chamada de tempo de execução para o metastore do Hive e busca os metadados. A função do Lambda atua como um tradutor entre o Repositório do Hive e o catálogo de dados. 

Após estabelecer a conexão, para sincronizar os metadados na repositório do Hive com o catálogo de dados, você precisa criar um *banco de dados federado* no catálogo de dados usando as informações da conexão do repositório do Hive, e mapear esse banco de dados para o banco de dados do Hive. Um banco de dados é chamado de banco de dados federado quando aponta para uma entidade fora do catálogo de dados.

Você pode aplicar as permissões do Lake Formation usando o controle de acesso baseado em tags e o método de recurso nomeado no banco de dados federado e compartilhá-lo em várias Contas da AWS unidades organizacionais ()OUs. AWS Organizations Você também pode compartilhar o banco de dados federado diretamente com as entidades principais do IAM de outra conta.

 Você pode definir permissões refinadas no nível de coluna, linha e célula usando os filtros de dados do Lake Formation nas tabelas externas do Hive. É possível usar o Amazon Athena, o Amazon Redshift ou o Amazon EMR para consultar as tabelas externas do Hive gerenciadas pelo Lake Formation.

Para obter mais informações sobre compartilhamento de dados entre contas e filtragem de dados, consulte:
+ [Compartilhamento de dados entre contas no Lake Formation](cross-account-permissions.md)
+ [Filtragem de dados e segurança por célula no Lake Formation](data-filtering.md)

**Etapas de alto nível da federação de metadados do catálogo de dados**

1. Você cria usuários e perfis do IAM que têm as permissões apropriadas para implantar a aplicação do AWS SAM e criar bancos de dados federados.

1. Você registra o local dos dados do Amazon S3 com o Lake Formation selecionando a opção `Enable Data Catalog federation` para conjuntos de dados que usam um repositório externo do Hive. 

1. Você define as configurações do AWS SAM aplicativo (nome da AWS Glue conexão, URL para o metastore do Hive e parâmetros da função Lambda) e implanta o aplicativo. AWS SAM 

1. O AWS SAM aplicativo implanta os recursos necessários para conectar o metastore externo do Hive ao Catálogo de Dados. 

1. Para aplicar as permissões do Lake Formation no banco de dados e nas tabelas do Hive, você cria um banco de dados no Catálogo de Dados usando as informações de conexão do repositório do Hive e associa esse banco de dados ao banco de dados do Hive.

1. Conceda permissões nos bancos de dados federados às entidades principais da sua conta ou de outra conta. 

**nota**  
Você pode conectar o Data Catalog a um repositório externo do Hive, criar bancos de dados federados e executar consultas e scripts do ETL em bancos de dados e tabelas do Hive sem aplicar as permissões do Lake Formation. Para dados de origem no Amazon S3 que não estão registrados no Lake Formation, o acesso é determinado pelas políticas de permissões do IAM para o Amazon AWS Glue S3 e pelas ações. 

Para conhecer as limitações, consulte [Considerações e limitações do compartilhamento de dados de armazenamento de metadados do Hive](notes-hms.md).

**Topics**
+ [Fluxo de trabalho](#hms-workflow)
+ [Requisitos para conectar o catálogo de dados ao Repositório do Hive](hms-prerequisites.md)
+ [Conectando o catálogo de dados a um repositório externo do Hive](hms-setup.md)
+ [Recursos adicionais do](additional-resources-hms.md)

## Fluxo de trabalho
<a name="hms-workflow"></a>

O diagrama a seguir mostra o fluxo de trabalho para conectar o AWS Glue Data Catalog a um metastore externo do Hive.

![\[Workflow diagram showing Hive metastore connection to AWS Glue Data Catalog with numbered steps.\]](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/hms-workflow.png)


1. Uma entidade principal envia uma consulta usando um serviço integrado, como Athena ou Redshift Spectrum.

1. O serviço integrado faz uma chamada para o Catálogo de Dados para obter os metadados, que por sua vez chama o endpoint do metastore Hive disponível por trás Amazon API Gateway e recebe respostas às solicitações de metadados.

1. O serviço integrado envia a solicitação ao Lake Formation para verificar as informações e credenciais da tabela para acessar a tabela.

1.  O Lake Formation autoriza a solicitação e fornece credenciais temporárias para o aplicativo integrado, que permite o acesso aos dados. 

1. Ao usar as credenciais temporárias recebidas do Lake Formation, o serviço integrado lê os dados do Amazon S3 e compartilha os resultados com a entidade principal.

# Requisitos para conectar o catálogo de dados ao Repositório do Hive
<a name="hms-prerequisites"></a>

Para AWS Glue Data Catalog conectar-se a um metastore externo do Apache Hive e configurar as permissões de acesso aos dados, você precisa preencher os seguintes requisitos:
**nota**  
Recomendamos que um administrador do Lake Formation implante o AWS SAM aplicativo e que somente um usuário privilegiado use a conexão de metastore do Hive para criar os bancos de dados federados correspondentes.

1. 

**Crie perfis do IAM.**

**Para implantar o AWS SAM aplicativo**
   + Crie uma função que tenha as permissões necessárias para implantar os recursos (função Lambda Amazon API Gateway, função do IAM e conexão) necessários para criar uma conexão com AWS Glue a metastore do Hive.

**Como criar bancos de dados federados**

   As seguintes permissões são necessárias nos recursos:
   + `glue:CreateDatabase on resource arn:aws:glue:region:account-id:database/gluedatabasename`
   + `glue:PassConnection on resource arn:aws:glue:region:account-id:connection/hms_connection`

1. 

**Registre o local do Amazon S3 com o Lake Formation.**

   Para usar o Lake Formation para gerenciar e proteger os dados em seu data lake, você deve registrar o local do Amazon S3 que tem os dados das tabelas na repositório do Hive com o Lake Formation. Ao fazer isso, a Lake Formation pode fornecer credenciais para serviços AWS analíticos como Athena, Redshift Spectrum e Amazon EMR.

   Para obter mais informações sobre o registro de um local do Amazon S3, consulte [Adicionar uma localização do Amazon S3 ao seu data lake](register-data-lake.md).

   Ao registrar a localização do Amazon S3, marque a caixa de seleção **Habilitar federação do Catálogo de Dados** para permitir que o Lake Formation assuma um perfil para acessar tabelas em um banco de dados federado.  
![\[Register location form for AWS Lake Formation with Amazon S3 path and IAM role options.\]](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/hms-register-s3.png)

   Para obter mais informações sobre como registrar um local de dados no Lake Formation, consulte [Como configurar um local no Amazon S3 para o data lake](initial-lf-config.md#register-s3-location).

1. 

**Use a versão correta do Amazon EMR.**

   Para usar o Amazon EMR com os bancos de dados federados do repositório do Hive, você precisa ter o Hive versão 3.x ou posterior e o Amazon EMR versão 6.x ou posterior.

# Conectando o catálogo de dados a um repositório externo do Hive
<a name="hms-setup"></a>

[Para conectá-lo AWS Glue Data Catalog a uma metastore do Hive, você precisa implantar um AWS SAM aplicativo chamado -. GlueDataCatalogFederation HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) Ele cria os recursos necessários para conectar o repositório externo do Hive ao catálogo de dados. Você pode acessar o AWS SAM aplicativo no AWS Serverless Application Repository.

O AWS SAM aplicativo cria a conexão para o metastore Hive por trás do Amazon API Gateway usando uma função Lambda. O AWS SAM aplicativo usa um identificador uniforme de recursos (URI) como entrada do usuário e conecta o metastore externo do Hive ao Catálogo de Dados. Quando um usuário executa uma consulta nas tabelas do Hive, o Catálogo de Dados chama o endpoint do API Gateway. O endpoint invoca a função do Lambda para recuperar os metadados das tabelas do Hive.

**Como conectar o catálogo de dados ao repositório do Hive e configurar permissões**

1. 

**Implante o AWS SAM aplicativo.**

   1. Faça login no Console de gerenciamento da AWS e abra AWS Serverless Application Repository o.

   1. No painel de navegação, escolha **Aplicativos disponíveis**.

   1. Selecione **Aplicativos públicos**.

   1. Selecione a opção **Show apps that create custom IAM roles or resource policies** (Mostrar aplicações que criam funções personalizadas do IAM ou políticas de recursos). 

   1. Na caixa de pesquisa, digite o nome **GlueDataCatalogFederation- HiveMetastore**. 

   1. Escolha o HiveMetastore aplicativo **GlueDataCatalogFederation-**.

   1. Em **Configurações do aplicativo**, digite as seguintes configurações mínimas necessárias para sua função do Lambda:
      + **Nome do aplicativo** - Um nome para seu AWS SAM aplicativo.
      + **GlueConnectionName**- Um nome para a conexão.
      + **HiveMetastoreURIs**- O URI do seu host de metastore Hive.
      + **LambdaMemory**- A quantidade de memória Lambda em MB de 128 a 10240. O padrão é 1024.
      + **LambdaTimeout**- O tempo máximo de execução de invocação do Lambda em segundos. O padrão é 30.
      + **VPCSecurityGroupIds**e **VPCSubnetIds** - Informações para a VPC em que existe o metastore do Hive.

   1. Selecione **Reconheço que este aplicativo cria perfis personalizadas do IAM e políticas de recursos**. Para obter mais informações, escolha o link **Informações**.

   1. Na parte inferior direita da página **Configurações da aplicação** selecione **Implantar**. Quando a implantação for concluída, a função do Lambda será exibida seção **Recursos no console do Lambda**.

    A aplicação é implantada no Lambda. O nome é prefixado com **serverlessrepo-** para indicar que a aplicação foi implantada por meio do AWS Serverless Application Repository. Selecionar o aplicativo leva você à página **Recursos**, na qual cada um dos recursos do aplicativo que foram implantados está listado. Os recursos incluem a função Lambda, que permite a comunicação entre o catálogo de dados e o metastore Hive, a AWS Glue conexão e outros recursos necessários para a federação do banco de dados. 

1. 

**Crie um banco de dados federado no catálogo de dados.**

   Depois de criar uma conexão com o repositório do Hive, você pode criar bancos de dados federados no Catálogo de Dados que apontam para os bancos de dados externos do repositório do Hive. Você precisa criar um banco de dados correspondente no Catálogo de Dados para cada banco de dados de repositório do Hive que você está conectando ao Catálogo de Dados. 

------
#### [ Lake Formation console ]

   1. Na página **Compartilhamento de dados**, selecione a guia **Bancos de dados compartilhados** e, em seguida, selecione **Criar banco de dados**.

   1. Em **Nome da conexão**, selecione o nome da sua conexão de repositório do Hive no menu suspenso.

   1. Digite um nome de banco de dados exclusivo e o identificador de origem da federação para o banco de dados. Esse é o nome que você usa em suas instruções SQL ao consultar tabelas. O nome pode ter no máximo 255 caracteres e deve ser exclusivo dentro da conta. 

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

------
#### [ AWS CLI ]

   ```
   aws glue create-database \
   '{
    "CatalogId": "<111122223333>",
     "database-input": {
       "Name":"<fed_glue_db>",
       "FederatedDatabase":{
           "Identifier":"<hive_db_on_emr>",
           "ConnectionName":"<hms_connection>"
        }
      }
    }'
   ```

------

1. 

**Visualize tabelas no banco de dados federado.**

   Após criar o banco de dados federado, você pode exibir a lista de tabelas em seu repositório do Hive usando o console do Lake Formation ou a AWS CLI.

------
#### [ Lake Formation console ]

   1. Selecione o nome do banco de dados na guia **Bancos de dados compartilhados**.

   1. Na página **Bancos de dados**, selecione **Exibir tabelas**.

------
#### [ AWS CLI ]

   Os exemplos a seguir mostram como recuperar a definição da conexão, o nome do banco de dados e algumas ou todas as tabelas no banco de dados. Substitua a ID do Catálogo de Dados pela Conta da AWS ID válida que você usou para criar o banco de dados. Substitua `hms_connection` pelo nome da conexão.

   ```
   aws glue get-connection \
   --name <hms_connection>  \       
   --catalog-id 111122223333
   ```

   ```
   aws glue get-database \
   --name <fed_glu_db> \             
   --catalog-id 111122223333
   ```

   ```
   aws glue get-tables \
   --database-name <fed_glue_db> \
   --catalog-id 111122223333
   ```

   ```
   aws glue get-table \
   --database-name <fed_glue_db> \
   --name <hive_table_name> \
   --catalog-id 111122223333
   ```

------

1. 

**Conceder permissões**

    Depois de criar o banco de dados, você pode conceder permissões a outros usuários e funções do IAM em sua conta ou a organizações externas Contas da AWS e externas. Você não poderá conceder permissões de gravação de dados (inserir e excluir) e permissão de metadados (alterar, descartar e criar) nos bancos de dados federados. Para obter mais informações sobre a concessão de permissões, consulte [Gerenciando permissões do Lake Formation](managing-permissions.md) 

1. 

**Consulte os bancos de dados federados.**

   Após conceder permissões, os usuários podem fazer login e começar a consultar o banco de dados federado usando o Athena e o Amazon Redshift. Agora, os usuários podem usar o nome do banco de dados local para referenciar o banco de dados do Hive em consultas SQL.

   **Exemplo de sintaxe de Amazon Athena consulta**

   Substitua o `fed_glue_db` pelo nome do banco de dados local que você criou anteriormente.

    `Select * from fed_glue_db.customers limit 10;`

# Recursos adicionais do
<a name="additional-resources-hms"></a>

A postagem do blog a seguir contém instruções detalhadas para configurar as permissões do Lake Formation em um banco de dados e tabelas de repositório do Hive e consultá-los usando o Athena. Também ilustramos um caso prático de compartilhamento entre contas, em que uma entidade principal do Lake Formation na conta de produtor A compartilha um banco de dados federado e tabelas do Hive usando tags do LF com a conta de consumidor B. 
+ [Consulte sua metastore do Apache Hive com permissões AWS Lake Formation](https://aws.amazon.com/blogs/big-data/query-your-apache-hive-metastore-with-aws-lake-formation-permissions/)