

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Administración de los permisos de los conjuntos de datos que utilizan metaalmacenes externos
Administración de los permisos de los conjuntos de datos que utilizan metaalmacenes externos

Con la federación de AWS Glue Data Catalog metadatos (federación de catálogos de datos), puede conectar el catálogo de datos a metaalmacenes externos que almacenan los metadatos de sus datos de Amazon S3 y gestionar de forma segura los permisos de acceso a los datos mediante AWS Lake Formation. No tiene que migrar los metadatos del metaalmacén externo al Catálogo de datos.

El Catálogo de datos proporciona un repositorio de metadatos centralizado que facilita la administración y la detección de datos en sistemas dispares. Cuando su organización administra los datos del catálogo de datos, puede utilizarlos AWS Lake Formation para controlar el acceso a sus conjuntos de datos en Amazon S3.

**nota**  
Actualmente, solo admitimos la federación de metaalmacenes Hive de Apache (versión 3 y superior).

Para configurar la federación del catálogo de datos, proporcionamos una aplicación AWS Serverless Application Model (AWS SAM) llamada [GlueDataCatalogFederation- HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) en el AWS Serverless Application Repository. 

La implementación de referencia se proporciona GitHub como un proyecto de código abierto en [AWS Glue Data Catalog Federation - Hive Metastore](https://github.com/awslabs/aws-glue-data-catalog-federation).

La AWS SAM aplicación crea e implementa los siguientes recursos necesarios para conectar el catálogo de datos al metaalmacén de Hive:
+ **Una AWS Lambda función**: aloja la implementación del servicio de federación que se comunica entre el catálogo de datos y el metaalmacén de Hive. AWS Glue invoca esta función Lambda para recuperar objetos de metadatos del metabastore de Hive.
+ **Amazon API Gateway**: el punto de conexión del metaalmacén de Hive que actúa como proxy para enrutar todas las invocaciones a la función de Lambda. 
+ **Un rol de IAM**: un rol con los permisos necesarios para crear la conexión entre el Catálogo de datos y el metaalmacén de Hive.
+ **AWS Glue conexión**: Amazon API Gateway tipo de AWS Glue conexión que almacena el Amazon API Gateway punto final y una función de IAM para invocarlo. 

Al consultar tablas, el AWS Glue servicio realiza una llamada en tiempo de ejecución al metabastore de Hive y recupera los metadatos. La función de Lambda actúa como un traductor entre el metaalmacén de Hive y el Catálogo de datos. 

Tras establecer la conexión, para sincronizar los metadatos del metaalmacén de Hive con el Catálogo de datos, debe crear una *base de datos federada* en el Catálogo de datos utilizando los detalles de conexión del metaalmacén de Hive y asignar esta base de datos a la base de datos de Hive. Una base de datos se denomina base de datos federada cuando apunta a una entidad ajena al Catálogo de datos.

Puede aplicar los permisos de Lake Formation mediante el control de acceso basado en etiquetas y el método de recurso con nombre en la base de datos federada, y compartirlos entre varias Cuentas de AWS unidades organizativas y ()OUs. AWS Organizations También puede compartir la base de datos federada directamente con las entidades principales de IAM desde otra cuenta.

 Puede definir permisos específicos de columna, fila y celda utilizando los filtros de datos de Lake Formation en tablas de Hive externas. Puede usar Amazon Athena, Amazon Redshift o Amazon EMR para consultar las tablas de Hive externas administradas por Lake Formation.

Para obtener más información sobre el filtrado y el intercambio de datos entre cuentas, consulte:
+ [Compartir datos entre cuentas en Lake Formation](cross-account-permissions.md)
+ [Filtrado de datos y seguridad de celda en Lake Formation](data-filtering.md)

**Pasos básicos de la federación de metadatos del Catálogo de datos**

1. Los usuarios y roles de IAM se crean con los permisos adecuados para implementar la aplicación de AWS SAM y crear bases de datos federadas.

1. Para registrar la ubicación de datos de Amazon S3 en Lake Formation, debe seleccionar la opción `Enable Data Catalog federation` para los conjuntos de datos que utilizan un metaalmacén de Hive externo. 

1. Debe configurar los ajustes de la AWS SAM aplicación (nombre de la AWS Glue conexión, URL al metabastore de Hive y parámetros de la función Lambda) e implementar la aplicación. AWS SAM 

1. La AWS SAM aplicación despliega los recursos necesarios para conectar el metabastore externo de Hive con el catálogo de datos. 

1. Para aplicar los permisos de Lake Formation en la base de datos y las tablas de Hive, crea una base de datos en el Catálogo de datos utilizando los datos de conexión del metaalmacén de Hive y asigna esta base de datos a la base de datos de Hive.

1. Conceda permisos en las bases de datos federadas a las entidades principales de su cuenta o de otra cuenta. 

**nota**  
Puede conectar el Catálogo de datos a un metaalmacén de Hive externo, crear bases de datos federadas y ejecutar consultas y scripts de ETL en bases de datos y tablas de Hive sin aplicar los permisos de Lake Formation. En el caso de los datos fuente de Amazon S3 que no estén registrados en Lake Formation, el acceso viene determinado por las políticas de permisos y AWS Glue acciones de IAM para Amazon S3. 

Para conocer las limitaciones, consulte [Consideraciones y limitaciones del uso compartido de datos del almacén de metadatos de Hive](notes-hms.md).

**Topics**
+ [

## Flujo de trabajo
](#hms-workflow)
+ [

# Requisitos previos para conectar el Catálogo de datos al metaalmacén de Hive
](hms-prerequisites.md)
+ [

# Conexión del Catálogo de datos a un metaalmacén de Hive externo
](hms-setup.md)
+ [

# Recursos adicionales
](additional-resources-hms.md)

## Flujo de trabajo


En el siguiente diagrama se muestra el flujo de trabajo para conectarlo AWS Glue Data Catalog a un metaalmacén de Hive externo.

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


1. Una entidad principal envía una consulta mediante un servicio integrado como Athena o Redshift Spectrum.

1. El servicio integrado realiza una llamada al catálogo de datos para obtener los metadatos, que a su vez llama al punto final del metaalmacén de Hive disponible en la versión trasera Amazon API Gateway y recibe las respuestas a las solicitudes de metadatos.

1. El servicio integrado envía la solicitud a Lake Formation para verificar la información de la tabla y las credenciales para acceder a la tabla.

1.  Lake Formation autoriza la solicitud y suministra credenciales temporales a la aplicación integrada, que permite el acceso a los datos. 

1. Con las credenciales temporales recibidas de Lake Formation, el servicio integrado lee los datos de Amazon S3 y comparte los resultados con la entidad principal.

# Requisitos previos para conectar el Catálogo de datos al metaalmacén de Hive
Requisitos previos

Para conectarse AWS Glue Data Catalog a un metabastore externo de Apache Hive y configurar los permisos de acceso a los datos, debe cumplir los siguientes requisitos:
**nota**  
Recomendamos que un administrador de Lake Formation despliegue la AWS SAM aplicación y que solo un usuario privilegiado utilice la conexión del metaalmacén de Hive para crear las bases de datos federadas correspondientes.

1. 

**Crear roles de IAM.**

**Para implementar la aplicación AWS SAM**
   + Cree un rol que tenga los permisos necesarios para implementar los recursos (función Lambda Amazon API Gateway, rol de IAM y la AWS Glue conexión) necesarios para crear una conexión al metaalmacén de Hive.

**Para crear bases de datos federadas**

   Se necesitan los siguientes permisos en los 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 la ruta de Amazon S3 en Lake Formation.**

   Para utilizar Lake Formation para gestionar y proteger los datos de su lago de datos, debe registrar la ubicación de Amazon S3 que contiene los datos de las tablas en el metaalmacén de Hive con Lake Formation. De este modo, Lake Formation puede vender credenciales a servicios AWS analíticos como Athena, Redshift Spectrum y Amazon EMR.

   Para obtener más información sobre el registro de una ubicación de Amazon S3, consulte [Añadir una ubicación de Amazon S3 a su lago de datos](register-data-lake.md).

   Cuando registre la ubicación de Amazon S3, seleccione la casilla de verificación **Habilitar la federación del Catálogo de datos** para permitir que Lake Formation asuma un rol de acceso a las tablas de una base de datos federada.  
![\[Register location form for AWS Lake Formation with Amazon S3 path and IAM role options.\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/hms-register-s3.png)

   Para obtener más información sobre el registro de una ubicación de datos en Lake Formation, consulte [Configurar una ubicación de Amazon S3 para el lago de datos](initial-lf-config.md#register-s3-location).

1. 

**Utilice la versión correcta de Amazon EMR.**

   Para utilizar Amazon EMR con las bases de datos federadas del metaalmacén de Hive, debe disponer de Hive versión 3.x o superior y Amazon EMR versión 6.x o superior.

# Conexión del Catálogo de datos a un metaalmacén de Hive externo


[Para conectarlos AWS Glue Data Catalog a un metaalmacén de Hive, debe implementar una aplicación llamada -. AWS SAM GlueDataCatalogFederation HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) Crea e implementa los recursos necesarios para conectar el metaalmacén de Hive al Catálogo de datos. Puede acceder a la AWS SAM aplicación en. AWS Serverless Application Repository

La AWS SAM aplicación crea la conexión para el metaalmacén de Hive detrás de Amazon API Gateway mediante una función Lambda. La AWS SAM aplicación utiliza un identificador uniforme de recursos (URI) como entrada del usuario y conecta el metabastore externo de Hive al catálogo de datos. Cuando un usuario ejecuta una consulta en las tablas de Hive, el Catálogo de datos llama al punto de conexión de la puerta de enlace de API. El punto de conexión invoca la función de Lambda para recuperar los metadatos de las tablas de Hive.

**Para conectar el Catálogo de datos al metaalmacén de Hive y configurar los permisos**

1. 

**Implemente la aplicación AWS SAM .**

   1. Inicie sesión en Consola de administración de AWS y abra el AWS Serverless Application Repository.

   1. En el panel de navegación, elija **Aplicaciones disponibles**.

   1. Elija **Aplicaciones públicas**.

   1. Seleccione la opción **Mostrar aplicaciones que crean roles de IAM personalizados o políticas de recursos**. 

   1. En el cuadro de búsqueda, introduzca el nombre **GlueDataCatalogFederation- HiveMetastore**. 

   1. Seleccione la HiveMetastore aplicación **GlueDataCatalogFederation-**.

   1. En **Configuración de la aplicación**, introduzca la siguiente configuración mínima requerida para la función de Lambda:
      + **Nombre de la aplicación**: un nombre para AWS SAM la aplicación.
      + **GlueConnectionName**- Un nombre para la conexión.
      + **HiveMetastoreURIs**- El URI de tu servidor de metatienda de Hive.
      + **LambdaMemory**- La cantidad de memoria Lambda en MB de 128 a 10240. El valor predeterminado es 1024.
      + **LambdaTimeout**- El tiempo de ejecución máximo de la invocación a Lambda en segundos. El valor predeterminado es 30.
      + **VPCSecurityGroupIds**e **VPCSubnetidentificadores**: información de la VPC en la que se encuentra el metabastore de Hive.

   1. Seleccione **Confirmo que esta aplicación puede crear roles de IAM y políticas de recursos personalizados**. Para obtener más información, elija el enlace **Info**.

   1. En la parte inferior derecha de la sección **Configuración de aplicación**, elija **Implementar**. Una vez finalizada la implementación, aparece la función de Lambda en la sección **Recursos** en la consola de Lambda.

    La aplicación se implementa en Lambda. Su nombre va precedido de **serverlessrepo-** para indicar que la aplicación se implementó desde el AWS Serverless Application Repository. Al seleccionar la aplicación, accederá a la página **Recursos**, donde se enumeran todos los recursos de la aplicación que se implementaron. Los recursos incluyen la función Lambda que permite la comunicación entre el catálogo de datos y el metabastore de Hive, la AWS Glue conexión y otros recursos necesarios para la federación de bases de datos. 

1. 

**Crear una base de datos federada en Data Catalog.**

   Después de crear una conexión al metaalmacén de Hive, puede crear bases de datos federadas en el Catálogo de datos que apunten a las bases de datos externas del metaalmacén de Hive. Debe crear una base de datos correspondiente en el Catálogo de datos para cada base de datos del metaalmacén de Hive que conecte al Catálogo de datos. 

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

   1. En la página de **Uso compartido de datos**, seleccione la pestaña **Bases de datos compartidas** y, a continuación, **Crear base de datos**.

   1. En **Nombre de la conexión**, elija el nombre de su conexión al metaalmacén de Hive en el menú desplegable.

   1. Introduzca un nombre de base de datos único y el identificador de origen de federación para la base de datos. Este es el nombre que se utiliza en las instrucciones SQL cuando se consultan las tablas. El nombre puede tener un máximo de 255 caracteres y debe ser único en la cuenta. 

   1. Elija **Creación de base de datos**.

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

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

------

1. 

**Ver las tablas de la base de datos federada.**

   Después de crear la base de datos federada, puede ver la lista de tablas en su metaalmacén de Hive mediante la consola de Lake Formation o la AWS CLI.

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

   1. Seleccione el nombre de la base de datos en la pestaña **Bases de datos compartidas**.

   1. En la página **Bases de datos**, elija **Ver tablas**.

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

   Los ejemplos siguientes muestran cómo recuperar la definición de la conexión, el nombre de la base de datos y algunas o todas las tablas de la base de datos. Sustituya el ID del catálogo de datos por el Cuenta de AWS ID válido que utilizó para crear la base de datos. Sustituya `hms_connection` por el nombre de la conexión.

   ```
   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 permisos.**

    Una vez creada la base de datos, puede conceder permisos a otros usuarios y roles de IAM en su cuenta o a organizaciones Cuentas de AWS y organizaciones externas. No podrá conceder permisos de escritura de datos (insertar, eliminar) ni permisos de metadatos (modificar, eliminar, crear) en las bases de datos federadas. Para obtener más información sobre cómo conceder permisos, consulte [Administrar los permisos de Lake Formation](managing-permissions.md). 

1. 

**Consultar las bases de datos federadas.**

   Tras conceder los permisos, los usuarios pueden iniciar sesión y empezar a consultar la base de datos federada mediante Athena y Amazon Redshift. Los usuarios ahora pueden usar el nombre de la base de datos local para hacer referencia a la base de datos de Hive en las consultas de SQL.

   **Ejemplo de sintaxis Amazon Athena de consulta**

   Sustituya `fed_glue_db` por el nombre de la base de datos local que creó anteriormente.

    `Select * from fed_glue_db.customers limit 10;`

# Recursos adicionales


La siguiente entrada del blog contiene instrucciones detalladas para configurar los permisos de Lake Formation en una base de datos y tablas del metaalmacén de Hive y consultarlos mediante Athena. También ilustramos un caso de uso compartido entre cuentas, en el que una entidad principal de Lake Formation de la cuenta de productor A comparte una base de datos y tablas federadas de Hive mediante la etiqueta LF con la cuenta de consumidor B. 
+ [Consulte su metaalmacén de Apache Hive con permisos AWS Lake Formation](https://aws.amazon.com/blogs/big-data/query-your-apache-hive-metastore-with-aws-lake-formation-permissions/)