

# Uso de Athena para consultar datos registrados en AWS Lake Formation
<a name="security-athena-lake-formation"></a>

[AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) permite definir y aplicar políticas de acceso a nivel de base de datos, tabla y columna cuando se utilizan consultas de Athena para leer datos almacenados en Amazon S3 o a los que se obtiene acceso a través de orígenes de datos federados. Lake Formation proporciona un nivel de autorización y gobernanza sobre los datos almacenados en Amazon S3 o en catálogos de datos federados. Es posible utilizar una jerarquía de permisos en Lake Formation para conceder o revocar permisos para leer objetos del catálogo de datos como bases de datos, tablas y columnas. Lake Formation simplifica la administración de permisos y le permite implementar un control de acceso detallado (FGAC, fine-grained access control) para los datos.

Se puede utilizar Athena para consultar tanto los datos registrados en Lake Formation como los datos que no están registrados en Lake Formation.

Los permisos de Lake Formation se aplican cuando se utiliza Athena para consultar datos de origen desde ubicaciones de Amazon S3 o catálogos de datos registrados en Lake Formation. Los permisos de Lake Formation también se aplican cuando se crean bases de datos y tablas que apuntan a catálogos de datos o ubicaciones de datos de Amazon S3 registrados.

Los permisos de Lake Formation no se aplican cuando se escriben objetos, ni cuando se consultan datos o metadatos que no están registrados en Lake Formation. En el caso de los datos y metadatos de origen que no están registrados en Lake Formation, las políticas de permisos de IAM y las acciones de AWS Glue determinan el acceso. Las ubicaciones de resultados de consultas de Athena en Amazon S3 no se pueden registrar con Lake Formation y las políticas de permisos de IAM para el acceso de control de Amazon S3. Además, los permisos de Lake Formation no se aplican al historial de consultas de Athena. Puede utilizar grupos de trabajo de Athena para controlar el acceso al historial de consultas.

Para obtener más información acerca de Lake Formation, consulte [Preguntas frecuentes sobre Lake Formation](https://aws.amazon.com/lake-formation/faqs/) en la [Guía para desarrolladores de AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html).

## Aplicación de permisos de Lake Formation a bases de datos y tablas existentes
<a name="lf-athena-apply-lf-permissions-to-existing-databases-and-tables"></a>

Si es nuevo en Athena y utiliza Lake Formation para configurar el acceso a los datos de consulta, no necesita configurar políticas de IAM para que los usuarios puedan leer datos y crear metadatos. Puede utilizar Lake Formation para administrar permisos.

El registro de datos con Lake Formation y la actualización de políticas de permisos de IAM no es un requisito. Si los datos no están registrados en Lake Formation, los usuarios de Athena que dispongan de los permisos adecuados podrán seguir consultando los datos que no estén registrados en Lake Formation.

Si ya tiene usuarios de Athena que consultan datos de Amazon S3 que no estén registrados en Lake Formation, puede actualizar los permisos de IAM para Amazon S3 (y para AWS Glue Data Catalog, si procede) con el fin de utilizar los permisos de Lake Formation para administrar el acceso de los usuarios de forma centralizada. Para obtener permiso para leer ubicaciones de datos de Amazon S3, puede actualizar políticas basadas en recursos y políticas basadas en identidad para modificar permisos de Amazon S3. Para obtener acceso a los metadatos, si ha configurado políticas de nivel de recursos para un control de acceso detallado con AWS Glue, puede utilizar permisos de Lake Formation para administrar el acceso en su lugar. 

Para obtener más información, consulte [Configuración del acceso a las bases de datos y tablas en el AWS Glue Data Catalog](fine-grained-access-to-glue-resources.md) y [Actualización de permisos de datos de AWS Glue para el modelo de AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html) en la *Guía para desarrolladores de AWS Lake Formation*.

**Topics**
+ [Aplicación de permisos de Lake Formation a bases de datos y tablas existentes](#lf-athena-apply-lf-permissions-to-existing-databases-and-tables)
+ [Cómo funciona el acceso a los datos](lf-athena-access.md)
+ [Consideraciones y limitaciones](lf-athena-limitations.md)
+ [Acceso entre cuentas](lf-athena-limitations-cross-account.md)
+ [Administración de los permisos de usuario](lf-athena-user-permissions.md)
+ [Uso de Lake Formation y JDBC u ODBC para el acceso federado](security-athena-lake-formation-jdbc.md)

# Cómo accede Athena a los datos registrados en Lake Formation
<a name="lf-athena-access"></a>

El flujo de trabajo de acceso que se describe en esta sección se aplica al ejecutar consultas de Athena en ubicaciones de Amazon S3, catálogos de datos u objetos de metadatos registrados en Lake Formation. Para obtener más información, consulte [Registro de un lago de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html) en la *Guía para desarrolladores de AWS Lake Formation*. Además de registrar los datos, el administrador de Lake Formation aplica permisos de Lake Formation que conceden o revocan el acceso a los metadatos en el catálogo de datos, AWS Glue Data Catalog, o la ubicación de datos en Amazon S3. Para obtener más información, consulte [Seguridad y control de acceso a metadatos y datos](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html#security-data-access-permissions) en la *Guía para desarrolladores de AWS Lake Formation*.

Cada vez que una entidad principal de Athena (usuario, grupo o rol) ejecuta una consulta sobre datos registrados mediante Lake Formation, Lake Formation verifica que la entidad principal tenga los permisos de Lake Formation adecuados para la base de datos, la tabla y la ubicación del origen de datos según corresponda para la consulta. Si la entidad principal tiene acceso, Lake Formation *ofrece* credenciales temporales a Athena y se ejecuta la consulta.

En el siguiente diagrama se ilustra cómo funciona el suministro de credenciales en Athena consulta a consulta para una consulta `SELECT` hipotética en una tabla con una ubicación de Amazon S3 o un catálogo de datos registrado en Lake Formation:

![\[Flujo de trabajo de venta de credenciales para una consulta en una tabla de Athena.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/lake-formation-athena-security.png)


1. Una entidad principal ejecuta una consulta `SELECT` en Athena.

1. Athena analiza la consulta y verifica los permisos de Lake Formation para ver si se ha concedido a la entidad principal acceso a la tabla y a las columnas de la tabla.

1. Si la entidad principal tiene acceso, Athena solicita credenciales de Lake Formation. Si la entidad principal *no* tiene acceso, Athena emite un error de acceso denegado.

1. Lake Formation emite credenciales para que Athena las utilice al leer datos de Amazon S3 o del catálogo, junto con la lista de columnas permitidas.

1. Athena utiliza las credenciales temporales de Lake Formation para consultar los datos de Amazon S3 o del catálogo. Una vez completada la consulta, Athena descarta las credenciales.

# Consideraciones y limitaciones para consultar datos registrados en Lake Formation
<a name="lf-athena-limitations"></a>

Tenga en cuenta lo siguiente al utilizar Athena para consultar los datos registrados en Lake Formation. Para obtener información adicional, consulte [Problemas conocidos de AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/limitations.html) en la *Guía para desarrolladores de AWS Lake Formation*.

**Topics**
+ [Metadatos de columna visibles para usuarios sin permisos de datos para columnas en algunas circunstancias](#lf-athena-limitations-column-metadata)
+ [Uso de permisos de Lake Formation para vistas](#lf-athena-limitations-permissions-to-views)
+ [Compatibilidad con DDL de Iceberg](#lf-athena-limitations-iceberg-ddl-operations)
+ [Control de acceso detallado de Lake Formation y grupos de trabajo de Athena](#lf-athena-limitations-fine-grained-access-control)
+ [Ubicación de los resultados de consulta de Athena en Simple Storage Service (Amazon S3) no registrados en Lake Formation](#lf-athena-limitations-query-results-location)
+ [Uso de grupos de trabajo de Athena para limitar el acceso al historial de consultas](#lf-athena-limitations-use-workgroups-to-limit-access-to-query-history)
+ [Las ubicaciones de Amazon S3 cifradas con CSE-KMS registradas en Lake Formation no se pueden consultar en Athena](#lf-athena-limitations-cse-kms)
+ [Las ubicaciones de datos particionadas registradas en Lake Formation deben estar en subdirectorios de tablas](#lf-athena-limitations-partioned-data-locations)
+ [Las consultas Create Table As Select (CTAS) requieren permisos de escritura de Amazon S3](#lf-athena-limitations-ctas-queries)
+ [El permiso DESCRIBE es necesario en la base de datos predeterminada](#lf-athena-limitations-describe-default)

## Metadatos de columna visibles para usuarios no autorizados en algunas circunstancias con Avro y SerDe personalizado
<a name="lf-athena-limitations-column-metadata"></a>

La autorización de nivel de columna de Lake Formation impide que los usuarios obtengan acceso a los datos de las columnas para las que el usuario no tiene permisos de Lake Formation. Sin embargo, en determinadas situaciones, los usuarios pueden obtener acceso a los metadatos que describen todas las columnas de la tabla, incluidas las columnas para las que no tienen permisos sobre los datos.

Esto ocurre cuando los metadatos de columna se almacenan en propiedades de tabla para tablas que utilizan el formato de almacenamiento Apache Avro o un serializador/deserializador (SerDe) personalizado en el que el esquema de tabla se define en las propiedades de la tabla junto con la definición del SerDe. Cuando utilice Athena con Lake Formation, le recomendamos que revise el contenido de las propiedades de la tabla que registra con Lake Formation y, siempre que sea posible, limite la información almacenada en las propiedades de la tabla para evitar que los metadatos confidenciales sean visibles para los usuarios.

## Descripción de Lake Formation y sus vistas
<a name="lf-athena-limitations-permissions-to-views"></a>

Para los datos registrados en Lake Formation, un usuario de Athena puede crear una `VIEW` solo si tiene permisos de Lake Formation para las tablas, las columnas y las ubicaciones de datos de Amazon S3 de origen en los que se basa la `VIEW`. Después de crear una `VIEW` en Athena, los permisos de Lake Formation se pueden aplicar a la `VIEW`. Los permisos de nivel de columna no están disponibles para un `VIEW`. Los usuarios que tienen permisos de Lake Formation para una `VIEW` pero no tienen permisos para la tabla y las columnas en las que se basó la vista no pueden utilizar la `VIEW` para consultar datos. Sin embargo, los usuarios con esta combinación de permisos pueden utilizar instrucciones como `DESCRIBE VIEW`, `SHOW CREATE VIEW`, y `SHOW COLUMNS` para ver metadatos de `VIEW`. Por este motivo, asegúrese de alinear los permisos de Lake Formation para cada `VIEW` con los permisos de tabla subyacentes. Los filtros de celda definidos en una tabla no se aplican a una `VIEW` para esa tabla. Los nombres de enlace de recursos deben tener el mismo nombre que el recurso de la cuenta de origen. Existen limitaciones adicionales al trabajar con vistas en una configuración multicuenta. Para obtener más información sobre cómo configurar los permisos para vistas compartidas entre cuentas, consulte [Configuración del acceso al catálogo de datos entre cuentas](lf-athena-limitations-cross-account.md).

## Compatibilidad con DDL de Iceberg
<a name="lf-athena-limitations-iceberg-ddl-operations"></a>

Actualmente, Athena no admite operaciones de DDL en tablas de Iceberg cuya ubicación esté registrada en Lake Formation. Si se intenta ejecutar una consulta DDL en una de estas tablas de Iceberg, se puede producir un error de acceso denegado a Amazon S3 o se puede producir un error por agotamiento del tiempo de espera de la consulta. Las operaciones de DDL en las tablas de Iceberg requieren que el usuario tenga acceso directo de Amazon S3 a la ubicación de la tabla de Iceberg.

## Control de acceso detallado de Lake Formation y grupos de trabajo de Athena
<a name="lf-athena-limitations-fine-grained-access-control"></a>

Los usuarios del mismo grupo de trabajo de Athena pueden ver los datos que el control de acceso detallado de Lake Formation ha configurado para que el grupo de trabajo pueda acceder a ellos. Para obtener más información sobre el uso de un control de acceso detallado en Lake Formation, consulte [Manage fine-grained access control using AWS Lake Formation](https://aws.amazon.com/blogs/big-data/manage-fine-grained-access-control-using-aws-lake-formation/) en el *Blog de macrodatos de AWS*. 

## Ubicación de los resultados de consulta de Athena en Simple Storage Service (Amazon S3) no registrados en Lake Formation
<a name="lf-athena-limitations-query-results-location"></a>

Las ubicaciones de los resultados de consulta en Amazon S3 para Athena no se pueden registrar en Lake Formation. Los permisos de Lake Formation no limitan el acceso a estas ubicaciones. A menos que limite el acceso, los usuarios de Athena pueden acceder a los archivos de resultados de consultas y metadatos cuando no tienen permisos de Lake Formation para los datos. Para evitar esto, le recomendamos que utilice grupos de trabajo para especificar la ubicación de los resultados de consulta y alinear la pertenencia a grupos de trabajo con permisos de Lake Formation. A continuación, puede utilizar políticas de permisos de IAM para limitar el acceso a ubicaciones de resultados de consulta. Para obtener más información sobre los resultados de consultas, consulte [Trabajo con resultados de la consulta y consultas recientes](querying.md).

## Uso de grupos de trabajo de Athena para limitar el acceso al historial de consultas
<a name="lf-athena-limitations-use-workgroups-to-limit-access-to-query-history"></a>

El historial de consultas de Athena expone una lista de consultas guardadas y las cadenas de consultas completas. A menos que utilice grupos de trabajo para separar el acceso a los historiales de consultas, los usuarios de Athena que no tengan autorización para consultar datos en Lake Formation pueden ver cadenas de consulta ejecutadas en esos datos, incluidos nombres de columna, criterios de selección, etc. Le recomendamos que utilice grupos de trabajo para separar los historiales de consultas y alinear la pertenencia al grupo de trabajo de Athena con permisos de Lake Formation para limitar el acceso. Para obtener más información, consulte [Uso de grupos de trabajo para controlar el acceso a las consultas y los costos](workgroups-manage-queries-control-costs.md).

## Consulta de tablas cifradas con CSE\$1KMS registradas en Lake Formation
<a name="lf-athena-limitations-cse-kms"></a>

Las tablas de formato de tabla abierta (OTF), como Apache Iceberg, que tienen las siguientes características no se pueden consultar con Athena:
+ Las tablas se basan en ubicaciones de datos de Amazon S3 registradas en Lake Formation.
+ Los objetos de Amazon S3 se cifran mediante el cifrado del cliente (CSE).
+ El cifrado utiliza claves administradas por el cliente de AWS KMS (`CSE_KMS`).

Para consultar tablas que no son OTF (que están cifradas con una clave `CSE_KMS`), añada el siguiente bloque a la política de la clave de AWS KMS que utiliza para el cifrado CSE. *<KMS\$1KEY\$1ARN>* es el ARN de la clave de AWS KMS que cifra los datos. *<IAM-ROLE-ARN>* es el ARN del rol de IAM que registra la ubicación de Amazon S3 en Lake Formation.

```
{
    "Sid": "Allow use of the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "*"
    },
    "Action": "kms:Decrypt",
    "Resource": "<KMS-KEY-ARN>",
    "Condition": {
        "ArnLike": {
            "aws:PrincipalArn": "<IAM-ROLE-ARN>"
        }
    }
}
```

## Las ubicaciones de datos particionadas registradas en Lake Formation deben estar en subdirectorios de tablas
<a name="lf-athena-limitations-partioned-data-locations"></a>

Las tablas particionadas registradas en Lake Formation deben tener datos particionados en directorios que sean subdirectorios de la tabla en Amazon S3. Por ejemplo, una tabla con la ubicación `s3://amzn-s3-demo-bucket/mytable` y las particiones `s3://amzn-s3-demo-bucket/mytable/dt=2019-07-11`, `s3://amzn-s3-demo-bucket/mytable/dt=2019-07-12`, etc. se puede registrar en Lake Formation y consultar mediante Athena. Por otra parte, una tabla con la ubicación `s3://amzn-s3-demo-bucket/mytable` y las particiones ubicadas en `s3://amzn-s3-demo-bucket/dt=2019-07-11`, `s3://amzn-s3-demo-bucket/dt=2019-07-12`, etc. no se puede registrar en Lake Formation. Debido a que estas particiones no son subdirectorios de `s3://amzn-s3-demo-bucket/mytable`, tampoco se pueden leer desde Athena.

## Las consultas Create Table As Select (CTAS) requieren permisos de escritura de Amazon S3
<a name="lf-athena-limitations-ctas-queries"></a>

Las consultas Create Table As Statements (CTAS) requieren acceso de escritura a la ubicación de las tablas de Amazon S3. Para ejecutar consultas CTAS sobre datos registrados en Lake Formation, los usuarios de Athena deben tener permisos de IAM para escribir en la tabla ubicaciones de Amazon S3, además de los permisos de Lake Formation correspondientes para leer las ubicaciones de datos. Para obtener más información, consulte [Creación de una tabla a partir de los resultados de una consulta (CTAS)](ctas.md).

## El permiso DESCRIBE es necesario en la base de datos predeterminada
<a name="lf-athena-limitations-describe-default"></a>

Se requiere el permiso `DESCRIBE` de Lake Formation en la base de datos `default` para que Lake Formation pueda verlo. El siguiente ejemplo de comando AWS CLI otorga el permiso `DESCRIBE` en la base de datos `default` al usuario `datalake_user1` en la cuenta `111122223333` de AWS.

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Database": {"Name":"default"}}
```

Para obtener más información, consulte [DESCRIBE](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html#perm-describe) en la *Guía para desarrolladores de AWS Lake Formation*.

# Configuración del acceso al catálogo de datos entre cuentas
<a name="lf-athena-limitations-cross-account"></a>

Para acceder a un catálogo de datos en otra cuenta, puede utilizar la característica AWS Glue entre cuentas de Athena o configurar el acceso entre cuentas en Lake Formation.

## Opción A: configuración del acceso al catálogo de datos entre cuentas en Athena
<a name="lf-athena-limitations-cross-account-glue"></a>

Puede utilizar la característica de catálogo de AWS Glue entre cuentas de Athena para registrar el catálogo en su cuenta. Esta capacidad está disponible únicamente en la versión 2 o una versión posterior del motor Athena y está limitada al uso de la misma región entre cuentas. Para obtener más información, consulte [Registrar un catálogo de datos desde otra cuenta](data-sources-glue-cross-account.md).

Si el catálogo de datos que se va a compartir tiene una política de recursos configurada en AWS Glue, esta se debe actualizar para permitir el acceso a AWS Resource Access Manager y otorgar permisos a la cuenta B para usar el catálogo de datos de la cuenta A.

Para obtener más información, consulte [Configuración del acceso entre cuentas a los catálogos de datos de AWS Glue](security-iam-cross-account-glue-catalog-access.md).

## Opción B: configuración del acceso entre cuentas en Lake Formation
<a name="lf-athena-limitations-cross-account-glue-lf-xacct"></a>

AWS Lake Formation le permite utilizar una sola cuenta para administrar un catálogo de datos central. Puede utilizar esta característica para implementar el [acceso entre cuentas](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-cross-account.html) Acceder los metadatos del catálogo de datos y los datos subyacentes. Por ejemplo, una cuenta de propietario puede conceder permiso `SELECT` en una tabla a otra cuenta (destinatario). 

Para que aparezca una base de datos compartida o una tabla en el Editor de consultas de Athena, debe [crear un enlace de recursos](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html) en Lake Formation a la base de datos o tabla compartida. Cuando la cuenta de destinatario en Lake Formation consulta la tabla del propietario, [CloudTrail](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-logging.html) agrega el evento de acceso a datos a los registros de la cuenta de destinatario y de la cuenta de propietario.

Para las vistas compartidas, tenga en cuenta los siguientes puntos:
+ Las consultas se ejecutan en enlaces de recursos de destino, no en la vista o la tabla de origen y luego, la salida se comparte en la cuenta de destino.
+ No es suficiente compartir solo la vista. Todas las tablas que participan en la creación de la vista deben formar parte del recurso compartido entre cuentas.
+ El nombre del enlace de recursos creado en los recursos compartidos debe coincidir con el nombre del recurso en la cuenta de propietario. Si el nombre no coincide, aparece un mensaje de error como el siguiente Failed analyzing stored view 'awsdatacatalog.*my-lf-resource-link*.*my-lf-view*': line 3:3: Schema *schema\$1name* does not exist (Se produjo un error al momento de analizar la vista almacenada 'awsdatacatalog.my-lf-resource-link.my-lf-view': line 3:3: El esquema schema\$1name no existe).

Para obtener más información sobre el acceso entre cuentas en Lake Formation, consulte los siguientes recursos en la *Guía para desarrolladores de AWS Lake Formation*:

 [Acceso entre cuentas](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-cross-account.html) 

 [Cómo funcionan los enlaces de recursos en Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html) 

 [Registro entre cuentas de CloudTrail](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-logging.html) 

# Administración de permisos de usuario de Lake Formation y Athena
<a name="lf-athena-user-permissions"></a>

Lake Formation suministra credenciales para consultar almacenes de datos de Amazon S3 o catálogos federados registrados en Lake Formation. Si anteriormente utilizaba políticas de IAM para permitir o denegar permisos de lectura de catálogos o ubicaciones de datos en Amazon S3, puede utilizar permisos de Lake Formation en su lugar. Sin embargo, otros permisos de IAM siguen siendo necesarios.

Siempre que utilice políticas de IAM, asegúrese de seguir las prácticas recomendadas de IAM. Para obtener más información, consulte la sección [Prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

En las siguientes secciones, se resumen los permisos necesarios para utilizar Athena para consultar los datos registrados en Lake Formation. Para obtener más información, consulte [Seguridad en AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/security.html) en la *Guía para desarrolladores de AWS Lake Formation*.

**Topics**
+ [Permisos basados en identidad para Lake Formation y Athena](#lf-athena-user-permissions-identity-based)
+ [Permisos de Amazon S3 para las ubicaciones de los resultados de las consultas de Athena](#lf-athena-user-permissions-query-results-locations)
+ [Suscripciones a grupos de trabajo de Athena para el historial de consultas](#lf-athena-user-permissions-workgroup-memberships-query-history)
+ [Permisos de Lake Formation para datos](#lf-athena-user-permissions-data)
+ [Permisos de IAM para escribir en ubicaciones de Amazon S3](#lf-athena-user-permissions-s3-write)
+ [Permisos para datos cifrados, metadatos y resultados de consultas de Athena](#lf-athena-user-permissions-encrypted)
+ [Permisos basados en recursos para buckets de Amazon S3 en cuentas externas (opcional)](#lf-athena-user-permissions-s3-cross-account)

## Permisos basados en identidad para Lake Formation y Athena
<a name="lf-athena-user-permissions-identity-based"></a>

Cualquier persona que utilice Athena para consultar datos registrados en Lake Formation debe tener una política de permisos de IAM que permita la acción `lakeformation:GetDataAccess`. La [AWSPolítica administrada de : AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy) permite esta acción. Si utiliza políticas insertadas, asegúrese de actualizar las políticas de permisos para permitir esta acción.

En Lake Formation, un *administrador de lago de datos* tiene permisos para crear objetos de metadatos, como bases de datos y tablas, conceder permisos de Lake Formation a otros usuarios y registrar nuevas ubicaciones de Amazon S3 o catálogos de datos. Para registrar nuevas ubicaciones, se necesitan permisos para el rol vinculado al servicio para Lake Formation. Para obtener más información, consulte [Creación de un administrador de lago de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html#create-data-lake-admin) y [Permisos de roles vinculados al servicio para Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html#service-linked-role-permissions) en la *Guía para desarrolladores de AWS Lake Formation*.

Un usuario de Lake Formation puede utilizar Athena para consultar bases de datos, tablas, columnas de tablas y catálogos o almacenes de datos de Amazon S3 subyacentes en función de los permisos de Lake Formation concedidos por los administradores del lago de datos. Los usuarios no pueden crear bases de datos ni tablas, ni registrar nuevas ubicaciones de Amazon S3 con Lake Formation. Para obtener más información, consulte [Creación de un usuario de lago de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/cloudtrail-tut-create-lf-user.html) en la *Guía para desarrolladores de AWS Lake Formation*.

En Athena, las políticas de permisos basadas en identidades, incluidas las de los grupos de trabajo de Athena, siguen controlando el acceso a las acciones de Athena para los usuarios de cuentas de Amazon Web Services. Además, el acceso federado podría proporcionarse a través de la autenticación basada en SAML disponible con controladores de Athena. Para obtener más información, consulte [Uso de grupos de trabajo para controlar el acceso a las consultas y los costos](workgroups-manage-queries-control-costs.md), [Uso de políticas de IAM para el control del acceso al grupo de trabajo](workgroups-iam-policy.md) y [Habilitación del acceso federado a la API de Athena](access-federation-saml.md).

Para obtener más información, consulte [Concesión de permisos de Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html) en la *Guía para desarrolladores de AWS Lake Formation*.

## Permisos de Amazon S3 para las ubicaciones de los resultados de las consultas de Athena
<a name="lf-athena-user-permissions-query-results-locations"></a>

Las ubicaciones de los resultados de consulta en Amazon S3 para Athena no se pueden registrar en Lake Formation. Los permisos de Lake Formation no limitan el acceso a estas ubicaciones. A menos que limite el acceso, los usuarios de Athena pueden acceder a los archivos de resultados de consultas y metadatos cuando no tienen permisos de Lake Formation para los datos. Para evitar esto, le recomendamos que utilice grupos de trabajo para especificar la ubicación de los resultados de consulta y alinear la pertenencia a grupos de trabajo con permisos de Lake Formation. A continuación, puede utilizar políticas de permisos de IAM para limitar el acceso a ubicaciones de resultados de consulta. Para obtener más información sobre los resultados de consultas, consulte [Trabajo con resultados de la consulta y consultas recientes](querying.md).

## Suscripciones a grupos de trabajo de Athena para el historial de consultas
<a name="lf-athena-user-permissions-workgroup-memberships-query-history"></a>

El historial de consultas de Athena expone una lista de consultas guardadas y las cadenas de consultas completas. A menos que utilice grupos de trabajo para separar el acceso a los historiales de consultas, los usuarios de Athena que no tengan autorización para consultar datos en Lake Formation pueden ver cadenas de consulta ejecutadas en esos datos, incluidos nombres de columna, criterios de selección, etc. Le recomendamos que utilice grupos de trabajo para separar los historiales de consultas y alinear la pertenencia al grupo de trabajo de Athena con permisos de Lake Formation para limitar el acceso. Para obtener más información, consulte [Uso de grupos de trabajo para controlar el acceso a las consultas y los costos](workgroups-manage-queries-control-costs.md).

## Permisos de Lake Formation para datos
<a name="lf-athena-user-permissions-data"></a>

Además del permiso de referencia para utilizar Lake Formation, los usuarios de Athena deben tener permisos de Lake Formation para obtener acceso a los recursos que consultan. Un administrador de Lake Formation concede y administra estos permisos. Para obtener más información, consulte [Seguridad y control de acceso a metadatos y datos](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html#security-data-access-permissions) en la *Guía para desarrolladores de AWS Lake Formation*.

## Permisos de IAM para escribir en ubicaciones de Amazon S3
<a name="lf-athena-user-permissions-s3-write"></a>

Los permisos de Lake Formation para Amazon S3 no incluyen la capacidad de escribir en Amazon S3. Las consultas Create Table As Statements (CTAS) requieren acceso de escritura a la ubicación de las tablas de Amazon S3. Para ejecutar consultas CTAS sobre datos registrados en Lake Formation, los usuarios de Athena deben tener permisos de IAM para escribir en la tabla ubicaciones de Amazon S3, además de los permisos de Lake Formation correspondientes para leer las ubicaciones de datos. Para obtener más información, consulte [Creación de una tabla a partir de los resultados de una consulta (CTAS)](ctas.md).

## Permisos para datos cifrados, metadatos y resultados de consultas de Athena
<a name="lf-athena-user-permissions-encrypted"></a>

Los datos de origen subyacentes en Amazon S3 y los metadatos del catálogo registrado en Lake Formation se pueden cifrar. No hay ningún cambio en la forma en que Athena gestiona el cifrado de los resultados de las consultas cuando se utiliza Athena para consultar los datos registrados en Lake Formation. Para obtener más información, consulte [Cifrado de los resultados de las consultas de Athena en Amazon S3](encrypting-query-results-stored-in-s3.md).
+ **Cifrado de datos de origen**: se admite el cifrado de datos de origen de ubicaciones de datos de Amazon S3. Los usuarios de Athena que consultan ubicaciones cifradas de Amazon S3 registradas en Lake Formation necesitan permisos para cifrar y descifrar datos. Para obtener más información acerca de los requisitos, consulte [Opciones de cifrado de Simple Storage Service (Amazon S3) compatibles](encryption.md#encryption-options-S3-and-Athena) y [Permisos para datos cifrados en Amazon S3](encryption.md#permissions-for-encrypting-and-decrypting-data). 
+ **Cifrado de metadatos**: se admite el cifrado de metadatos en AWS Glue Data Catalog. Para las entidades principales que utilizan Athena, las políticas basadas en identidad deben permitir las acciones `"kms:GenerateDataKey"`, `"kms:Decrypt"` y `"kms:Encrypt"` para la clave utilizada para cifrar los metadatos. Para obtener más información, consulte [Cifrado de su catálogo de datos](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html) en la *Guía para desarrolladores de AWS Glue* y en el [Configuración del acceso desde Athena a los metadatos cifrados en el AWS Glue Data Catalog](access-encrypted-data-glue-data-catalog.md).

## Permisos basados en recursos para buckets de Amazon S3 en cuentas externas (opcional)
<a name="lf-athena-user-permissions-s3-cross-account"></a>

Para consultar una ubicación de datos de Amazon S3 en una cuenta diferente, debe permitir el acceso a la ubicación una política de IAM basada en recursos (política de bucket). Para obtener más información, consulte [Configuración del acceso entre cuentas en Athena a los buckets de Amazon S3](cross-account-permissions.md).

Para obtener información sobre cómo acceder a los catálogos de otra cuenta, consulte [Opción A: configuración del acceso al catálogo de datos entre cuentas en Athena](lf-athena-limitations-cross-account.md#lf-athena-limitations-cross-account-glue).

# Uso de Lake Formation y controladores JDBC u ODBC para el acceso federado a Athena
<a name="security-athena-lake-formation-jdbc"></a>

Los controladores JDBC y ODBC de Athena admiten la federación basada en SAML 2.0 con Athena mediante proveedores de identidad Okta y Microsoft Active Directory Federation Services (AD FS). Al integrar Amazon Athena con AWS Lake Formation, habilita la autenticación basada en SAML en Athena con credenciales corporativas. Con Lake Formation y AWS Identity and Access Management (IAM), puede mantener un control de acceso detallado a nivel de columna sobre los datos disponibles para el usuario SAML. Con los controladores JDBC y ODBC de Athena, el acceso federado está disponible para acceso mediante herramientas o programación.

Para utilizar Athena a fin de acceder a una fuente de datos controlada por Lake Formation, debe habilitar la federación basada en SAML 2.0 mediante la configuración de su proveedor de identidades (IdP) y AWS Identity and Access Management (IAM). Para ver los pasos detallados, consulte [Tutorial: Configuración del acceso federado para usuarios de Okta a Athena utilizando Lake Formation y JDBC](security-athena-lake-formation-jdbc-okta-tutorial.md).

## Requisitos previos
<a name="security-athena-lake-formation-jdbc-prerequisites"></a>

Para utilizar Amazon Athena and Lake Formation para acceder federado, debe cumplir los siguientes requisitos:
+ Administrar las identidades corporativas con un proveedor de identidad existente basado en SAML, como Okta o Active Directory Federation Services (AD FS).
+ Utilizar el AWS Glue Data Catalog como almacén de metadatos.
+ Definir y administrar los permisos en Lake Formation para acceder a las bases de datos, tablas y columnas en AWS Glue Data Catalog. Para obtener más información, consulte la [Guía para desarrolladores de AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/).
+ Utilice la versión 2.0.14 o posterior del [controlador JDBC de Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html) o la versión 1.1.3 o posterior del [controlador ODBC de Athena](connect-with-odbc.md).

## Consideraciones y limitaciones
<a name="security-athena-lake-formation-jdbc-considerations-and-limitations"></a>

Cuando utilice el controlador JDBC u ODBC de Athena junto con Lake Formation para configurar el acceso federado a Athena, tenga en cuenta los siguientes puntos:
+ Actualmente, los controladores JDBC y ODBC de Athena admiten los proveedores de identidad de Okta, Servicios de federación de Active Directory (AD FS) y Azure AD. Si bien el controlador JDBC de Athena tiene una clase SAML genérica que se puede ampliar para utilizar otros proveedores de identidad, la compatibilidad con extensiones personalizadas que permiten que otros proveedores de identidad (IdP) se usen con Athena puede ser limitada.
+ El acceso de federación mediante los controladores JDBC y ODBC no es compatible con la característica de propagación de identidades fiables de IAM Identity Center.
+ Actualmente, no se puede utilizar la consola de Athena para configurar la compatibilidad con el uso de IdP y SAML con Athena. Para configurar esta compatibilidad, utilice el proveedor de identidad de terceros, las consolas de administración de Lake Formation e IAM y el cliente de controlador JDBC u ODBC.
+ Debe comprender la [especificación SAML 2.0](https://www.oasis-open.org/standards#samlv2.0) y cómo funciona con su proveedor de identidad antes de configurar su proveedor de identidad y SAML para su uso con Lake Formation y Athena.
+ Los proveedores SAML y los controladores JDBC y ODBC de Athena son proporcionados por terceros, por lo que la compatibilidad a través de AWS para los problemas relacionados con su uso puede ser limitada.

**Topics**
+ [Requisitos previos](#security-athena-lake-formation-jdbc-prerequisites)
+ [Consideraciones y limitaciones](#security-athena-lake-formation-jdbc-considerations-and-limitations)
+ [Tutorial: Configuración del acceso federado para usuarios de Okta a Athena utilizando Lake Formation y JDBC](security-athena-lake-formation-jdbc-okta-tutorial.md)

# Tutorial: Configuración del acceso federado para usuarios de Okta a Athena utilizando Lake Formation y JDBC
<a name="security-athena-lake-formation-jdbc-okta-tutorial"></a>

En este tutorial, se muestra cómo configurar Okta, AWS Lake Formation, permisos de AWS Identity and Access Management y el controlador JDBC de Athena para habilitar el uso federado basado en SAML de Athena. Lake Formation proporciona un control de acceso detallado sobre los datos disponibles en Athena para el usuario basado en SAML. Para establecer esta configuración, el tutorial utiliza la consola de desarrollador de Okta, las consolas de AWS IAM y Lake Formation, y la herramienta SQL Workbench/J.
<a name="security-athena-lake-formation-jdbc-okta-tutorial-prerequisites"></a>
**Requisitos previos**  
Este tutorial presupone que ha realizado las siguientes acciones:
+ Crear una cuenta de Amazon Web Services. Para crear una cuenta, visite la [página de inicio de Amazon Web Services](https://aws.amazon.com/).
+ [Configurar una ubicación de resultados de consulta](query-results-specify-location.md) para Athena en Amazon S3.
+ [Registrar una ubicación de bucket de datos de Amazon S3](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html) con Lake Formation.
+ Definir una [base de datos](https://docs.aws.amazon.com/glue/latest/dg/define-database.html) y [tablas](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html) en [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) que apunten a los datos en Amazon S3.
  + Si todavía no ha definido una tabla, [ejecute un rastreador AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) o [utilice Athena para definir una base de datos y una o más tablas](work-with-data.md) para ver los datos a los que desea obtener acceso.
  + En este tutorial, se utiliza una tabla basada en el [conjunto de datos de viajes de taxi de la ciudad de Nueva York](https://registry.opendata.aws/nyc-tlc-trip-records-pds/) disponible en el [Registro de datos abiertos de AWS](https://registry.opendata.aws/). El tutorial utiliza el nombre de la base de datos `tripdb` y el nombre de la tabla `nyctaxi`.

**Topics**
+ [Paso 1: Crear una cuenta de Okta](#security-athena-lake-formation-jdbc-okta-tutorial-step-1-create-an-okta-account)
+ [Paso 2: Agregar usuarios y grupos a Okta](#security-athena-lake-formation-jdbc-okta-tutorial-step-2-set-up-an-okta-application-for-saml-authentication)
+ [Paso 3: Configurar una aplicación de Okta para la autenticación SAML](#security-athena-lake-formation-jdbc-okta-tutorial-step-3-set-up-an-okta-application-for-saml-authentication)
+ [Paso 4: Crear un proveedor de identidad SAML de AWS y un rol de IAM para acceso a Lake Formation](#security-athena-lake-formation-jdbc-okta-tutorial-step-4-create-an-aws-saml-identity-provider-and-lake-formation-access-IAM-role)
+ [Paso 5: Agregar el rol de IAM y el proveedor de identidad SAML a la aplicación de Okta](#security-athena-lake-formation-jdbc-okta-tutorial-step-5-update-the-okta-application-with-the-aws-role-and-saml-identity-provider)
+ [Paso 6: Otorgar permisos de usuario y grupo a través de AWS Lake Formation](#security-athena-lake-formation-jdbc-okta-tutorial-step-6-grant-permissions-through-aws-lake-formation)
+ [Paso 7: Verificar el acceso a través del cliente JDBC de Athena](#security-athena-lake-formation-jdbc-okta-tutorial-step-7-verify-access-through-athena-jdbc-client)
+ [Conclusión](#security-athena-lake-formation-jdbc-okta-tutorial-conclusion)
+ [Recursos relacionados](#security-athena-lake-formation-jdbc-okta-tutorial-related-resources)

## Paso 1: Crear una cuenta de Okta
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-1-create-an-okta-account"></a>

En este tutorial, se utiliza Okta como proveedor de identidad basado en SAML. Si no dispone de una cuenta de Okta, puede crear una gratuita. Es necesaria una cuenta de Okta para poder crear una aplicación de Okta para la autenticación SAML.

**Para crear una cuenta de Okta**

1. Para utilizar Okta, vaya a la [página de registro para desarrolladores de Okta](https://developer.okta.com/signup/) y cree una cuenta de prueba gratuita de Okta. El servicio de edición de desarrollador es gratuito hasta los límites especificados por Okta en [developer.okta.com/pricing](https://developer.okta.com/pricing).

1. Cuando reciba el correo electrónico de activación, active la cuenta. 

   Se le asignará un nombre de dominio de Okta. Guarde el nombre de dominio como referencia. Más adelante, utilizará el nombre de dominio (*<okta-idp-domain>*) en la cadena JDBC que se conecta a Athena.

## Paso 2: Agregar usuarios y grupos a Okta
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-2-set-up-an-okta-application-for-saml-authentication"></a>

En este paso, se utiliza la consola de Okta para realizar las siguientes tareas:
+ Crear dos usuarios de Okta.
+ Cree dos grupos de Okta.
+ Agregue un usuario de Okta a cada grupo de Okta.

**Para agregar usuarios a Okta**

1. Después de activar la cuenta de Okta, inicie sesión como usuario administrativo en el dominio Okta asignado.

1. En el panel de navegación izquierdo, elija **Directory** (Directorio) y, a continuación, elija **People** (Personas).

1. Elija **Add Person** (Agregar persona) para agregar un usuario nuevo que accederá a Athena a través del controlador JDBC.  
![\[Elija Add Person (Agregar persona).\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-3.png)

1. En el cuadro de diálogo **Add person** (Agregar persona), ingrese la información requerida.
   + En **First name** (Nombre) y **Last name** (Apellido), ingrese valores. En este tutorial se utiliza *athena-okta-user*.
   + Ingrese un **Username** (Nombre de usuario) y **Primary email** (Correo electrónico principal). En este tutorial se utiliza *athena-okta-user@anycompany.com*.
   + En **Password** (Contraseña), elija **Set by admin** (Definida por administrador) y, a continuación, proporcione una contraseña. En este tutorial se desactiva la opción **User must change password on first login** (El usuario debe cambiar la contraseña en el primer inicio de sesión). Los requisitos de seguridad pueden variar.  
![\[Agregar un usuario a la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4.png)

1. Elija **Save and Add Another** (Guardar y agregar otro).

1. Ingrese la información de otro usuario. En este ejemplo, se agrega el usuario de analista empresarial *athena-ba-user@anycompany.com*.  
![\[Agregar un usuario a la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4a.png)

1. Seleccione **Save**.

En el siguiente procedimiento, proporcionará acceso a dos grupos de Okta a través del controlador JDBC de Athena al agregar un grupo de “analista empresarial” y un grupo “Desarrollador”.

**Para agregar grupos de Okta**

1. En el panel de navegación de Okta, elija **Directory** (Directorio) y, a continuación, elija **Groups** (Grupos).

1. En la página **Groups** (Grupos), elija **Add Group** (Agregar grupo).  
![\[Seleccione Añadir grupo.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4c.png)

1. En el cuadro de diálogo **Add Group** (Agregar grupo), ingrese la información requerida.
   + En **Name** (Nombre), ingrese *lf-business-analyst*.
   + En **Group Description** (Descripción de grupo), ingrese *Business Analysts* (Analistas de negocio).  
![\[Agregar un grupo de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4d.png)

1. Seleccione **Añadir grupo**.

1. En la página **Groups** (Grupos), vuelva a elegir **Add Group** (Agregar grupo). Esta vez ingresará información para el grupo Desarrollador.

1. Ingrese la información requerida.
   + En **Name** (Nombre), ingrese *lf-developer*.
   + En **Group Description** (Descripción de grupo), ingrese *Developers* (Desarrolladores).

1. Seleccione **Añadir grupo**.

Ahora que tiene dos usuarios y dos grupos, puede agregar un usuario a cada grupo.

**Para agregar usuarios a los grupos**

1. En la página **Groups** (Grupos), elija el grupo **lf-developer** que acaba de crear. Agregará a este grupo uno de los usuarios de Okta que creó como desarrollador.  
![\[Elija lf-developer.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4f.png)

1. Elija **Manage People** (Administrar personas).  
![\[Elija Manage People (Administrar personas).\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4g.png)

1. En la lista **Not Members** (No miembros), elija **athena-okta-user**.   
![\[Elija un usuario para agregar a la lista de miembros.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4h.png)

   La entrada para el usuario pasa de la lista de **No miembros** de la izquierda a la lista de **Miembros** de la derecha.   
![\[Usuario de Okta agregado a un grupo de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4i.png)

1. Seleccione **Save**.

1. Elija **Back to Group** (Volver a grupo) o **Directory** (Directorio) y, a continuación, elija **Groups** (Grupos).

1. Elija el grupo **lf-business-analyst**.

1. Elija **Manage People** (Administrar personas).

1. Agregue el usuario **athena-ba-user** a la lista de **Miembros** del grupo **lf-business-analyst** y, a continuación, elija **Save** (Guardar). 

1. Elija **Back to Group** (Volver a grupo) o elija **Directory** (Directorio), **Groups** (Grupos).

   La página **Groups** (Grupos) muestra ahora que cada grupo tiene un usuario de Okta.  
![\[Se agregó un usuario a cada grupo de Okta en la consola de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4j.png)

## Paso 3: Configurar una aplicación de Okta para la autenticación SAML
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-3-set-up-an-okta-application-for-saml-authentication"></a>

En este paso, se utiliza la consola de desarrollador de Okta para realizar las siguientes tareas:
+ Agregar una aplicación SAML para su uso con AWS.
+ Asignar la aplicación al usuario de Okta.
+ Asignar la aplicación a un grupo de Okta.
+ Descargue los metadatos resultantes del proveedor de identidad para su uso posterior con AWS.

**Para agregar una aplicación para autenticación SAML**

1. En el panel de navegación de Okta, elija **Applications** (Aplicaciones), **Applications** (Aplicaciones) para que pueda configurar una aplicación de Okta para la autenticación SAML en Athena.

1. Haga clic en **Browse App Catalog** (Explorar el catálogo de aplicaciones).

1. En el cuadro de búsqueda, escriba **Redshift**.

1. Elija **Amazon Web Services Redshift**. La aplicación de Okta de este tutorial utiliza la integración SAML existente para Amazon Redshift.  
![\[Elija Amazon Web Services Redshift.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-7.png)

1. En la página **Amazon Web Services Redshift**, elija **Add** (Agregar) para crear una aplicación basada en SAML para Amazon Redshift.  
![\[Elija Add (Agregar) para crear una aplicación basada en SAML.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-8.png)

1. En **Application label** (Etiqueta de aplicación), ingrese `Athena-LakeFormation-Okta` y, a continuación, elija **Done** (Listo).  
![\[Ingrese un nombre para la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-9.png)

Ahora que ha creado una aplicación de Okta, puede asignarla a los usuarios y grupos que creó.

**Para asignar la aplicación a usuarios y grupos**

1. En la página **Applications** (Aplicaciones), elija la aplicación **Athena-LakeFormation-Okta**.

1. En la pestaña **Assignments** (Asignaciones), elija **Assign** (Asignar), **Assign to People** (Asignar a personas).  
![\[Elija Assign (Asignar), Assign to People (Asignar a personas).\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-10.png)

1. En el cuadro de diálogo **Assign Athena-LakeFormation-Okta to People** (Asignar Athena-LakeFormation-Okta a personas), busque el usuario **athena-okta-user** que creó anteriormente.

1. Elija **Assign** (Asignar) para asignar al usuario a la aplicación.  
![\[Elija Asignar.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-11.png)

1. Elija **Save and Go Back** (Guardar y volver).

1. Seleccione **Listo**.

1. En la pestaña **Assignments** (Asignaciones), para la aplicación **Athena-LakeFormation-Okta**, elija **Assign** (Asignar), **Assign to Groups** (Asignar a grupos). 

1. Para **lf-business-analyst**, elija **Assign** (Asignar) para asignar la aplicación **Athena-LakeFormation-Okta** al grupo **lf-business-analyst** y, a continuación, elija **Done** (Listo).  
![\[Asignación de una aplicación de Okta a un grupo de usuarios de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-12b.png)

   El grupo aparece en la lista de grupos de la aplicación.  
![\[La aplicación de Okta se asigna al grupo Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-12c.png)

Ahora ya puede descargar los metadatos de la aplicación del proveedor de identidad para utilizarlos con AWS.

**Para descargar los metadatos de la aplicación**

1. Elija la pestaña **Sign On** (Inicio de sesión) de la aplicación de Okta y, a continuación, haga clic con el botón derecho en **Identity Provider metadata** (Metadatos del proveedor de identidad).  
![\[Haga clic con el botón derecho en Identity Provider metadata (Metadatos del proveedor de identidad).\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-13.png)

1. Elija **Save Link As** (Guardar enlace como) para guardar los metadatos del proveedor de identidad, que están en formato XML, en un archivo. Dele un nombre que reconozca (por ejemplo, `Athena-LakeFormation-idp-metadata.xml`).  
![\[Guardar los metadatos del proveedor de identidad.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-14.png)

## Paso 4: Crear un proveedor de identidad SAML de AWS y un rol de IAM para acceso a Lake Formation
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-4-create-an-aws-saml-identity-provider-and-lake-formation-access-IAM-role"></a>

En este paso, utiliza la consola de AWS Identity and Access Management (IAM) para realizar las siguientes tareas:
+ Crear un proveedor de identidad para AWS.
+ Crear un rol de IAM para acceso a Lake Formation.
+ Agregar la política administrada AmazonAthenaFullAccess al rol.
+ Agregar una política para Lake Formation y AWS Glue al rol.
+ Agregar una política para los resultados de la consulta de Athena al rol.

**Para crear un proveedor de identidad SAML de AWS**

1. Inicie sesión en la **consola** de la **cuenta de Amazon Web Services** como **administrador de cuenta de Amazon Web Services** y vaya a la consola de **IAM** ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).

1. En el panel de navegación, elija **Identity providers** (Proveedores de identidad) y, a continuación, haga clic en **Add provider** (Agregar proveedor).

1. En la pantalla **Configurar proveedor**, ingrese la siguiente información:
   + En **Provider type** (Tipo de proveedor), elija **SAML**.
   + En **Provider name** (Nombre de proveedor), ingrese `AthenaLakeFormationOkta`.
   + En **Metadata document** (Documento de metadatos), utilice la opción **Choose file** (Elegir archivo) para cargar el archivo XML de metadatos del proveedor de identidades (IdP) que descargó.

1. Elija **Add Provider** (Agregar proveedor).

A continuación, cree un rol de IAM para obtener acceso a AWS Lake Formation. Agregue dos políticas insertadas al rol. Una política proporciona permisos para acceder a Lake Formation y a las API de AWS Glue. La otra política proporciona acceso a Athena y a la ubicación de los resultados de consulta de Athena en Amazon S3.

**Para crear un rol de IAM para obtener acceso a AWS Lake Formation**

1. En el panel de navegación de la consola de IAM, elija **Roles** y, a continuación, elija **Create role** (Crear rol).

1. En la página **Crear rol**, siga los siguientes pasos:  
![\[Configuración de un rol de IAM para utilizar SAML 2.0.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-20.png)

   1. En **Select type of trusted entity** (Seleccionar tipo de entidad de confianza), elija **SAML 2.0 Federation** (Federación SAML 2.0).

   1. En **SAML provider** (Proveedor SAML), seleccione **AthenaLakeFormationOkta**.

   1. En **SAML provider** (Proveedor SAML), seleccione la opción **Allow programmatic and Consola de administración de AWS access** (Permitir programación y acceso a ).

   1. Elija **Siguiente: permisos**.

1. En la página **Attach Permissions policies** (Adjuntar políticas de permisos), en **Filter policies** (Filtrar políticas), ingrese **Athena**.

1. Seleccione la política administrada **AmazonAthenaFullAccess** y, a continuación, elija **Siguiente: etiquetas** .  
![\[Adjuntar la política administrada AmazonAthenaFullAccess al rol de IAM.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-21.png)

1. En la página **Add tags (Añadir etiquetas)**, elija **Next: Review (Siguiente: Revisión)**.

1. En la página **Review** (Revisar), en **Role name** (Nombre del rol), ingrese un nombre para el rol (por ejemplo, *Athena-LakeFormation-OktaRole*) y luego elija **Create role** (Crear rol).  
![\[Ingrese un nombre para el rol de Rol de IAM de IAM.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-22.png)

A continuación, agregue políticas insertadas que permitan el acceso a Lake Formation, API de AWS Glue y resultados de consultas de Athena en Amazon S3. 

Siempre que utilice políticas de IAM, asegúrese de seguir las prácticas recomendadas de IAM. Para obtener más información, consulte la sección [Prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

**Para agregar una política insertada al rol de Lake Formation y AWS Glue**

1. En la lista de roles de la consola de IAM, elija el recién creado `Athena-LakeFormation-OktaRole`.

1. En la página **Summary** (Resumen) del rol, en la pestaña **Permissions** (Permisos), elija **Add inline política** (Agregar política insertada).

1. En la página **Crear política**, elija **JSON**.

1. Agregue una política insertada como la siguiente que proporcione acceso a Lake Formation y a las API de AWS Glue.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": [
               "lakeformation:GetDataAccess",
               "glue:GetTable",
               "glue:GetTables",
               "glue:GetDatabase",
               "glue:GetDatabases",
               "glue:CreateDatabase",
               "glue:GetUserDefinedFunction",
               "glue:GetUserDefinedFunctions"
           ],
           "Resource": "*"
       }
   }
   ```

------

1. Elija **Revisar política**.

1. En **Name** (Nombre), ingrese un nombre para la política (por ejemplo, **LakeFormationGlueInlinePolicy**).

1. Elija **Crear política**.

**Para agregar una política insertada al rol para la ubicación de los resultados de consulta de Athena**

1. En la página **Summary** (Resumen) del rol `Athena-LakeFormation-OktaRole`, en la pestaña **Permissions** (Permisos), elija **Add inline policy** (Agregar política insertada).

1. En la página **Crear política**, elija **JSON**.

1. Agregue una política insertada como la siguiente que permita el acceso del rol a la ubicación de los resultados de consulta de Athena. Reemplace los marcadores de posición *<athena-query-results-bucket>* en el ejemplo con el nombre del bucket de Amazon S3.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AthenaQueryResultsPermissionsForS3",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::<athena-query-results-bucket>",
                   "arn:aws:s3:::<athena-query-results-bucket>/*"
               ]
           }
       ]
   }
   ```

------

1. Elija **Revisar política**.

1. En **Name** (Nombre), ingrese un nombre para la política (por ejemplo, **AthenaQueryResultsInlinePolicy**).

1. Elija **Crear política**.

A continuación, copie el ARN del rol de acceso a Lake Formation y el ARN del proveedor SAML creado. Estos son necesarios al configurar la aplicación SAML de Okta en la siguiente sección del tutorial.

**Para copiar el ARN de rol y el ARN del proveedor de identidad SAML**

1. En la consola de IAM, en la página **Summary** (Resumen) del rol `Athena-LakeFormation-OktaRole`, elija el icono **Copy to clipboard** (Copiar al portapapeles) que aparece junto a **Role ARN** (ARN de rol). El ARN tiene el siguiente formato:

   ```
   arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
   ```

1. Guarde el ARN completo de forma segura para su referencia posterior.

1. En el panel de navegación de la consola de IAM, elija **Identity providers** (Proveedores de identidad).

1. Elija el proveedor **AthenaLakeFormationOkta**.

1. En la página **Summary** (Resumen), elija el icono **Copy to clipboard** (Copiar al portapapeles) que aparece junto a **Provider ARN** (ARN del proveedor). El ARN debería tener el siguiente aspecto:

   ```
   arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta
   ```

1. Guarde el ARN completo de forma segura para su referencia posterior.

## Paso 5: Agregar el rol de IAM y el proveedor de identidad SAML a la aplicación de Okta
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-5-update-the-okta-application-with-the-aws-role-and-saml-identity-provider"></a>

En este paso, vuelve a la consola de desarrollador de Okta para realizar las siguientes tareas:
+ Agregar atributos URL de usuario y grupo de Lake Formation a la aplicación de Okta.
+ Agregar el ARN para el proveedor de identidad y el ARN para el rol de IAM a la aplicación de Okta.
+ Copiar el ID de la aplicación de Okta. El ID de la aplicación de Okta es necesario en el perfil del JDBC que se conecta a Athena.

**Para agregar atributos URL de usuario y grupo de Lake Formation a la aplicación de Okta**

1. Inicie sesión en la consola de desarrollador de Okta.

1. Elija la pestaña **Applications** (Aplicaciones), y, a continuación, elija la aplicación `Athena-LakeFormation-Okta`.

1. Elija la pestaña **Sign On** (Inicio de sesión) para la aplicación y, a continuación, elija **Edit** (Editar).  
![\[Edite la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-24.png)

1. Elija **Attributes (optional)** (Atributos [opcional]) para expandirla.  
![\[Agregar un atributo URL de Lake Formation de usuario a la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-25.png)

1. En **Instrucciones de atributos (opcional)**, agregue el siguiente atributo:
   + En **Nombre**, escriba **https://lakeformation.amazon.com/SAML/Attributes/Username**.
   + En **Value** (Valor), ingrese **user.login**.

1. En **Instrucciones de atributo de grupo (opcional)**, agregue el siguiente atributo:
   + En **Nombre**, escriba **https://lakeformation.amazon.com/SAML/Attributes/Groups**.
   + En **Name format** (Formato de nombre), ingrese **Basic**.
   + En **Filter** (Filtro), elija **Matches regex** (Coincide con la expresión regular) y, a continuación, ingrese **.\$1** en el cuadro de filtro.  
![\[Agregar un atributo URL de Lake Formation de grupo a la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-25a.png)

1. Desplácese hacia abajo hasta la sección **Advanced Sign-On Settings** (Configuración avanzada de inicio de sesión), donde agregará los ARN del proveedor de identidad y el rol de IAM a la aplicación de Okta.

**Para agregar los ARN del proveedor de identidad y el rol de IAM a la aplicación de Okta**

1. En **Idp ARN and Role ARN** (ARN de Idp y ARN de rol), ingrese el ARN de proveedor de identidad de AWS y el ARN de rol como valores separados por comas en el formato *<saml-arn>*, *<role-arn>*. La cadena combinada debe ser similar a la siguiente:

   ```
   arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta,arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
   ```  
![\[Ingresar el ARN del proveedor de identidad y el ARN del rol de IAM en la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-26.png)

1. Seleccione **Save**.

A continuación, copie el ID de la aplicación de Okta. Lo necesitará más adelante para la cadena JDBC que se conecta a Athena.

**Para buscar y copiar el ID de la aplicación de Okta**

1. Elija la pestaña **General** de la aplicación de Okta.  
![\[Elija la pestaña General de la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-27.png)

1. Desplácese hacia abajo hasta la sección **App Embed Link** (Enlace insertado de la aplicación).

1. En **Embed Link** (Insertar enlace), copie y guarde de forma segura la parte del ID de la aplicación de Okta de la URL. El ID de la aplicación de Okta es la parte de la URL después de `amazon_aws_redshift/` pero antes de la siguiente barra diagonal. Por ejemplo, si la dirección URL contiene `amazon_aws_redshift/aaa/bbb`, el ID de la aplicación es `aaa`.   
![\[Copie el ID de la aplicación de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-28.png)

**nota**  
El enlace de inserción no se puede utilizar para registrarse directamente en la consola de Athena para ver las bases de datos. Los permisos de Lake Formation para usuarios y grupos de SAML solo se reconocen cuando se utiliza el controlador JDBC u ODBC para enviar consultas a Athena. Para ver las bases de datos, puede utilizar la herramienta SQL Workbench/J, que utiliza el controlador JDBC para conectarse a Athena. La herramienta SQL Workbench/J se aborda en [Paso 7: Verificar el acceso a través del cliente JDBC de Athena](#security-athena-lake-formation-jdbc-okta-tutorial-step-7-verify-access-through-athena-jdbc-client).

## Paso 6: Otorgar permisos de usuario y grupo a través de AWS Lake Formation
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-6-grant-permissions-through-aws-lake-formation"></a>

En este paso, se utiliza la consola de Lake Formation para conceder permisos en una tabla al usuario y grupo SAML. Puede realizar las siguientes tareas:
+ Especificar el ARN del usuario SAML de Okta y los permisos de usuario asociados en la tabla.
+ Especificar el ARN del grupo SAML de Okta y los permisos de usuario asociados en la tabla.
+ Verificar los permisos que concedió.

**Para conceder permisos en Lake Formation para el usuario de Okta**

1. Inicie sesión como administrador del lago de datos en la Consola de administración de AWS. 

1. Abra la consola de Lake Formation en [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. En el panel de navegación, elija **Tables** (Tablas) y, a continuación, seleccione la tabla a la que desea conceder permisos. En este tutorial se utiliza la tabla `nyctaxi` de la base de datos `tripdb`.  
![\[Elija la tabla a la que desea conceder permisos.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-29.png)

1. En **Actions** (Acciones), elija **Grant** (Conceder).  
![\[Elija Grant (Conceder).\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-30.png)

1. En el cuadro de diálogo **Conceder permisos**, ingrese la siguiente información:

   1. En **Usuarios y grupos de SAML y Amazon Quick**, ingrese el ARN de usuario SAML de Okta con el siguiente formato:

      ```
      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>@<anycompany.com>       
      ```

   1. En **Columns** (Columnas), en **Choose filter type** (Elegir tipo de filtro), elija **Include columns** (Incluir columnas) o **Exclude columns** (Excluir columnas).

   1. Utilice el menú desplegable **Choose one or more columns** (Elegir una o varias columnas) debajo del filtro para especificar las columnas que desea incluir o excluir del usuario o para él.

   1. En **Table permissions** (Permisos de tabla), elija **Select**. En este tutorial solo se concede el permiso `SELECT`. Los requisitos pueden variar.  
![\[Otorgar permisos de nivel de tabla y columna a un usuario de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-31.png)

1. Elija **Grant** (Conceder).

Ahora realice pasos similares para el grupo de Okta.

**Para conceder permisos en Lake Formation para el grupo de Okta**

1. En la página **Tables** (Tablas) de la consola de Lake Formation, asegúrese de que la tabla **nyctaxi** sigue seleccionada.

1. En **Actions** (Acciones), elija **Grant** (Conceder).

1. En el cuadro de diálogo **Grant permissions** (Conceder permisos), ingrese la siguiente información:

   1. En **Usuarios y grupos de SAML y Amazon Quick**, ingrese el ARN de grupo SAML de Okta con el siguiente formato:

      ```
      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst
      ```

   1. En **Columns** (Columnas), **Choose filter type** (Elegir tipo de filtro), elija **Include Columns** (Incluir columnas).

   1. En **Choose one or more columns** (Elegir una o varias columnas), elija las tres primeras columnas de la tabla.

   1. En **Table permissions** (Permisos de tabla), elija los permisos de acceso específicos que desea conceder. En este tutorial solo se concede el permiso `SELECT`. Los requisitos pueden variar.  
![\[Otorgar permisos de tabla a un grupo de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-31b.png)

1. Elija **Grant** (Conceder).

1. Para verificar los permisos que concedió, elija **Actions** (Acciones), **View permissions** (Ver permisos).  
![\[Elija View permissions (Ver permisos) para verificar los permisos que concedió.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-32.png)

   En la página **Permisos de datos** de la tabla `nyctaxi` se muestran los permisos para **athena-okta-user** y el grupo **lf-business-analyst**.  
![\[Visualización de los permisos que se concedieron al usuario y grupo de Okta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-33.png)

## Paso 7: Verificar el acceso a través del cliente JDBC de Athena
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-7-verify-access-through-athena-jdbc-client"></a>

Ahora puede utilizar un cliente JDBC para realizar una conexión de prueba a Athena como usuario SAML de Okta. 

En esta sección, realiza las siguientes tareas:
+ Preparar el cliente de prueba: descargue el controlador JDBC de Athena, instale SQL Workbench y agregue el controlador a Workbench. En este tutorial, se utiliza SQL Workbench para acceder a Athena a través de la autenticación de Okta y verificar los permisos de Lake Formation.
+ En SQL Workbench:
  + Cree una conexión para el usuario Athena Okta.
  + Ejecute consultas de prueba como usuario Athena Okta.
  + Cree y pruebe una conexión para el usuario de analista empresarial.
+ En la consola de Okta, agregue el usuario de analista empresarial al grupo de desarrolladores.
+ En la consola Lake Formation, configure los permisos de tabla para el grupo de desarrolladores.
+ En SQL Workbench, ejecute consultas de prueba como usuario de analista empresarial y verifique cómo afecta el cambio en los permisos a los resultados.

**Para preparar el cliente de prueba**

1. Descargue y extraiga el controlador JDBC de Athena compatible con Lake Formation (versión 2.0.14 o posterior) de [Conexión a Amazon Athena con JDBC](connect-with-jdbc.md).

1. Descargue e instale la herramienta de consulta SQL [SQL Workbench/J](https://www.sql-workbench.eu/index.html), disponible con una licencia modificada de Apache 2.0.

1. En SQL Workbench, elija **File** (Archivo) y, a continuación, elija **Manage Drivers** (Administrar controladores).  
![\[Seleccione Manage Drivers (Administrar controladores).\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-1.png)

1. En el cuadro de diálogo **Administrar controladores**, siga los siguientes pasos:

   1. Elija el icono de nuevo controlador.

   1. En **Nombre**, escriba **Athena**.

   1. En **Library** (Biblioteca), busque y elija el archivo `.jar` del controlador Simba JDBC de Athena que acaba de descargar.

   1. Seleccione **Aceptar**.  
![\[Agregar el controlador JDBC de Athena a SQL Workbench.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-2.png)

Ahora puede crear y probar una conexión para el usuario de Athena Okta.

**Para crear una conexión para el usuario de Okta**

1. Elija **File** (Archivo), **Connect window** (Conectar ventana).  
![\[Elija Connect window (Conectar ventana).\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-3.png)

1. En el cuadro de diálogo **Perfil de conexión**, cree una conexión al ingresar la siguiente información:
   + En el cuadro de nombre, ingrese **Athena\$1Okta\$1User\$1Connection**.
   + En **Driver** (Controlador), elija el controlador Simba JDBC de Athena.
   + En **URL**, realice una de las siguientes operaciones:
     + Para utilizar una URL de conexión, ingrese una cadena de conexión de una sola línea. En el siguiente ejemplo se agregan saltos de línea por motivos de legibilidad.

       ```
       jdbc:awsathena://AwsRegion=region-id;
       S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
       AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider;
       user=athena-okta-user@anycompany.com;
       password=password;
       idp_host=okta-idp-domain;
       App_ID=okta-app-id;
       SSL_Insecure=true;
       LakeFormationEnabled=true;
       ```
     + Para utilizar una URL basada en perfiles de AWS, siga estos pasos:

       1. Configure un [perfil de AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) que tenga un archivo de credenciales de AWS, como en el siguiente ejemplo.

          ```
          [athena_lf_dev]
          plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider
          idp_host=okta-idp-domain
          app_id=okta-app-id
          uid=athena-okta-user@anycompany.com
          pwd=password
          ```

       1. En **URL**, ingrese una cadena de conexión de una sola línea, como el siguiente ejemplo. En el ejemplo se agregan saltos de línea por motivos de legibilidad.

          ```
          jdbc:awsathena://AwsRegion=region-id;
          S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
          profile=athena_lf_dev;
          SSL_Insecure=true;
          LakeFormationEnabled=true;
          ```

     Tenga en cuenta que estos ejemplos son representaciones básicas de la URL necesaria para conectarse a Athena. Para ver una lista completa de los parámetros admitidos en la URL, consulte la [documentación de JDBC.](connect-with-jdbc.md)

   En la siguiente imagen se muestra un perfil de conexión de SQL Workbench que utiliza una dirección URL de conexión.  
![\[Perfil de conexión en SQL Workbench.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-4.png)

Ahora que ha establecido una conexión para el usuario de Okta, puede probarla recuperando algunos datos.

**Para probar la conexión para el usuario de Okta**

1. Elija **Test** (Probar) y, a continuación, verifique que la conexión se realiza correctamente.

1. Desde la venta **Instrucción** de SQL Workbench, ejecute el siguiente comando SQL `DESCRIBE`. Verifique que se muestren todas las columnas.

   ```
   DESCRIBE "tripdb"."nyctaxi"
   ```  
![\[Se muestran todas las columnas.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-5.png)

1. Desde la venta **Instrucción** de SQL Workbench, ejecute el siguiente comando SQL `SELECT`. Verifique que se muestren todas las columnas.

   ```
   SELECT * FROM tripdb.nyctaxi LIMIT 5
   ```  
![\[Verifique que se muestren todas las columnas.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-6.png)

A continuación, debe verificar que el usuario **athena-ba-user**, como miembro del grupo **lf-business-analyst**, solo tiene acceso a las tres primeras columnas de la tabla que especificó anteriormente en Lake Formation.

**Para verificar el acceso de **athena-ba-user****

1. En SQL Workbench, en el cuadro de diálogo **Connection profile** (Perfil de conexión), cree otro perfil de conexión.
   + En el nombre de perfil de conexión, ingrese ** Athena\$1Okta\$1Group\$1Connection**.
   + En **Driver** (Controlador), elija el controlador Simba JDBC de Athena.
   + En **URL**, realice una de las siguientes operaciones:
     + Para utilizar una URL de conexión, ingrese una cadena de conexión de una sola línea. En el siguiente ejemplo se agregan saltos de línea por motivos de legibilidad.

       ```
       jdbc:awsathena://AwsRegion=region-id;
       S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
       AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider;
       user=athena-ba-user@anycompany.com;
       password=password;
       idp_host=okta-idp-domain;
       App_ID=okta-application-id;
       SSL_Insecure=true;
       LakeFormationEnabled=true;
       ```
     + Para utilizar una URL basada en perfiles de AWS, siga estos pasos:

       1. Configure un perfil de AWS que tenga un archivo de credenciales, como en el siguiente ejemplo.

          ```
          [athena_lf_ba]
          plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider
          idp_host=okta-idp-domain
          app_id=okta-application-id
          uid=athena-ba-user@anycompany.com
          pwd=password
          ```

       1. En **URL**, ingrese una cadena de conexión de una sola línea, como la siguiente. En el ejemplo se agregan saltos de línea por motivos de legibilidad.

          ```
          jdbc:awsathena://AwsRegion=region-id;
          S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
          profile=athena_lf_ba;
          SSL_Insecure=true;
          LakeFormationEnabled=true;
          ```

1. Elija **Test** (Probar) para confirmar que la conexión se realiza correctamente.

1. Desde la ventana **SQL Statement** (Instrucción SQL), ejecute los mismos comandos SQL `DESCRIBE` y `SELECT` que ejecutó antes y examine los resultados.

   Como **athena-ba-user** es miembro del grupo **lf-business-analyst**, solo se devuelven las tres primeras columnas que especificó en la consola de Lake Formation.  
![\[Solo se devuelven las primeras tres columnas.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-7.png)  
![\[Datos de las primeras tres columnas.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-8.png)

A continuación, vuelva a la consola de Okta para agregar el usuario `athena-ba-user` al grupo de Okta `lf-developer`.

**Para agregar el usuario athena-ba-user al grupo lf-developer**

1. Inicie sesión en la consola de Okta como usuario administrativo del dominio Okta asignado.

1. Elija **Directory** y, a continuación, elija **Groups** (Grupos).

1. En la página Groups (Grupos), elija el grupo **lf-developer**.  
![\[Elija el grupo lf-developer.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-9.png)

1. Elija **Manage People** (Administrar personas).

1. En la lista **Not Members** (No miembros), elija **athena-ba-user** para agregarlo al grupo **lf-developer**.

1. Seleccione **Save**.

Ahora regrese a la consola de Lake Formation para configurar los permisos de tabla para el grupo **lf-developer**.

**Para configurar los permisos de tabla para lf-developer-group**

1. Inicie sesión en la consola de Lake Formation como administrador del lago de datos.

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

1. Seleccione la tabla **nyctaxi**.

1. Elija **Actions** (Acciones), **Grant** (Conceder).

1. En el cuadro de diálogo **Conceder permisos**, ingrese la siguiente información:
   + En **Usuarios y grupos de SAML y Amazon Quick**, ingrese el ARN de grupo lf-developer SAML de Okta con el siguiente formato:
   + En **Columns** (Columnas), **Choose filter type** (Elegir tipo de filtro), elija **Include Columns** (Incluir columnas).
   + Elija la columna **trip\$1type**.
   + En **Table permissions** (Permisos de tabla), elija **SELECT**.

1. Elija **Grant** (Conceder).

Ahora puede utilizar SQL Workbench para verificar el cambio en los permisos para el grupo **lf-developer**. El cambio debe reflejarse en los datos disponibles para el usuario **athena-ba-user**, que ahora es miembro del grupo **lf-developer**.

**Para verificar el cambio en los permisos de athena-ba-user**

1. Cierre el programa SQL Workbench y, a continuación, vuelva a abrirlo.

1. Conéctese al perfil de **athena-ba-user**.

1. En la ventana **Statement** (Instrucción), ejecute las mismas instrucciones SQL que ejecutó anteriormente:

   Esta vez, se muestra la columna **trip\$1type**.  
![\[La cuarta columna está disponible para consulta.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-10.png)

   Como **athena-ba-user** ahora es miembro de los grupos **lf-developer** e **lf-business-analyst**, la combinación de permisos de Lake Formation para esos grupos determina las columnas que se devuelven.  
![\[La cuarta columna son los resultados de los datos.\]](http://docs.aws.amazon.com/es_es/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-11.png)

## Conclusión
<a name="security-athena-lake-formation-jdbc-okta-tutorial-conclusion"></a>

En este tutorial configuró la integración de Athena con AWS Lake Formation utilizando Okta como proveedor SAML. Utilizó Lake Formation e IAM para controlar los recursos que están disponibles para el usuario SAML en el catálogo de datos AWS Glue del lago de datos.

## Recursos relacionados
<a name="security-athena-lake-formation-jdbc-okta-tutorial-related-resources"></a>

Para obtener información relacionada, consulte los siguientes recursos.
+ [Conexión a Amazon Athena con JDBC](connect-with-jdbc.md)
+ [Habilitación del acceso federado a la API de Athena](access-federation-saml.md)
+ [AWS Lake Formation Guía para desarrolladores de](https://docs.aws.amazon.com/lake-formation/latest/dg/)
+ [Concesión y revocación de permisos de catálogo de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-catalog-permissions.html) en la *Guía para desarrolladores de AWS Lake Formation*.
+ [Federación y proveedores de identidad](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) en la *Guía del usuario de IAM*.
+ [Creación de proveedores de identidad SAML de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) en la *Guía del usuario de IAM*.
+ [Enabling federation to AWS using Windows Active Directory, ADFS, and SAML 2.0](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/) (Habilitación de la federación de AWS por medio de Windows Active Directory, ADFS y SAML 2.0) en el *blog de seguridad de *.