Protección de los lagos de datos con control de acceso a nivel de fila - AWS Lake Formation

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.

Protección de los lagos de datos con control de acceso a nivel de fila

Los permisos a nivel de fila de AWS Lake Formation le permiten proporcionar acceso a filas específicas de una tabla en función de las políticas de control y cumplimiento de los datos. Si tiene tablas grandes que almacenan miles de millones de registros, necesita una forma de permitir que los diferentes usuarios y equipos accedan solo a los datos que pueden ver. El control de acceso a nivel de fila es una forma sencilla y eficaz de proteger los datos, a la vez que permite a los usuarios acceder a los datos que necesitan para desarrollar su trabajo. Lake Formation proporciona informes centralizados de auditoría y cumplimiento al identificar qué entidades principales accedieron a qué datos, cuándo lo hicieron y a través de qué servicios.

En este tutorial aprenderá cómo funcionan los controles de acceso a nivel de fila en Lake Formation y cómo configurarlos.

Este tutorial incluye una plantilla AWS CloudFormation para configurar rápidamente los recursos necesarios. Puede revisarla y personalizarla para adaptarla a sus necesidades.

Destinatarios previstos

Este tutorial está dirigido a administradores, ingenieros y analistas de datos. En la siguiente tabla se enumeran los roles y responsabilidades de un propietario y un consumidor de datos.

Rol Descripción
Administrador de IAM Usuario que puede crear usuarios, roles y buckets de Amazon Simple Storage Service (Amazon S3). Tiene la política administrada AdministratorAccess de AWS.
Administrador de lagos de datos Usuario responsable de configurar el lago de datos, crear filtros de datos y conceder permisos a los analistas de datos.
Analista de datos Usuario que puede ejecutar consultas en el lago de datos. Los analistas de datos que residen en diferentes países (en nuestro caso, EE. UU. y Japón) solo pueden analizar las reseñas de productos de clientes ubicados en su propio país y, por motivos de cumplimiento, no deberían poder ver los datos de clientes ubicados en otros países.

Requisitos previos

Antes de empezar este tutorial, debe tener una Cuenta de AWS en la que pueda iniciar sesión como usuario administrativo con los permisos correctos. Para obtener más información, consulte Complete las tareas AWS de configuración iniciales.

En este tutorial, se supone que está familiarizado con IAM. Para obtener más información acerca de IAM, consulte la Guía del usuario de IAM.

Cambiar la configuración de Lake Formation
importante

Antes de lanzar la plantilla de CloudFormation, desactive la opción Usar solo el control de acceso de IAM para nuevas bases de datos o tablas en Lake Formation siguiendo los pasos indicados a continuación:

  1. Inicie sesión en la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/ en la región Este de EE. UU. (Norte de Virginia) o la región Oeste de EE. UU. (Oregón).

  2. En Catálogo de datos, seleccione Configuración.

  3. Deseleccione Usar solo el control de acceso de IAM para nuevas bases de datos y Usar solo el control de acceso de IAM para nuevas tablas en las nuevas bases de datos.

  4. Seleccione Guardar.

Paso 1: Aprovisionar recursos

Este tutorial incluye una plantilla de CloudFormation para una configuración rápida. Puede revisarla y personalizarla para adaptarla a sus necesidades. La plantilla CloudFormation incluye los recursos siguientes:

  • Usuarios y políticas para:

    • DataLakeAdmin

    • DataAnalystUS

    • DataAnalystJP

  • Configuración y permisos del lago de datos de Lake Formation

  • Una función de Lambda (para recursos personalizados CloudFormation respaldados por Lambda) que se utiliza para copiar archivos de datos de muestra del bucket público de Amazon S3 al bucket de Amazon S3

  • Un bucket de Amazon S3 que sirva como nuestro lago de datos

  • Una base de datos AWS Glue Data Catalog, tabla y partición

Crear recursos

Siga estos pasos para crear sus recursos con la plantilla CloudFormation.

  1. Inicie sesión en la consola de CloudFormation en https://console.aws.amazon.com/cloudformation en la región Este de EE. UU. (Norte de Virginia).

  2. Elija Lanzar pila.

  3. Seleccione Siguiente en la pantalla Crear pila.

  4. Introduzca Nombre de pila.

  5. Para DataLakeAdminUserName y DataLakeAdminUserPassword, introduzca su nombre de usuario de IAM y la contraseña del usuario administrador del lago de datos.

  6. Para DataAnalystusUsUserName y DataAnalystUsUserPassword, introduzca el nombre de usuario y la contraseña del nombre de usuario y la contraseña que desee para el usuario analista de datos responsable del mercado estadounidense.

  7. Para DataAnalystusJpUserName y DataAnalystJpUserPassword, introduzca el nombre de usuario y la contraseña del nombre de usuario y la contraseña que desee para el usuario analista de datos responsable del mercado japonés.

  8. En DataLakeBucketName, escriba el nombre de su bucket de datos.

  9. Para DatabaseName y TableName, deje el valor predeterminado.

  10. Elija Siguiente.

  11. En la siguiente página, elija Siguiente.

  12. Revise los detalles en la última página y seleccione Acepto que CloudFormation podría crear recursos IAM.

  13. Seleccione Crear.

    La creación de la pila puede tardar un minuto en completarse.

Paso 2: Consultar sin filtros de datos

Una vez configurado el entorno, puede consultar la tabla de reseñas de productos. Primero consulte la tabla sin controles de acceso a nivel de fila para asegurarse de que puede ver los datos. Si es la primera vez que ejecuta consultas en Amazon Athena, debe configurar la ubicación de los resultados de la consulta.

Consulte la tabla sin control de acceso a nivel de fila
  1. Inicie sesión en la consola de Athena en https://console.aws.amazon.com/athena/ como usuario DatalakeAdmin y ejecute la consulta siguiente:

    SELECT * FROM lakeformation_tutorial_row_security.amazon_reviews LIMIT 10

    La captura de pantalla siguiente muestra el resultado de la consulta. Esta tabla solo tiene una partición, product_category=Video, por lo que cada registro es un comentario de revisión de un producto de vídeo.

    Query results showing 10 rows of Amazon product reviews for VHS tapes with various ratings.
  2. A continuación, ejecute una consulta de agregación para recuperar el número total de registros por cada marketplace.

    SELECT marketplace, count(*) as total_count FROM lakeformation_tutorial_row_security.amazon_reviews GROUP BY marketplace

    La captura de pantalla siguiente muestra el resultado de la consulta. La columna marketplace tiene cinco valores diferentes. En los pasos siguientes, configurará los filtros basados en filas utilizando la columna marketplace.

    Query results showing marketplace data with total counts for FR, UK, JP, DE, and US.

Paso 3: Configurar los filtros de datos y conceder permisos

En este tutorial se utilizan dos analistas de datos, uno responsable del mercado estadounidense y otro del mercado japonés. Cada analista utiliza Athena para analizar las opiniones de los clientes únicamente para su mercado específico. Cree dos filtros de datos diferentes, uno para el analista responsable del mercado estadounidense y otro para el responsable del mercado japonés. A continuación, conceda a los analistas sus correspondiente permisos.

Cree filtros de datos y conceda permisos
  1. Cree un filtro para restringir el acceso a los datos del marketplace US.

    1. Inicie sesión en la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/ en la región Este de EE. UU. (Norte de Virginia) como usuario DatalakeAdmin.

    2. Elija Filtros de datos.

    3. Elija Crear filtro.

    4. En Nombre del filtro de datos, introduzca amazon_reviews_US.

    5. En Base de datos de destino elija la base de datos lakeformation_tutorial_row_security.

    6. En Tabla de objetivos, elija la tabla amazon_reviews.

    7. En Acceso a nivel de columna, deje el valor predeterminado.

    8. En Expresión de filtro de filas, introduzca marketplace='US'.

    9. Elija Crear filtro.

  2. Cree un filtro para restringir el acceso a los datos del marketplace japonés.

    1. En la página Filtros de datos, seleccione Crear filtro nuevo.

    2. En Nombre del filtro de datos, introduzca amazon_reviews_JP.

    3. En Base de datos de destino elija la base de datos lakeformation_tutorial_row_security.

    4. En Tabla de destino, elija la tabla table amazon_reviews.

    5. En Acceso a nivel de columna, deje el valor predeterminado.

    6. En Expresión de filtro de filas, introduzca marketplace='JP'.

    7. Elija Crear filtro.

  3. A continuación, conceda permisos a los analistas de datos que utilizan estos filtros de datos. Siga estos pasos para conceder permisos al analista de datos estadounidense (DataAnalystUS):

    1. En Permisos, elija Permisos de lago de datos.

    2. En Permiso de datos, seleccione Conceder.

    3. En el Entidades principales, elija Usuarios y roles de IAM y seleccione el rol DataAnalystUS.

    4. En Etiquetas LF o recursos del catálogo, elija Recursos de Catálogo de datos con nombre.

    5. En Database (Base de datos), elija lakeformation_tutorial_row_security.

    6. Para Tablas (opcional), elija amazon_reviews.

    7. Para Filtros de datos: opcional, seleccione amazon_reviews_US.

    8. Para Permisos de filtro de datos, elija Seleccionar.

    9. Elija Conceder.

  4. Siga estos pasos para conceder permisos al analista de datos japonés (DataAnalystJP):

    1. En Permisos, elija Permisos de lago de datos.

    2. En Permiso de datos, seleccione Conceder.

    3. En el Entidades principales, elija Usuarios y roles de IAM y seleccione el rol DataAnalystJP.

    4. En Etiquetas LF o recursos del catálogo, elija Recursos de Catálogo de datos con nombre.

    5. En Database (Base de datos), elija lakeformation_tutorial_row_security.

    6. Para Tablas (opcional), elija amazon_reviews.

    7. Para Filtros de datos: opcional, seleccione amazon_reviews_JP.

    8. Para Permisos de filtro de datos, elija Seleccionar.

    9. Elija Conceder.

Paso 4: Consultar con filtros de datos

Con los filtros de datos adjuntos a la tabla de reseñas de productos, ejecute algunas consultas y compruebe cómo Lake Formation aplica los permisos.

  1. Abra la consola de Athena en https://console.aws.amazon.com/athena/ como usuario DataAnalystUS.

  2. Ejecute la siguiente consulta para recuperar algunos registros, que se filtran en función de los permisos de nivel de fila que definimos:

    SELECT * FROM lakeformation_tutorial_row_security.amazon_reviews LIMIT 10

    La captura de pantalla siguiente muestra el resultado de la consulta.

    Query results showing 10 rows of Amazon product reviews data, including marketplace, ratings, and product titles.
  3. Del mismo modo, ejecute una consulta para contar el número total de registros por mercado.

    SELECT marketplace , count ( * ) as total_count FROM lakeformation_tutorial_row_security .amazon_reviews GROUP BY marketplace

    El resultado de la consulta solo muestra el US marketplace en los resultados. Esto se debe a que el usuario solo puede ver las filas en las que el valor de la columna marketplace sea igual a US.

  4. Cambie al usuario DataAnalystJP y ejecute la misma consulta.

    SELECT * FROM lakeformation_tutorial_row_security.amazon_reviews LIMIT 10

    El resultado de la consulta solo muestra el marketplace JP en los resultados.

  5. Ejecute la consulta para contar el número total de registros por marketplace.

    SELECT marketplace, count(*) as total_count FROM lakeformation_tutorial_row_security.amazon_reviews GROUP BY marketplace

    El resultado de la consulta solo muestra la fila que pertenece al marketplace JP en los resultados.

Paso 5: Limpiar los recursos de AWS

Eliminar recursos

Para evitar cargos no deseados en su Cuenta de AWS, elimine los recursos de AWS que ha usado en este tutorial.