

# Cómo crear una conexión de origen de datos
<a name="connect-to-a-data-source"></a>

Para utilizar un conector de origen de datos de Athena, se crea la conexión de AWS Glue que almacena la información de conexión sobre el conector y el origen de datos. Al crear la conexión, se asigna al origen de datos un nombre que se utilizará para hacer referencia al origen de datos en las consultas SQL.

Puede crear y configurar una conexión de origen de datos en Athena a través de la [consola](connect-to-a-data-source-console-steps.md) o de las operaciones de la [API CreateDataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateDataCatalog.html).

**Topics**
+ [Permisos para crear y utilizar un origen de datos en Athena](connect-to-a-data-source-permissions.md)
+ [Uso de la consola de Athena para conectarse a un origen de datos](connect-to-a-data-source-console-steps.md)
+ [Uso del AWS Serverless Application Repository para implementar un conector de origen de datos](connect-data-source-serverless-app-repo.md)
+ [Cómo crear una VPC para un conector de origen de datos o una conexión de AWS Glue](athena-connectors-vpc-creation.md)
+ [Extracción de imágenes de ECR a la cuenta de AWS](pull-ecr-customer-account.md)
+ [Cómo registrar la conexión como Catálogo de datos de Glue](register-connection-as-gdc.md)
+ [Habilitación de las consultas federadas entre cuentas](xacct-fed-query-enable.md)
+ [Actualización de un conector de origen de datos](connectors-updating.md)

# Permisos para crear y utilizar un origen de datos en Athena
<a name="connect-to-a-data-source-permissions"></a>

Para crear y utilizar un origen de datos, necesita los siguientes conjuntos de permisos.
+ AmazonAthenaFullAccess que proporciona acceso completo a Amazon Athena y acceso delimitado a las dependencias necesarias para habilitar la consulta, la escritura de resultados y la administración de datos. Para obtener más información, consulte [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html) en la Guía de referencia de políticas administradas por AWS.
+ Permisos para llamar a la API CreateDataCatalog. Estos permisos solo se necesitan cuando se crea un origen de datos que se integra con las conexiones de Glue. Para obtener más información sobre la política de ejemplo, consulte [Permisos necesarios para crear el conector y el catálogo de Athena](athena-catalog-access.md).
+ Si desea utilizar el control de acceso detallado de Lake Formation, además de los permisos indicados anteriormente, también necesitará los siguientes permisos.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "lakeformation:RegisterResource",
          "iam:ListRoles",
          "glue:CreateCatalog",
          "glue:GetCatalogs",
          "glue:GetCatalog"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

------

# Uso de la consola de Athena para conectarse a un origen de datos
<a name="connect-to-a-data-source-console-steps"></a>

Puede utilizar la consola de Athena para crear y configurar una conexión de origen de datos.

**Para crear una conexión a un origen de datos**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Si el panel de navegación de la consola no está visible, elija el menú de expansión de la izquierda.  
![\[Elija el menú de expansión.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/nav-pane-expansion.png)

1. En el panel de navegación, elija **Orígenes de datos y catálogos**.

1. En la página **Orígenes de datos y catálogos**, elija **Crear origen de datos**.

1. En **Elegir origen de datos**, elija el origen de datos que quiera que Athena consulte, tenga en cuenta las siguientes recomendaciones:
   + Elija una opción de conexión que corresponda al origen de datos. Athena tiene conectores de orígenes de datos precreados que se pueden configurar para los orígenes, entre ellos, MySQL, Amazon DocumentDB y PostgreSQL.
   + Elija **S3 -AWS Glue Data Catalog** si quiere consultar datos en Amazon S3 y no utiliza un metastore de Apache Hive ni ninguna de las otras opciones de origen de datos de consultas federadas de esta página. Athena utiliza AWS Glue Data Catalog para almacenar metadatos e información de esquemas de orígenes de datos en Amazon S3. Esta es la opción predeterminada (no federada). Para obtener más información, consulte [Utilice AWS Glue Data Catalog para conectarse a los datos](data-sources-glue.md). Para conocer los pasos a seguir con este flujo de trabajo, consulte [Registro y uso de catálogos de datos en Athena](gdc-register.md).
   + Elija **S3 - Apache Hive metastore** (S3: metastore de Apache Hive) para consultar conjuntos de datos en Amazon S3 que utilicen un metastore de Apache Hive. Para obtener más información acerca de esta opción, consulta [Conexión de Athena a un metastore de Apache Hive](connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore.md).
   + Elija **Custom or shared connector** (Conector personalizado o compartido) si quiere crear su propio conector de origen de datos para usarlo con Athena. Para obtener información sobre cómo la escritura de un conector de origen de datos, consulte [Desarrollo de un conector de origen de datos mediante el SDK de Athena Query Federation](connect-data-source-federation-sdk.md).

1. Elija **Siguiente**.

1. En la página **Ingresar detalles del origen de datos**, en **Nombre del origen de datos**, utilice el nombre autogenerado o ingrese un nombre único que desee utilizar en las instrucciones SQL cuando consulte el origen de datos desde Athena. El nombre puede tener hasta 127 caracteres y debe ser único dentro de su cuenta. No se puede cambiar después crearlo. Los caracteres válidos son a-z, A-Z, 0-9, \$1 (guion bajo), @ (arroba) y - (guion). Los nombres `awsdatacatalog`, `hive`, `jmx` y `system` están reservados por Athena y no se pueden utilizar para nombres de orígenes de datos. 

1. Si el origen de datos elegido se integra con las conexiones AWS Glue.

   1. Para los **detalles de conexión de AWS Glue**, ingrese la información requerida. Una conexión contiene las propiedades que se necesitan para conectarse a un origen de datos concreto. Las propiedades necesarias varían en función del tipo de conexión. Para obtener más información sobre las propiedades relacionadas con el conector, consulte [Conectores de orígenes de datos disponibles](connectors-available.md). Para obtener información sobre propiedades de conexión adicionales, consulte [Propiedades de conexión de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html) en la *Guía del usuario de AWS Glue*.
**nota**  
Al actualizar las propiedades de la conexión de Glue, es necesario reiniciar el conector de Lambda para obtener las propiedades actualizadas. Para ello, edite las propiedades del entorno y guárdelas sin cambiar nada. 
Al actualizar una conexión de Glue, las siguientes propiedades no se actualizarán automáticamente en la función de Lambda correspondiente. Debe actualizar manualmente la función de Lambda para estas propiedades.  
Configuración de la VPC de Lambda: `security_group_ids`, `subnet_ids`
Rol de ejecución de Lambda: `spill_bucket`, `secret_name`, `spill_kms_key_id`

   1. En el ** rol de IAM de ejecución de Lambda**, elija uno de los siguientes:
      + **Creación y uso de un nuevo rol de ejecución**: (predeterminado) Athena crea un rol de ejecución que utilizará para acceder a los recursos en AWS Lambda en su nombre. Athena necesita este rol para crear el origen de datos federado.
      + **Uso de un rol de ejecución existente**: utilice esta opción para elegir un rol de ejecución existente. En esta opción, elija el rol de ejecución que desee utilizar en el menú desplegable **Rol de ejecución**.

1. Si el origen de datos elegido no se integra con las conexiones AWS Glue. 

   1. Para **Función de Lambda**, elija **Crear una función de Lambda**. La página de funciones del conector elegido se abre en la consola AWS Lambda. La página incluye información detallada sobre el conector.

   1. En **Application settings** (Configuración de aplicación), lea detenidamente la descripción de cada configuración de aplicación y, a continuación, ingrese los valores que correspondan a los requisitos.

      La configuración de aplicación que ve varía según el conector del origen de datos. La configuración mínima requerida incluye lo siguiente:
      + **AthenaCatalogName**: un nombre para la función de Lambda en minúsculas que indica el origen de datos de destino, como `cloudwatchlogs`.
      + **SpillBucket**: un bucket de Amazon S3 en la cuenta para almacenar datos que superen los límites de tamaño de respuesta de la función de Lambda.
**nota**  
Los datos volcados no se volverán a utilizar en ejecuciones posteriores y se podrán eliminar de forma segura. Athena no elimina estos datos por usted. Para administrar estos objetos, considere agregar una política del ciclo de vida de los objetos que elimine los datos antiguos del bucket de vertido de Simple Storage Service (Amazon S3). Para obtener más información, consulte [Administración del ciclo de vida del almacenamiento](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) en la Guía del usuario de Amazon S3.

   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. Elija **Desplegar**. Una vez finalizada la implementación, aparece la función de Lambda en la sección **Recursos** en la consola de Lambda.

      Después de implementar el conector de origen de datos en su cuenta, puede conectar Athena a este.

   1. Vuelva a la página **Enter data source details** (Ingresar detalles de orígenes de datos) de la consola de Athena.

   1. En la sección **Detalles de la conexión**, elija el icono de actualización situado junto al cuadro de búsqueda **Seleccione o introduzca una función de Lambda**.

   1. Elija el nombre de la función que acaba de crear en la consola de Lambda. Se muestra el ARN de la función de Lambda.

1. (Opcional) En **Tags** (Etiquetas), agregue pares clave-valor que asociar con este origen de datos. Para obtener más información acerca de las etiquetas, consulte [Etiquetado de recursos de Athena](tags.md).

1. Elija **Siguiente**.

1. En la página **Revisar y crear**, revise los detalles del origen de datos. Para realizar cambios, seleccione **Editar**. 

1. Lea la información que aparece en **Athena creará recursos en la cuenta**. Si está de acuerdo, seleccione **Reconozco que Athena creará recursos en mi nombre**.

1. Elija **Crear origen de datos**. **Athena** creará los siguientes recursos en su nombre.
   + Rol de IAM de ejecución de Lambda
   + Conexión AWS Glue (solo si el origen de datos es compatible con las Conexiones de AWS Glue)
   + Función de Lambda

La sección **Data source details** (Detalles del origen de datos) de la página de la fuente de datos muestra información sobre el nuevo conector. Ahora puede usar el conector en sus consultas de Athena. 

Para obtener información sobre cómo utilizar conectores de datos en las consultas, consulte [Ejecución de consultas federadas](running-federated-queries.md).

# Uso del AWS Serverless Application Repository para implementar un conector de origen de datos
<a name="connect-data-source-serverless-app-repo"></a>

Para implementar un conector de origen de datos, puede utilizar [AWS Serverless Application Repository](https://aws.amazon.com/serverless/serverlessrepo/) en lugar de utilizar una conexión de AWS Glue.

**nota**  
Recomendamos utilizar SAR únicamente si se dispone de un conector personalizado o se requiere el uso de un conector antiguo. En caso contrario, se recomienda utilizar la consola de Athena. 

Puede utilizar AWS Serverless Application Repository para encontrar el conector que desea utilizar, proporcionar los parámetros que este requiere y, a continuación, implementar el conector en la cuenta. Luego, después de implementar el conector, utilice la consola de Athena para poner el origen de datos a disposición de Athena.

## Implementación del conector en su cuenta
<a name="connect-data-source-serverless-app-repo-deploying"></a>

**Para usar AWS Serverless Application Repository para implementar un conector de origen de datos en su cuenta, realice el siguiente procedimiento:**

1. Inicie sesión en la Consola de administración de AWS y abra el **repositorio de aplicaciones sin servidor**.

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

1. Seleccione la opción **Show apps that create custom IAM roles or resource policies** (Mostrar aplicaciones que crean roles de IAM personalizados o políticas de recursos).

1. En el cuadro de búsqueda, escriba el nombre del conector. Para obtener una lista de conectores de datos de Athena preconstruidos, consulte [Conectores de orígenes de datos disponibles](connectors-available.md).

1. Elija el nombre del conector. Al elegir un conector, se abre la página **Detalles de la aplicación** de la función de Lambda en la consola de AWS Lambda.

1. A la derecha de la página de detalles, en **Application settings** (Configuración de aplicación), complete la información requerida. La configuración mínima requerida incluye lo siguiente. Para obtener información sobre las opciones configurables restantes de los conectores de datos creados por Athena, consulte el tema [Conectores disponibles](https://github.com/awslabs/aws-athena-query-federation/wiki/Available-Connectors) correspondiente en GitHub.
   + **AthenaCatalogName**: un nombre para la función de Lambda en minúsculas que indica el origen de datos de destino, como `cloudwatchlogs`.
   + **SpillBucket**: especifique un bucket de Amazon S3 en la cuenta para recibir datos de cualquier carga de respuesta grande que supere los límites de tamaño de respuesta de la función de Lambda.

1. Seleccione **I acknowledge that this app creates custom IAM roles and resource policies** (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.

## Hacer que el conector esté disponible en Athena
<a name="connect-data-source-serverless-app-repo-making-the-connector-available-in-athena"></a>

Ahora está listo para usar la consola de Athena para poner el conector de origen de datos a disposición de Athena.

**Para poner el origen de datos a disposición de Athena.**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Si el panel de navegación de la consola no está visible, elija el menú de expansión de la izquierda.  
![\[Elija el menú de expansión.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/nav-pane-expansion.png)

1. En el panel de navegación, elija **Orígenes de datos y catálogos**.

1. En la página **Orígenes de datos y catálogos**, elija **Crear origen de datos**.

1. Para **Choose a data source** (Elegir un origen de datos), elija el origen de datos para el que ha creado un conector en el AWS Serverless Application Repository. Este tutorial usa **Amazon CloudWatch Logs** como origen de datos federado.

1. Elija **Siguiente**.

1. En la página **Ingresar detalles del origen de datos**, en **Nombre del origen de datos**, ingrese el nombre que quiera utilizar en las instrucciones SQL cuando consulte el origen de datos desde Athena (por ejemplo, `CloudWatchLogs`). El nombre puede tener hasta 127 caracteres y debe ser único dentro de su cuenta. No se puede cambiar después crearlo. Los caracteres válidos son a-z, A-Z, 0-9, \$1 (guion bajo), @ (arroba) y - (guion). Los nombres `awsdatacatalog`, `hive`, `jmx` y `system` están reservados por Athena y no se pueden utilizar para nombres de orígenes de datos. 

1. En la sección **Detalles de la conexión**, utilice el cuadro **Seleccione o introduzca una función de Lambda** para elegir el nombre de la función que acaba de crear. Se muestra el ARN de la función de Lambda.

1. (Opcional) En **Tags** (Etiquetas), agregue pares clave-valor que asociar con este origen de datos. Para obtener más información acerca de las etiquetas, consulte [Etiquetado de recursos de Athena](tags.md).

1. Elija **Siguiente**.

1. En la página **Review and create** (Revisar y crear), revise los detalles del origen de datos y, a continuación, elija **Create data source** (Crear origen de datos). 

1. La sección **Data source details** (Detalles del origen de datos) de la página de la fuente de datos muestra información sobre el nuevo conector. Ahora puede usar el conector en sus consultas de Athena. 

   Para obtener información sobre cómo utilizar conectores de datos en las consultas, consulte [Ejecución de consultas federadas](running-federated-queries.md).

# Cómo crear una VPC para un conector de origen de datos o una conexión de AWS Glue
<a name="athena-connectors-vpc-creation"></a>

Algunos conectores de orígenes de datos de Athena y conexiones de AWS Glue requieren una VPC y un grupo de seguridad. Este tema muestra cómo crear una VPC con una subred y un grupo de seguridad para la VPC. En este proceso, se recuperan los ID de la VPC, la subred y el grupo de seguridad que usted haya creado. Estos ID son necesarios cuando se configura la conexión AWS Glue o el conector de origen de datos para su uso con Athena.

**Para crear una VPC para un conector de origen de datos de Athena**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Seleccione **Creación de VPC**.

1. En la página **Crear VPC**, en **Configuración de VPC**, en **Recursos para crear**, seleccione **VPC y más**.

1. En **Generación automática de etiquetas de nombre**, en **Generación automática**, ingrese un valor que se utilizará para generar etiquetas de nombre para todos los recursos en la VPC.

1. Seleccione **Creación de VPC**.

1. Cuando finalice el proceso, seleccione **Ver VPC**.

1. En la sección **Details** (Detalles), en **VPC ID** (ID de la VPC), copie el ID de la VPC para su posterior referencia.

A continuación, ya podrá recuperar el ID de subred de la VPC que acaba de crear.

**Para recuperar el ID de subred de la VPC**

1. En el panel de navegación de la consola de la VPC, elija **Subnets** (Subredes).

1. Seleccione el nombre de una subred cuya columna de **VPC** tenga el ID de VPC que anotó.

1. En la sección **Details** (Detalles), en **Subnet ID** (ID de la subred), copie el ID de la subred para su posterior referencia.

A continuación, cree un grupo de seguridad para la VPC.

**Para crear un grupo de seguridad para la VPC**

1. En el panel de navegación de la consola de la VPC, elija **Security** (Seguridad), **Security Groups** (Grupos de seguridad).

1. Elija **Create Security Group** (Crear grupo de seguridad).

1. En la página **Create Security Group** (Crear grupo de seguridad), ingrese la información que se indica a continuación:
   + En **Security group name** (Nombre del grupo de seguridad), ingrese un nombre para el grupo de seguridad.
   + En **Description** (Descripción), ingrese una descripción para el grupo de seguridad. Se requiere una descripción.
   + En **VPC**, ingrese el ID de la VPC de aquella que creó para el conector de origen de datos.
   + En **Inbound rules** (Reglas de entrada) y **Outbound rules** (Reglas de salida), agregue las reglas entrantes y salientes que necesite.

1. Elija **Create Security Group** (Crear grupo de seguridad).

1. En la página **Details** (Detalles) del grupo de seguridad, copie el **ID de grupo de seguridad** para su posterior referencia.

## Consideraciones importantes para usar VPC con conectores de Athena
<a name="vpc-warning-instructions"></a>

Las siguientes instrucciones se aplican a todos los conectores de Athena, ya que todos pueden utilizar VPC.

**nota**  
Al utilizar una VPC con conexiones AWS Glue, deberá configurar los siguientes puntos de conexión de PrivateLink:  
Amazon S3
AWS Glue
AWS Secrets Manager

Como alternativa, puede utilizar el acceso público a Internet. Sin embargo, no se recomienda esta opción por motivos de seguridad.

**aviso**  
Si utiliza acceso público a Internet, es posible que los recursos estén expuestos a riesgos de seguridad adicionales. Se recomienda enfáticamente utilizar puntos de conexión de PrivateLink para mejorar la seguridad en la configuración de la VPC.

# Extracción de imágenes de ECR a la cuenta de AWS
<a name="pull-ecr-customer-account"></a>

Las funciones de Lambda del conector de la federación de Athena utilizan imágenes de contenedor almacenadas en repositorios de Amazon ECR administrados por Athena. Para realizar análisis de seguridad en estas imágenes de contenedor, primero debe copiarlas en un repositorio de Amazon ECR en la cuenta. En esta sección se proporcionan instrucciones paso a paso sobre cómo copiar una imagen en el repositorio y configurar la función de Lambda de modo que utilice la imagen.

## Requisitos previos
<a name="pull-ecr-customer-account-prereq"></a>
+ Un conector de la federación de Athena: el conector se puede crear a través de cualquier origen, siempre que este utilice una imagen de contenedor.
**nota**  
Para verificar la implementación de la imagen, revise la pestaña Imagen en la función de Lambda del conector de federación de Athena
+ Docker instalado y en ejecución
+ AWS CLI instalada
+ Credenciales de cuenta con los permisos de extracción adecuados

## Cómo transferir una imagen
<a name="image-transfer-procedure"></a>

1. Localice el URI de la imagen de la función de Lambda del conector de la federación de Athena  
**Example**  

   ```
   account_id_1.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.15.1
   ```

1. Genere un token de autenticación de Docker para la cuenta administrada por Athena:

   ```
   aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin athena-managed-registry
   ```

   Donde:
   + *regionID* es la región de implementación (por ejemplo, us-east-1)
   + *athena-managed-registry* es la parte del registro del URI de la imagen (por ejemplo, account\$1id\$11.dkr.ecr.us-east-1.amazonaws.com)

1. Extraiga la imagen de la cuenta administrada por Athena:

   ```
   docker pull athenaImageURI
   ```

1. Autentique Docker en el registro:

   ```
   aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin customer-registry
   ```

   *customer-registry* es el registro de ECR (por ejemplo, account\$1id\$12.dkr.ecr.us-east-1.amazonaws.com)

1. Etiquete la imagen extraída para el repositorio:

   ```
   docker tag athenaImageURI yourImageURI
   ```

1. Envíe la imagen al repositorio:

   ```
   docker push yourImageURI
   ```

1. Actualice el conector de la federación de Athena:

   1. Vaya a la función de Lambda

   1. Seleccione **Implementar nueva imagen**

   1. Ingrese el nuevo URI de la imagen

   La imagen del conector federado de Athena ahora se encuentra en la cuenta, con lo que se pueden realizar análisis CVE en la imagen.

# Cómo registrar la conexión como Catálogo de datos de Glue
<a name="register-connection-as-gdc"></a>

Después de crear el origen de datos, podrá utilizar la consola de Athena para registrar la conexión como un Catálogo de datos de Glue. Una vez registrado, podrá administrar el catálogo de datos federados y habilitar un control de acceso detallado mediante Lake Formation. Para más información, consulte [Creación de un catálogo federado](https://docs.aws.amazon.com/lake-formation/latest/dg/create-fed-catalog-data-source.html).

Puede registrar los siguientes conectores para integrarlos con AWS Glue para obtener un control de acceso detallado.
+ Redshift
+ BigQuery
+ DynamoDB (versión preliminar)
+ Snowflake (versión preliminar)
+ MySQL
+ PostgreSQL
+ AWS CMDB
+ Timestream
+ Azure Data Lake Storage
+ Azure Synapse
+ IBM Db2
+ IBM Db2 AS/400 (Db2 iSeries)
+ DocumentDB
+ Google Cloud Storage
+ HBase
+ OpenSearch
+ Oracle
+ SAP HANA
+ SQL Server
+ TPC-DS
+ Cloudera Hive
+ CloudWatch
+ Métricas de CloudWatch
+ Teradata
+ Vertica

## Requisitos previos
<a name="register-connection-as-gdc-pre"></a>

Antes de comenzar, debe completar los requisitos previos.
+ Asegúrese de que dispone de los roles y permisos necesarios para registrar ubicaciones. Para obtener más información, consulte los [Requisitos de los roles](https://docs.aws.amazon.com/lake-formation/latest/dg/registration-role.html) en la Guía para desarrolladores de AWS Lake Formation.
+ Asegúrese de que dispone de los roles necesarios de Lake Formation. Para obtener más información, consulte [Requisitos previos para conectar el catálogo de datos a orígenes de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/federated-catalog-data-connection.html) externos en la Guía para desarrolladores de AWS Lake Formation.
+ El rol que registre en Glue debe tener los permisos que se indican en el siguiente ejemplo.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetObject"
              ],
              "Resource": [
      "arn:aws:s3:::amzn-s3-demo-bucket/spill-prefix/*",
      "arn:aws:s3:::amzn-s3-demo-bucket/spill-prefix"
              ]
          },
          {
              "Sid": "lambdainvoke",
              "Effect": "Allow",
              "Action": "lambda:InvokeFunction",
              "Resource": "arn:aws:lambda:us-east-1:111122223333:function:lambda_function_name"
          },
          {
              "Sid": "gluepolicy",
              "Effect": "Allow",
              "Action": "glue:*",
              "Resource": [
              "arn:aws:glue:us-east-1:111122223333:connection/<connection_name>",
      "arn:aws:glue:us-east-1:111122223333:catalog"
              ]
          }
      ]
  }
  ```

------
+ Es su responsabilidad determinar y administrar el acceso adecuado a los datos. Con controles de acceso detallados en consultas federadas, se recomienda utilizar la política administrada [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html). Si desea utilizar una política propia, debe asegurarse de que los usuarios que ejecuten consultas federadas no tengan acceso a los siguientes recursos.
  + `lambda:InvokeFunction` en el conector de Lambda especificado en la conexión de Glue
  + Acceso a la ubicación del bucket de vertido en IAM
  + Acceso a la conexión de Glue asociada al catálogo federado
  + Rol de Lake Formation en IAM

## Cómo registrar la conexión mediante la consola
<a name="register-connection-as-gdc-steps"></a>

**Para registrar la conexión como catálogo de datos de Glue**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. En el panel de navegación, elija **Orígenes de datos y catálogos**.

1. En la lista **Orígenes de datos**, seleccione el origen de datos que creó para abrir la página **Detalles del origen de datos**. 

1. Seleccione **Introducción a AWS Lake Formation**.
**nota**  
Después de elegir esta opción, deberá administrar la función de Lambda por cuenta propia. Athena no eliminará la función de Lambda.

1. En **Nombre de catálogo de datos**, ingrese un nombre único para el catálogo.

1. Elija el **rol de IAM de Lake Formation** que concede permiso a Lake Formation para invocar la función Lambda. Asegúrese de que el rol tiene los permisos que aparecen en [el ejemplo](#register-connection-as-gdc-pre).

1. En el cuadro de texto, escriba **confirmar** para eliminar el origen de datos de Athena y sustituirlo por un registro de catálogo de datos de Glue.
**nota**  
Esta acción eliminará el origen de datos de Athena y creará un nuevo Catálogo de datos de Glue en su lugar. Una vez completado este proceso, es posible que tenga que actualizar las consultas que acceden al origen de datos para que hagan referencia al Catálogo de datos Glue recién creado.

1. Elija **Crear catálogo e ir a Lake Formation**. Se abrirá la consola de Lake Formation, donde podrá administrar el catálogo y conceder permisos a los usuarios sobre los catálogos, las bases de datos y las tablas.

# Habilitación de las consultas federadas entre cuentas
<a name="xacct-fed-query-enable"></a>

La consulta federada permite consultar orígenes de datos distintos de Amazon S3 mediante conectores de origen de datos implementados en AWS Lambda. La característica de consulta federada entre cuentas permite que la función de Lambda y los orígenes de datos que se van a consultar se encuentren en cuentas diferentes.

**nota**  
Utilice este método únicamente si no ha registrado el origen de datos federado en el AWS Glue Data Catalog. Si registró el origen de datos en el AWS Glue Data Catalog, utilice el modelo de características y permisos entre cuentas de AWS Glue Data Catalog. Para más información, consulte [Concesión de acceso entre cuentas](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html) en la *Guía del usuario de AWS Glue*.

Como administrador de datos, puede habilitar las consultas federadas entre cuentas al compartir el conector de datos con la cuenta de un analista de datos o, como analista de datos, al utilizar un ARN Lambda compartido de un administrador de datos para agregarlo a su cuenta. Cuando se hacen cambios de configuración en un conector de la cuenta de origen, la configuración actualizada se aplica automáticamente a las instancias compartidas del conector en las cuentas de otro usuario.

## Consideraciones y limitaciones
<a name="xacct-fed-query-enable-considerations-and-limitations"></a>
+ La característica de consulta federada entre cuentas está disponible para conectores de datos de metastore que no son de Hive y utilizan un origen de datos basado en Lambda.
+ La característica no está disponible para el tipo de origen de datos AWS Glue Data Catalog. Para obtener información sobre el acceso entre cuentas a AWS Glue Data Catalog, consulte [Configuración del acceso entre cuentas a los catálogos de datos de AWS Glue](security-iam-cross-account-glue-catalog-access.md).
+ Si la respuesta de la función de Lambda del conector supera el límite de tamaño de respuesta de Lambda de 6 MB, Athena cifra, agrupa y distribuye de forma automática la respuesta en un bucket de Amazon S3 que configure. La entidad que ejecuta la consulta de Athena debe tener acceso a la ubicación de la distribución para que Athena pueda leer los datos distribuidos. Le recomendamos que establezca una política de ciclo de vida de Amazon S3 para eliminar los objetos de la ubicación de la distribución, ya que los datos no son necesarios una vez que finaliza la consulta. 
+ No se admite el uso de consultas federadas entre Regiones de AWS. 

## Permisos necesarios
<a name="xacct-fed-query-enable-required-permissions"></a>

Para configurar los permisos necesarios, se deben realizar acciones tanto en la cuenta A (*444455556666*) como en la cuenta B (*111122223333*).

### Acciones en la cuenta A
<a name="xacct-fed-query-enable-required-permissions-account-a"></a>

Para que la cuenta A del administrador de datos comparta una función de Lambda con la cuenta B de analista de datos, la cuenta B requiere la función de invocación de Lambda y el acceso al bucket de desbordamiento. En consecuencia, la cuenta A debería agregar una [política basada en recursos](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) a la función de Lambda y el acceso de la [entidad principal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html) al bucket de desbordamiento en Amazon S3.

1. La siguiente política otorga permisos de función de invocación de Lambda a la cuenta B en una función de Lambda en la cuenta A.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CrossAccountInvocationStatement",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:user/username"
                   ]
               },
               "Action": "lambda:InvokeFunction",
               "Resource": "arn:aws:lambda:us-east-1:444455556666:function:lambda-function-name"
           }
       ]
   }
   ```

------

1. La siguiente política permite el acceso del bucket de desbordamiento a la entidad principal de la cuenta B.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
               "AWS": ["arn:aws:iam::111122223333:user/username"]
               },
               "Action": [
                   "s3:GetObject",
                   "s3:ListBucket"
                ],
               "Resource": [
                   "arn:aws:s3:::spill-bucket",
                   "arn:aws:s3:::spill-bucket/*"
               ]
           }
        ]
    }
   ```

------

1. Si la función de Lambda cifra el bucket de desbordamiento con una clave AWS KMS en lugar del cifrado predeterminado que ofrece el SDK de federación, la política de claves AWS KMS de la cuenta A debe conceder acceso al usuario de la cuenta B, como en el ejemplo siguiente.

   ```
   { 
       "Sid": "Allow use of the key", 
       "Effect": "Allow", 
       "Principal": 
       { 
          "AWS": ["arn:aws:iam::account-B-id:user/username"] 
       }, 
       "Action": [ "kms:Decrypt" ], 
       "Resource": "*" // Resource policy that gets placed on the KMS key. 
    }
   ```

### Acciones en la cuenta B
<a name="xacct-fed-query-enable-required-permissions-account-b"></a>

Para que la cuenta A comparta el conector con la cuenta B, la cuenta B debe crear un rol denominado `AthenaCrossAccountCreate-account-A-id` que la cuenta A asume al llamar a la acción de la API [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) de AWS Security Token Service.

1. Utilice la consola de IAM o la AWS CLI para crear el rol de `AthenaCrossAccountCreate-account-A-id` como un rol de política de confianza personalizado. Una política de confianza personalizada delega el acceso y permite a otros realizar acciones en la cuenta de AWS. Para conocer los pasos, consulte [Creación de un rol mediante políticas de confianza personalizadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) en la *Guía del usuario de IAM*.

   La relación de confianza debe tener un objeto de entidad principal en el que la clave sea `AWS` y el valor sea el ARN de la cuenta A, como en el siguiente ejemplo.

   ```
   ...
   "Principal": 
   { 
      "AWS": ["arn:aws:iam::account-A-id:user/username"]
   }, 
   ...
   ```

1. En la Cuenta B, cree también una política como la siguiente que permita la acción `CreateDataCatalog`. 

   ```
   {
    "Effect": "Allow",
    "Action": "athena:CreateDataCatalog",
    "Resource": "arn:aws:athena:*:account-B-id:datacatalog/*"
   }
   ```

1. Agregue la política que permite la acción `CreateDataCatalog` al rol de `AthenaCrossAccountCreate-account-A-id` que creó con la cuenta B. 

## Uso compartido de un origen de datos de la cuenta A con la cuenta B
<a name="xacct-fed-query-enable-sharing-a-lambda-data-source-in-account-a-with-account-b"></a>

Una vez establecidos los permisos, puede utilizar la página **Orígenes de datos y catálogos** en la consola de Athena para compartir un conector de datos de la cuenta (cuenta A) con otra cuenta (cuenta B). La cuenta A mantiene el control y la propiedad del conector. Cuando la cuenta A hace cambios de configuración en el conector, la configuración actualizada se aplica al conector compartido de la cuenta B.

**nota**  
Solo puede compartir un origen de datos de tipo Lambda y no es posible compartir orígenes de datos que utilicen conexiones de AWS Glue. Para obtener más información, consulte [Conectores de orígenes de datos disponibles](connectors-available.md).

**Para compartir un origen de datos de Lambda de la cuenta A con la cuenta B**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Si el panel de navegación de la consola no está visible, elija el menú de expansión de la izquierda.  
![\[Elija el menú de expansión.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/nav-pane-expansion.png)

1. Elija **Orígenes de datos y catálogos**.

1. En la página **Orígenes de datos y catálogos**, elija el enlace del conector que desea compartir.

1. En la página de detalles de un origen de datos de Lambda, en el menú **Acciones** de la esquina superior derecha, elija **Compartir**.

1. En el cuadro de diálogo ¿**Compartir *nombre de Lambda* con otra cuenta?**, introduzca la información necesaria.
   + En **Data source name** (Nombre de origen de datos), ingrese el nombre del origen de datos copiado tal como quiera que aparezca en la otra cuenta.
   + En **Account ID** ID de cuenta, ingrese el ID de la cuenta con la que quiera compartir su origen de datos (en este caso, la cuenta B).

1. Elija **Compartir**. El conector de datos compartidos que ha especificado se crea en la cuenta B. Los cambios de configuración del conector de la cuenta A se aplican al conector de la cuenta B.

## Incorporación de un origen de datos compartido de la cuenta A a la cuenta B
<a name="xacct-fed-query-enable-add-a-shared-lambda-function-arn-to-your-account"></a>

Como analista de datos, es posible que se le proporcione el ARN de un conector para agregarlo a la cuenta desde un administrador de datos. Puede utilizar la página **Orígenes de datos y catálogos** de la consola de Athena para agregar el ARN de Lambda proporcionado por el administrador de la cuenta.

**Para agregar el ARN de Lambda de un conector de datos compartido a la cuenta**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Si el panel de navegación no es visible, elija el menú de expansión de la izquierda.

1. Elija **Orígenes de datos y catálogos**.

1. En la página **Orígenes de datos y catálogos**, elija **Crear origen de datos**.

1. En la página **Elegir un origen de datos**, elija **Conector personalizado o compartido**.

1. Elija **Siguiente**.

1. En la página **Introducir detalles del origen de datos**, en la sección **Detalles de conexión**, para **Seleccionar o introducir una función de Lambda**, introduzca el ARN de Lambda de la cuenta A.

1. Elija **Siguiente**.

1. En la página **Revisar y crear**, elija **Crear origen de datos**.

## Solución de problemas
<a name="xacct-fed-query-enable-troubleshooting"></a>

Si recibe un mensaje de error que indica que la cuenta A no tiene permisos para asumir un rol en la cuenta B, asegúrese de que el nombre del rol creado en la cuenta B esté escrito correctamente y de que tenga adjunta la política adecuada.

# Actualización de un conector de origen de datos
<a name="connectors-updating"></a>

Athena recomienda actualizar periódicamente los conectores de orígenes de datos que utilice a la última versión para aprovechar las nuevas características y mejoras. La actualización de un conector de origen de datos incluye las instrucciones siguientes:

# Conexiones de Glue (recomendado)
<a name="connectors-updating-gc"></a>

## Búsqueda de la última versión de Athena Query Federation
<a name="connectors-updating-finding-the-latest-version"></a>

El número de versión más reciente de los conectores de orígenes de datos de Athena corresponde a la última versión de Athena Query Federation. En ciertos casos, las versiones de GitHub pueden ser ligeramente más recientes que las que están disponibles en el AWS Serverless Application Repository (SAR).

**Para buscar la última versión de Athena Query Federation**

1. Visite la URL de GitHub [https://github.com/awslabs/aws-athena-query-federation/releases/latest](https://github.com/awslabs/aws-athena-query-federation/releases/latest).

1. Anote el número de la versión en el encabezado de la página principal en el siguiente formato:

   **Versión v** *year*.*week\$1of\$1year*.*iteration\$1of\$1week* **de Athena Query Federation **

   Por ejemplo, el número de versión de la **Versión v2023.8.3 de Athena Query Federation** es 2023.8.3.

## Cómo encontrar la versión del conector
<a name="connectors-find-version"></a>

Siga estos pasos para determinar qué versión del conector utiliza actualmente.

**Para encontrar la versión del conector**

1. En la página de la consola de Lambda de la aplicación de Lambda, seleccione la pestaña **Imagen**.

1. En la pestaña Imagen, localice el URI de la imagen. La URI sigue este formato:

   ```
   Image_location_account.dkr.ecr.us-west-2.amazonaws.com/athena-federation-repository:Version
   ```

1. El número de versión del URI de la imagen sigue el formato `year.week_of_year.iteration_of_week` (por ejemplo, `2021.42.1`). Este número representa la versión del conector.

## Implementación de una nueva versión del conector
<a name="connectors-deploy-new-version"></a>

Siga estos pasos para implementar una nueva versión del conector.

**Para implementar una nueva versión del conector**

1. Para encontrar la versión deseada, siga el procedimiento para hallar la versión más reciente de la federación de consultas de Athena.

1. En la función de Lambda del conector federado, localice ImageURI y actualice la etiqueta a la versión deseada. Por ejemplo:

   De:

   ```
   509399631660.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.15.1
   ```

   Para:

   ```
   509399631660.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.26.1
   ```

**nota**  
Si la versión actual es anterior a la 2025.15.1, tenga en cuenta que se producirán cambios importantes:  
El nombre del repositorio se ha actualizado a `athena-federation-repository`
En las versiones anteriores a esta actualización, es posible que la anulación del comando no esté configurada. Debe configurarlo en el controlador compuesto.

# Conexiones heredadas
<a name="connectors-updating-legacy"></a>

## Búsqueda de la última versión de Athena Query Federation
<a name="connectors-updating-finding-the-latest-version"></a>

El número de versión más reciente de los conectores de orígenes de datos de Athena corresponde a la última versión de Athena Query Federation. En ciertos casos, las versiones de GitHub pueden ser ligeramente más recientes que las que están disponibles en el AWS Serverless Application Repository (SAR).

**Para buscar la última versión de Athena Query Federation**

1. Visite la URL de GitHub [https://github.com/awslabs/aws-athena-query-federation/releases/latest](https://github.com/awslabs/aws-athena-query-federation/releases/latest).

1. Anote el número de la versión en el encabezado de la página principal en el siguiente formato:

   **Versión v** *year*.*week\$1of\$1year*.*iteration\$1of\$1week* **de Athena Query Federation **

   Por ejemplo, el número de versión de la **Versión v2023.8.3 de Athena Query Federation** es 2023.8.3.

## Búsqueda y notas de los nombres de los recursos
<a name="connectors-updating-finding-and-noting-resource-names"></a>

Como preparación para la actualización, debe buscar y anotar la siguiente información:

1. El nombre de la función de Lambda del conector.

1. Las variables de entorno para la función de Lambda.

1. El nombre de la aplicación de Lambda, que administra la función de Lambda del conector.

**Para buscar nombres de recursos en la consola de Athena**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Si el panel de navegación de la consola no está visible, elija el menú de expansión de la izquierda.  
![\[Elija el menú de expansión.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/nav-pane-expansion.png)

1. En el panel de navegación, elija **Orígenes de datos y catálogos**.

1. En la columna **Nombre del origen de datos**, elija el enlace al origen de datos del conector.

1. En la sección **Detalles del origen de datos**, en **Función de Lambda**, elija el enlace a su función de Lambda.  
![\[Elija el enlace a su función de Lambda.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/connectors-updating-1.png)

1. En la página **Funciones**, en la columna **Nombre de la función**, anote el nombre de la función del conector.  
![\[Anote el nombre de la función.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/connectors-updating-2.png)

1. Seleccione el enlace del nombre de la función.

1. En la sección **Información general de la función**, seleccione la pestaña **Configuración**.

1. En el panel de la izquierda, elija **Variables de entorno**.

1. En la sección **Variables de entorno**, anote las claves y sus valores correspondientes.

1. Desplácese hasta la parte superior de la página.

1. En el mensaje **Esta función pertenece a una aplicación. Haga clic aquí para administrarla**, seleccione el enlace **Haga clic aquí**.

1. En la página **serverlessrepo-*your\$1application\$1name***, anote el nombre de su aplicación sin **serverlessrepo**. Por ejemplo, si el nombre de la aplicación es **serverlessrepo-DynamoDbTestApp**, el nombre de su aplicación es **DynamoDbTestApp**.

1. Permanezca en la página de la consola de Lambda de su aplicación y, a continuación, siga con los pasos de **Búsqueda de la versión del conector que está utilizando**.

## Búsqueda de la versión del conector que utiliza
<a name="connectors-updating-finding-the-version-that-you-are-using"></a>

Siga estos pasos para encontrar la versión del conector que está utilizando.

**Para buscar la versión del conector que está utilizando**

1. En la página de la consola de Lambda correspondiente a la aplicación de Lambda, seleccione la pestaña **Implementaciones.**

1. En la pestaña **Implementaciones**, expanda la **Plantilla de SAM**.

1. Busque **CodeUri**.

1. En el campo **Clave** de **CodeUri**, busque la siguiente cadena:

   ```
   applications-connector_name-versions-year.week_of_year.iteration_of_week/hash_number
   ```

   En el siguiente ejemplo, se muestra una cadena para el conector de CloudWatch:

   ```
   applications-AthenaCloudwatchConnector-versions-2021.42.1/15151159...
   ```

1. Registre el valor *year*.*week\$1of\$1year*.*iteration\$1of\$1week* (por ejemplo, **2021.42.1**). Esta es la versión de su conector.

## Implementación de una nueva versión del conector
<a name="connectors-updating-deploying-the-new-version"></a>

Siga estos pasos para implementar una nueva versión del conector.

**Para implementar una nueva versión del conector**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Si el panel de navegación de la consola no está visible, elija el menú de expansión de la izquierda.  
![\[Elija el menú de expansión.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/nav-pane-expansion.png)

1. En el panel de navegación, elija **Orígenes de datos y catálogos**.

1. En la página **Orígenes de datos y catálogos**, elija **Crear origen de datos**.

1. Seleccione el origen de datos que desee actualizar y, a continuación, seleccione **Siguiente**.

1. En la sección **Detalles de la conexión**, elija **Crear función de Lambda**. Con esto, se abre la consola de Lambda, donde podrá implementar la aplicación actualizada.  
![\[Página del conector en la consola de AWS Lambda.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/connectors-updating-3.png)

1. Como en realidad no va a crear un nuevo origen de datos, puede cerrar la pestaña de la consola de Athena.

1. En la página de la consola de Lambda correspondiente al conector, proceda con los siguientes pasos:

   1. Asegúrese de haber eliminado el prefijo **serverlessrepo-** del nombre de la aplicación y, a continuación, copie el nombre de la aplicación en el campo **Nombre de la aplicación**.

   1. Copie el nombre de la función de Lambda en el campo **AthenaCatalogName**. Algunos conectores llaman a este campo **LambdaFunctionName**.

   1. Copie las variables de entorno que ha registrado en los campos correspondientes.

1. Seleccione la opción **Confirmo que esta aplicación puede crear políticas de recursos y roles de IAM personalizados** y, a continuación, elija **Implementar**.

1. Para comprobar que la aplicación se ha actualizado, seleccione la pestaña **Implementaciones**.

   En la sección **Historial de implementaciones**, se muestra que la actualización se ha completado.  
![\[Se ha completado la actualización del conector.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/connectors-updating-4.png)

1. Para confirmar el nuevo número de versión, puede expandir la **Plantilla de SAM** como antes, buscar **CodeUri** y comprobar el número de versión del conector en el campo **Clave**.

Ahora puede usar el conector actualizado para crear consultas federadas de Athena.