Consideraciones y limitaciones para consultar datos registrados en Lake Formation - Amazon Athena

Consideraciones y limitaciones para consultar datos registrados en Lake Formation

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 en la Guía para desarrolladores de AWS Lake Formation.

Metadatos de columna visibles para usuarios no autorizados en algunas circunstancias con Avro y SerDe personalizado

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

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.

Compatibilidad con DDL de Iceberg

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

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

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.

Uso de grupos de trabajo de Athena para limitar el acceso al historial de consultas

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.

Consulta de tablas cifradas con CSE_KMS registradas en Lake Formation

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_KEY_ARN> 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

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

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

El permiso DESCRIBE es necesario en la base de datos predeterminada

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 en la Guía para desarrolladores de AWS Lake Formation.