

# Integración de tablas de Amazon S3 con servicios de análisis de AWS
<a name="s3-tables-integrating-aws"></a>

En este tema se cubren los requisitos previos y los procedimientos necesarios para integrar los buckets de tablas de Amazon S3 con los servicios de análisis de AWS. Para obtener información general sobre cómo funciona la integración, consulte [Información general de la integración de tablas de S3](s3-tables-integration-overview.md).

**nota**  
Esta integración utiliza AWS Glue Data Catalog y es posible que incurra en costos de solicitudes y almacenamiento de AWS Glue. Para más información, consulte [Precios de AWS Glue](https://aws.amazon.com/glue/pricing/).  
Se aplican precios adicionales por ejecutar consultas en tablas de S3. Para obtener más información, consulte la información de precios del motor de consulta que está utilizando.

## Requisitos previos para la integración
<a name="table-integration-prerequisites"></a>

Se necesitan los siguientes requisitos previos para integrar buckets de tablas con los servicios de análisis de AWS.
+ [Cree un bucket de tablas.](s3-tables-buckets-create.md)
+ Agregue los permisos de AWS Glue siguientes a la entidad principal de AWS Identity and Access Management (IAM):
  + `glue:CreateCatalog` que se requiere para crear un catálogo federado de `s3tablescatalog` en el catálogo de datos
  + `glue:PassConnection` otorga a la entidad principal que realiza la llamada el derecho a delegar la creación de conexión de `aws:s3tables` al servicio de Amazon S3.
+ [Actualice a la versión más reciente de AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions).

**importante**  
Cuando cree tablas, asegúrese de utilizar todas las letras minúsculas en los nombres y las definiciones de las tablas. Por ejemplo, asegúrese de que los nombres de columna estén todos en minúsculas. Si el nombre o la definición de la tabla contiene letras mayúsculas, significa que la tabla no es compatible con AWS Lake Formation ni AWS Glue Data Catalog. En este caso, la tabla no será visible para servicios de análisis de AWS como Amazon Athena, aunque los buckets de tablas estén integrados con servicios de análisis de AWS.   
Si la definición de la tabla contiene mayúsculas, recibirá el siguiente mensaje de error al ejecutar una consulta de `SELECT` en Athena: “GENERIC\_INTERNAL\_ERROR: Error al obtener la solicitud de tabla: com.amazonaws.services.glue.model.ValidationException: Recurso de federación no compatible: nombres de tabla o columna no válidos”.

## Integración de buckets de tablas con servicios de análisis de AWS
<a name="table-integration-procedures"></a>

Puede integrar los buckets de tablas con el catálogo de datos y los servicios de análisis de AWS mediante los controles de acceso de IAM de forma predeterminada o, de forma opcional, utilizar los controles de acceso de Lake Formation.

Cuando realiza la integración mediante los controles de acceso de IAM, necesita privilegios de IAM para acceder a los buckets y tablas de Amazon S3, a los objetos del catálogo de datos y al motor de consultas que utiliza. Si elige realizar la integración mediante Lake Formation, los controles de acceso de IAM y las concesiones de Lake Formation determinan el acceso a los recursos del catálogo de datos. Consulte la [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html) para obtener más información sobre la integración de Lake Formation.

En las siguientes secciones, se describe cómo puede utilizar la consola de administración de Amazon S3 o AWS CLI para configurar la integración con los controles de acceso de IAM.

### Uso de la consola de S3
<a name="integrate-console"></a>

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de tablas**.

1. Elija **Crear bucket de tablas**.

   Se abrirá la página **Crear bucket de tablas**.

1. Introduzca un **Nombre de bucket de tablas** y asegúrese de que se ha seleccionado la casilla de verificación **Habilitar integración**.

1. Elija **Crear bucket de tablas**. Amazon S3 intentará integrar automáticamente los buckets de tablas en esa región.

### Uso de AWS CLI
<a name="integrate-cli"></a>

**Integración de los buckets de tablas con los controles de acceso de IAM mediante la AWS CLI**

Los siguientes pasos muestran cómo utilizar la AWS CLI para integrar buckets de tablas. Para realizar estos comandos, reemplace `{{user input placeholders}}` con su propia información.

1. Crear un bucket de tablas.

   ```
   aws s3tables create-table-bucket \
   --region {{us-east-1}} \
   --name {{amzn-s3-demo-table-bucket}}
   ```

1. Cree un archivo llamado `catalog.json` que contenga el siguiente catálogo:

   ```
   {
      "Name": "s3tablescatalog",
      "CatalogInput": {
         "FederatedCatalog": {
             "Identifier": "arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/*",
             "ConnectionName": "aws:s3tables"
          },
          "CreateDatabaseDefaultPermissions":[
          {
                   "Principal": {
                       "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
                   },
                   "Permissions": ["ALL"]
               }
          ],
          "CreateTableDefaultPermissions":[
          {
                   "Principal": {
                       "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
                   },
                   "Permissions": ["ALL"]
               }
          ],
          "AllowFullTableExternalDataAccess": "True"
      }
   }
   ```

   Cree el catálogo `s3tablescatalog` utilizando el siguiente comando. La creación del catálogo hace que el AWS Glue Data Catalog se rellene con objetos correspondientes a buckets de tablas, espacios de nombres y tablas.

   ```
   aws glue create-catalog \
   --region {{us-east-1}} \
   --cli-input-json file://{{catalog.json}}
   ```

1. Verifique que se ha agregado el catálogo `s3tablescatalog` en AWS Glue mediante el siguiente comando:

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

### Migración al proceso de integración actualizado
<a name="migrate-integrate-console"></a>

El proceso de integración de los servicios de análisis de AWS se ha actualizado para usar permisos de IAM de forma predeterminada. Si ya ha configurado la integración, puede seguir utilizando la integración actual. Sin embargo, si desea cambiar su integración actual para utilizar en su lugar los permisos de IAM, consulte la [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html). También puede rehacer la integración para eliminar la configuración existente en AWS Glue Data Catalog y AWS Lake Formation y volver a ejecutar la integración. Esto eliminará todas las concesiones existentes de Lake Formation y los permisos de acceso asociados al `s3tablescatalog`.

1. Abra la consola de AWS Lake Formation en [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) e inicie sesión como administrador del lago de datos. Para obtener más información sobre cómo crear un administrador de lago de datos, consulte [Creación de un administrador de lago de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) en la *Guía para desarrolladores de AWS Lake Formation*.

1. Elimine el catálogo de `s3tablescatalog` haciendo lo siguiente: 
   + En el panel de navegación izquierdo, elija **Catálogos**. 
   + Seleccione el botón de opción situado junto al catálogo `s3tablescatalog` en la lista **Catálogos**. En el menú **Acciones**, elija **Eliminar**.

1. Para anular el registro de la ubicación de datos del catálogo `s3tablescatalog`, haga lo siguiente:
   + En el panel de navegación izquierdo, vaya a la sección **Administración** y seleccione **Ubicaciones de los lagos de datos**. 
   + Seleccione el botón de opción situado junto a la ubicación del lago de datos de `s3tablescatalog`; por ejemplo, `s3://tables:{{region}}:{{account-id}}:bucket/*`. 
   + En el menú **Acciones**, seleccione **Eliminar**. 
   + En el cuadro de diálogo de confirmación que aparece, seleccione **Eliminar**. 

1. Ahora que ha eliminado el catálogo de `s3tablescatalog` y la ubicación del lago de datos, puede seguir los pasos para [integrar sus buckets de tablas con los servicios de análisis de AWS](#table-integration-procedures) mediante el proceso de integración actualizado. 

**nota**  
Si desea trabajar con tablas cifradas de SSE-KMS en servicios de análisis de AWS integrados, el rol que utilice debe tener permiso para usar la clave de AWS KMS para las operaciones de cifrado. Para obtener más información, consulte [Concesión de permisos a las entidades principales de IAM para trabajar con tablas cifradas en servicios de análisis integrados de AWS](s3-tables-kms-permissions.md#tables-kms-integration-permissions).

**Siguientes pasos**
+ [Creación de un espacio de nombres de ](s3-tables-namespace-create.md).
+ [Creación de una tabla](s3-tables-create.md).