

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
<a name="cbac-tutorial"></a>

AWS Lake Formation Los permisos a nivel de fila 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 AWS CloudFormation plantilla para configurar rápidamente los recursos necesarios. Puede revisarla y personalizarla para adaptarla a sus necesidades.

**Topics**
+ [Destinatarios previstos](#tut-cbac-roles-tutorial)
+ [Requisitos previos](#tut-cbac-prereqs)
+ [Paso 1: Aprovisionar recursos](#set-up-cbac-resources)
+ [Paso 2: Consultar sin filtros de datos](#query-without-filters)
+ [Paso 3: Configurar los filtros de datos y conceder permisos](#setup-data-filters)
+ [Paso 4: Consultar con filtros de datos](#query-with-filters)
+ [Paso 5: Limpiar AWS los recursos](#cbac-clean-up)

## Destinatarios previstos
<a name="tut-cbac-roles-tutorial"></a>

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


| Rol | Description (Descripción) | 
| --- | --- | 
| Administrador de IAM | Usuario que puede crear usuarios, roles y buckets de Amazon Simple Storage Service (Amazon S3). Tiene la política AdministratorAccess AWS gestionada. | 
| 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
<a name="tut-cbac-prereqs"></a>

Antes de empezar este tutorial, debe disponer de una Cuenta de AWS que pueda utilizar para 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](getting-started-setup.md#initial-aws-signup).

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html).

**Cambiar la configuración de Lake Formation**
**importante**  
Antes de lanzar la CloudFormation plantilla, 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 que se indican a continuación:

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

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

1. 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**.

1.  Seleccione **Guardar**.

## Paso 1: Aprovisionar recursos
<a name="set-up-cbac-resources"></a>

Este tutorial incluye una CloudFormation plantilla para una configuración rápida. Puede revisarla y personalizarla para adaptarla a sus necesidades. La CloudFormation plantilla genera los siguientes recursos:
+ Usuarios y políticas para:
  + DataLakeAdmin
  + DataAnalystNOSOTROS
  + DataAnalystJP
+ Configuración y permisos del lago de datos de Lake Formation
+ Una función de Lambda (para recursos CloudFormation personalizados 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 AWS Glue Data Catalog base de datos, una tabla y una partición

**Crear recursos**

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

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

1. Elija [Lanzar pila](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create?templateURL=https://aws-bigdata-blog.s3.amazonaws.com/artifacts/lakeformation_row_security/lakeformation_tutorial_row_security.yaml).

1. Seleccione **Siguiente** en la pantalla **Crear pila**.

1. Introduzca un **Nombre de pila**.

1. Para **DatalakeAdminUserName**y **DatalakeAdminUserPassword**, introduzca su nombre de usuario y contraseña de IAM como usuario administrador de Data Lake.

1. Para **DataAnalystUsUserName**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.

1. Para **DataAnalystJpUserName**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.

1. Para **DataLakeBucketName**, introduzca el nombre de su depósito de datos.

1. Para **DatabaseName**y **TableName**déjelo como predeterminado.

1. Elija **Siguiente**.

1. En la siguiente página, elija **Siguiente**.

1. Revisa los detalles en la última página y selecciona **Acepto que CloudFormation podría crear recursos de IAM**.

1. Seleccione **Crear**.

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

## Paso 2: Consultar sin filtros de datos
<a name="query-without-filters"></a>

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 Athena consola [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)como `DatalakeAdmin` usuario y ejecute la siguiente consulta:

   ```
   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.  
![Tabla de resultados de consulta que muestra las reseñas de productos de Amazon con columnas para el mercado, el ID del cliente, el ID de la reseña, los detalles del producto, las valoraciones y los votos.](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/cbac-tut-query-results1.jpg)

1. 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`.  
![Los resultados de la consulta muestran una columna del sitio web con cinco valores: FR, UK, JP, DE y US con recuentos.](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/cbac-tut-query-results2.jpg)

## Paso 3: Configurar los filtros de datos y conceder permisos
<a name="setup-data-filters"></a>

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 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)en la región EE.UU. Este (Norte de Virginia) como `DatalakeAdmin` usuario.

   1. Elija **Filtros de datos**.

   1. Elija **Crear filtro**.

   1. En **Nombre del filtro de datos**, introduzca `amazon_reviews_US`.

   1. En **Base de datos de destino** elija la base de datos `lakeformation_tutorial_row_security`.

   1. En **Tabla de objetivos**, elija la tabla `amazon_reviews`.

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

   1. En **Expresión de filtro de filas**, introduzca `marketplace='US'`.

   1.  Elija **Crear filtro**.

1. 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**.

   1. En **Nombre del filtro de datos**, introduzca `amazon_reviews_JP`.

   1. En **Base de datos de destino** elija la base de datos `lakeformation_tutorial_row_security`.

   1.  En **Tabla de destino**, elija la tabla `table amazon_reviews`.

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

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

   1.  Elija **Crear filtro**.

1. 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**.

   1. En **Permiso de datos**, seleccione **Conceder**. 

   1. En el **Entidades principales**, elija **Usuarios y roles de IAM** y seleccione el rol `DataAnalystUS`.

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

   1. En **Database (Base de datos)**, elija `lakeformation_tutorial_row_security`.

   1.  Para **Tablas (opcional)**, elija `amazon_reviews`.

   1. Para **Filtros de datos: opcional**, seleccione `amazon_reviews_US`.

   1. Para **Permisos de filtro de datos**, elija **Seleccionar**.

   1. Elija **Conceder**.

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

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

   1. En **Permiso de datos**, seleccione **Conceder**. 

   1. En el **Entidades principales**, elija **Usuarios y roles de IAM** y seleccione el rol `DataAnalystJP`.

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

   1. En **Database (Base de datos)**, elija `lakeformation_tutorial_row_security`.

   1.  Para **Tablas (opcional)**, elija `amazon_reviews`.

   1. Para **Filtros de datos: opcional**, seleccione `amazon_reviews_JP`.

   1. Para **Permisos de filtro de datos**, elija **Seleccionar**.

   1. Elija **Conceder**.

## Paso 4: Consultar con filtros de datos
<a name="query-with-filters"></a>

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. Inicie sesión en la consola de Athena [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)como usuario. `DataAnalystUS`

1. 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.  
![Tabla de resultados de consulta que muestra las reseñas de productos de Amazon con columnas para el mercado, el ID del cliente, el ID de la reseña, los detalles del producto y las valoraciones.](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/cbac-tut-query-results3.png)

1. 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`.

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

1. 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 AWS los recursos
<a name="cbac-clean-up"></a>

**Eliminar recursos**

Para evitar que se le cobren cargos no deseados Cuenta de AWS, puede eliminar los AWS recursos que utilizó para este tutorial.
+ [Elimine la pila de formación de nube](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html).