Consideraciones y limitaciones al momento de utilizar Athena para consultar datos registrados en Lake Formation - Amazon Athena

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

Consideraciones y limitaciones al momento de utilizar Athena 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 deAWS Lake Formation .

Los metadatos de las columnas son visibles para los usuarios no autorizados en algunas circunstancias con Avro y personalizados SerDe

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 las columnas se almacenan en las propiedades de las tablas, para las que se utiliza el formato de almacenamiento Apache Avro o un serializador/deserializador (SerDe) personalizado, en el que el esquema de la tabla se define en las propiedades de la tabla junto con la definición. 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.

Uso de permisos de Lake Formation para 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 Acceso entre cuentas al catálogo de datos.

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 sobre macrodatos deAWS .

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 las consultas, consultas recientes y archivos de salida.

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.

Acceso entre cuentas al catálogo de datos

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.

Acceso entre cuentas al catálogo de datos de Athena

Puede utilizar la función de catálogo multicuenta de Athena para registrar el AWS Glue 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 Registro de un AWS Glue Data Catalog de otra cuenta.

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

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "ram.amazonaws.com" }, "Action": "glue:ShareResource", "Resource": [ "arn:aws:glue:<REGION>:<ACCOUNT-A>:table/*/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:database/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:catalog" ] }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNT-B>:root" }, "Action": "glue:*", "Resource": [ "arn:aws:glue:<REGION>:<ACCOUNT-A>:table/*/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:database/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:catalog" ] } ] }

Para obtener más información, consulte Acceso entre cuentas a los catálogos de datos de AWS Glue.

Configuración del acceso entre cuentas en Lake Formation

AWS Lake Formation le permite usar una sola cuenta para administrar un catálogo de datos central. Puede utilizar esta característica para implementar el acceso entre cuentas 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 en Lake Formation a la base de datos o tabla compartida. Cuando la cuenta de destinatario de Lake Formation consulta la tabla del propietario, CloudTrailagrega el evento de acceso a los datos a los registros de la cuenta del destinatario y de la cuenta del 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 «No se pudo analizar la vista almacenada» awsdatacatalog. my-lf-resource-link. my-lf-view': línea 3:3: Se produce el esquema schema_name 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 deAWS Lake Formation :

Acceso entre cuentas

Cómo funcionan los enlaces de recursos en Lake Formation

Registro entre cuentas CloudTrail

Ubicaciones de Amazon S3 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 las ubicaciones de datos de Amazon S3 registradas en Lake Formation.

  • Los objetos de Amazon S3 se cifran mediante el cifrado del lado del cliente (CSE).

  • El cifrado utiliza claves AWS KMS administradas por el cliente (). CSE_KMS

Para consultar tablas que no son OTF (que están cifradas con una CSE_KMS clave), añada el siguiente bloque a la política de la AWS KMS clave que utiliza para el cifrado CSE. <KMS_KEY_ARN>es el ARN de la AWS KMS clave que cifra los datos. <IAM-ROLE-ARN>es el ARN de la función 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://mydata/mytable y las particiones s3://mydata/mytable/dt=2019-07-11, s3://mydata/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://mydata/mytable y las particiones ubicadas en s3://mydata/dt=2019-07-11, s3://mydata/dt=2019-07-12, etc. no se puede registrar en Lake Formation. Debido a que estas particiones no son subdirectorios de s3://mydata/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

El permiso DESCRIBE de Lake Formation es necesario en la base de datos default. El siguiente AWS CLI comando de ejemplo concede el DESCRIBE permiso en la default base de datos al usuario de la cuentadatalake_user1. AWS 111122223333

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