

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.

# Gestión de un lago de datos mediante el control de acceso basado en etiquetas de Lake Formation
<a name="managing-dl-tutorial"></a>

Miles de clientes están creando lagos de datos a escala de petabytes. AWS Muchos de estos clientes los utilizan AWS Lake Formation para crear y compartir fácilmente sus lagos de datos en toda la organización. A medida que aumenta el número de tablas y usuarios, los responsables y administradores de datos buscan formas de gestionar fácilmente los permisos en los lagos de datos a escala. El control de acceso basado en etiquetas de Lake Formation (LF-TBAC) resuelve este problema al permitir que los administradores de datos creen *etiquetas LF* (en función de su clasificación y ontología de datos) que luego se pueden adjuntar a los recursos.

LF-TBAC es una estrategia de autorización que define permisos basados en atributos. En Lake Formation, estos atributos se denominan etiquetas LF. Puede adjuntar etiquetas LF a los recursos del Catálogo de datos y a las entidades principales de Lake Formation. Los administradores de lagos de datos pueden asignar y revocar permisos en los recursos de Lake Formation mediante etiquetas LF. Para obtener más información, consulte [Control de acceso basado en etiquetas de Lake Formation](tag-based-access-control.md). 

 Este tutorial muestra cómo crear una política de control de acceso basada en etiquetas de Lake Formation utilizando un conjunto de datos AWS público. Además, muestra cómo consultar tablas, bases de datos y columnas que tienen asociadas políticas de acceso basadas en etiquetas de Lake Formation. 

Puede utilizar LF-TBAC para los siguientes casos de uso:
+ Tiene un gran número de tablas y entidades principales a los que el administrador del lago de datos debe conceder acceso
+ Desea clasificar sus datos en función de una ontología y conceder permisos en función de la clasificación
+ El administrador del lago de datos desea asignar los permisos de forma dinámica, con acoplamiento flexible

A continuación, se indican los pasos generales para configurar permisos mediante LF-TBAC:

1. El administrador de datos define la ontología de las etiquetas con dos etiquetas LF: `Confidential` y `Sensitive`. Los datos `Confidential=True` tienen controles de acceso más estrictos. Los datos `Sensitive=True` requieren un análisis específico por parte del analista.

1. El administrador de datos asigna diferentes niveles de permisos al ingeniero de datos para crear tablas con diferentes etiquetas LF.

1. El ingeniero de datos crea dos bases de datos: `tag_database` y `col_tag_database`. Todas las tablas `tag_database` están configuradas con `Confidential=True`. Todas las tablas de `col_tag_database` están configuradas con `Confidential=False`. Algunas columnas de la tabla en `col_tag_database` tienen etiquetas `Sensitive=True` para necesidades de análisis específicas.

1. El ingeniero de datos concede permiso de lectura al analista para las tablas con una condición de expresión específica `Confidential=True` y `Confidential=False`, `Sensitive=True`. 

1. Con esta configuración, el analista de datos puede centrarse en hacer el análisis con los datos correctos.

**Topics**
+ [Destinatarios previstos](#tut-manage-dl-roles)
+ [Requisitos previos](#tut-manage-dl-prereqs)
+ [Paso 1: Aprovisionar recursos](#tut-manage-dl-provision-resources)
+ [Paso 2: Registrar la ubicación de sus datos, crear una ontología de etiquetas LF y conceder permisos](#tut-manage-dl-register-datalocation-lftag)
+ [Paso 3: Crear bases de datos de Lake Formation](#tut-manage-dl-tbac-create-databases)
+ [Paso 4: Conceder permisos de tabla](#tut-manage-dl-grant-table-permissions)
+ [Paso 5: Ejecutar una consulta en Amazon Athena para verificar los permisos](#tut-manage-dl-tbac-run-query)
+ [Paso 6: Limpiar AWS los recursos](#tut-manage-dl-tbac-clean-up-db)

## Destinatarios previstos
<a name="tut-manage-dl-roles"></a>



Este tutorial está dirigido a administradores de datos, ingenieros de datos y analistas de datos. Cuando se trata de gestionar AWS Glue Data Catalog y administrar los permisos en Lake Formation, los administradores de datos de las cuentas productoras tienen una propiedad funcional en función de las funciones que respaldan y pueden conceder acceso a varios consumidores, organizaciones externas y cuentas.

La tabla siguiente enumera los roles que se utilizan en este tutorial:


| Rol | Description (Descripción) | 
| --- | --- | 
| Administrador de datos | El usuario lf-data-steward tiene el acceso siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/managing-dl-tutorial.html)  | 
| Ingeniero de datos |  El usuario `lf-data-engineer` tiene el acceso siguiente:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/managing-dl-tutorial.html)  | 
| Analista de datos | El usuario lf-data-analyst tiene el siguiente acceso: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/managing-dl-tutorial.html)  | 

## Requisitos previos
<a name="tut-manage-dl-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).

## Paso 1: Aprovisionar recursos
<a name="tut-manage-dl-provision-resources"></a>

Este tutorial incluye una AWS CloudFormation plantilla para una configuración rápida. Puede revisarla y personalizarla para adaptarla a sus necesidades. La plantilla crea tres funciones diferentes (enumeradas en[Destinatarios previstos](#tut-manage-dl-roles)) para realizar este ejercicio y copia el nyc-taxi-data conjunto de datos en su bucket local de Amazon S3.
+ Un bucket de Amazon S3
+ Los escenarios apropiados de Lake Formation
+ Los recursos adecuados de Amazon EC2
+ Tres roles de IAM con credenciales

**Crear recursos**

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

1. Seleccione [Lanzar pila](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?templateURL=https://aws-bigdata-blog.s3.amazonaws.com/artifacts/lakeformationtbac/cfn/tbac_permission.json).

1.  Elija **Siguiente**.

1.  En la sección **Configuración de usuario**, introduzca la contraseña para tres roles: `DataStewardUserPassword`, `DataEngineerUserPassword` y `DataAnalystUserPassword`. 

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

1.  Seleccione **Crear**.

   La creación de la pila puede tardar hasta cinco minutos.

**nota**  
Después de completar el tutorial, es posible que desee eliminar la pila CloudFormation para evitar que se le sigan cobrando cargos. Compruebe que los recursos se hayan eliminado correctamente en el estado de evento de la pila.

## Paso 2: Registrar la ubicación de sus datos, crear una ontología de etiquetas LF y conceder permisos
<a name="tut-manage-dl-register-datalocation-lftag"></a>

En este paso, el usuario administrador de datos define la ontología de etiquetas con dos etiquetas LF `Confidential` y `Sensitive`; además, ofrece a las entidades principales de IAM específicas adjuntar etiquetas LF recién creadas a los recursos.

**Registre la ubicación de los datos y cree una ontología de etiquetas LF.**

1. Siga el primer paso como usuario administrador de datos (`lf-data-steward`) para verificar los datos en Amazon S3 y el Catálogo de datos en Lake Formation.

   1. Inicie sesión en la consola de Lake Formation `lf-data-steward` con la contraseña utilizada al implementar la CloudFormation pila. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)

   1. En el panel de navegación, en **Permisos**, elija **Roles y tareas administrativas**.

   1. En la sección **Administradores del lago de datos**, elija **Agregar**.

   1. En la página **Agregar administrador**, en **Usuarios y roles de IAM**, elija el usuario `lf-data-steward`.

   1. Seleccione **Guardar** para añadir `lf-data-steward` como administrador de Lake Formation.

1. A continuación, actualice la configuración del Catálogo de datos para usar el permiso de Lake Formation para controlar los recursos del catálogo en lugar del control de acceso basado en IAM.

   1. En el panel de navegación, **Administración**, seleccione **Configuración del Catálogo de datos**.

   1. Desmarque **Usar solo el control de acceso de IAM para las nuevas bases de datos**.

   1. Desmarque **Usar solo el control de acceso de IAM para las nuevas bases de datos**.

   1. Haga clic en **Guardar**.

1. A continuación, registre la ubicación de los datos para el lago de datos.

   1. En el panel de navegación, bajo **Administración**, seleccione **Ubicaciones de los lagos de datos**.

   1. Seleccione **Registrar ubicación**.

   1. En la página **Registrar ubicación**, en la **Ruta de Amazon S3**, introduzca `s3://lf-tagbased-demo-Account-ID`.

   1. En rol de **IAM**, deje el valor predeterminado `AWSServiceRoleForLakeFormationDataAccess` como está.

   1. Elija **Lake Formation** como modo de permiso.

   1. Elija **Registrar ubicación.**

1. A continuación, cree la ontología definiendo una etiqueta LF.

   1. En el panel de navegación, en **Permisos**, elija **Etiquetas LF y permisos**.

   1. Seleccione **Agregar etiqueta LF**.

   1. En **Clave**, escriba `Confidential`.

   1. En **Valores**, añada `True` y `False`.

   1. Elija **Añadir etiquetas LF**.

   1. Repita los pasos para crear la **Etiqueta LF** `Sensitive` con el valor `True`.

   Ha creado todas las etiquetas L necesarias para este ejercicio.

**Conceder permisos a los usuarios de IAM**

1. A continuación, otorgue a entidades principales específicas de IAM la capacidad de adjuntar etiquetas LF recién creadas a los recursos.

   1. En el panel de navegación, en **Permisos**, elija **Etiquetas LF y permisos**. 

   1. En la sección **Permisos de etiquetas LF**, elija **Conceder permisos**.

   1. En **Tipo de permiso**, elija **Permisos de par clave-valor de etiquetas LF**.

   1. Seleccione **Roles y usuarios de IAM**.

   1. En **Roles y usuarios de IAM**, busque y elija el rol `lf-data-engineer`.

   1. En la sección **Etiquetas LF**, agregue la clave `Confidential` con los valores `True` y `False`, y la `key` `Sensitive` con el valor `True`.

   1. En **Permisos**, seleccione **Describir** y **Asociar** para **Permisos** y **Permisos concedibles**.

   1. Elija **Conceder**.

1. A continuación, conceda permisos `lf-data-engineer` para crear bases de datos en nuestro catálogo de datos y en el bucket de Amazon S3 subyacente creado por AWS CloudFormation.

   1. En el panel de navegación, en **Administración**, seleccione **Roles y tareas administrativas**.

   1.  En la sección **Creadores de bases de datos**, elija **Conceder**.

   1. En **Usuarios de AIM y roles**, elija el rol `lf-data-engineer`.

   1. En **Permisos del catálogo**, seleccione **Crear base de datos**.

   1. Elija **Conceder**.

1. A continuación, conceda permisos en el bucket `(s3://lf-tagbased-demo-Account-ID)` de Amazon S3 al usuario `lf-data-engineer`.

   1. En el panel de navegación, bajo **Permisos**, seleccione **Ubicaciones de datos**.

   1. Elija **Conceder**.

   1. Seleccione **Mi cuenta**.

   1. En **Usuarios de AIM y roles**, elija el rol `lf-data-engineer`.

   1. Para **las ubicaciones de almacenamiento**, introduzca el depósito de Amazon S3 creado por la CloudFormation plantilla`(s3://lf-tagbased-demo-Account-ID)`.

   1. Elija **Conceder**.

1. A continuación, conceda permisos concedibles `lf-data-engineer` sobre los recursos asociados a la expresión `Confidential=True` de la **Etiqueta LF**.

   1. En el panel de navegación, en **Permisos**, seleccione **Permisos de lago de datos**.

   1. Elija **Conceder**.

   1. Seleccione **Roles y usuarios de IAM**.

   1.  Elija el rol `lf-data-engineer`.

   1. En la sección **Recursos del catálogo o de la etiqueta LF**, seleccione **Recursos que coincidan con las etiquetas LF**.

   1. Seleccione **Agregar par clave-valor de etiquetas LF**.

   1.  Añada la clave `Confidential` con los valores `True`.

   1. En la sección **Permisos de base de datos**, seleccione **Describir** en **Permisos de bases de datos** y **Permisos concedibles**. 

   1. En la sección **Permisos de tabla**, seleccione **Describir**, **Seleccionar** y **Modificar**, tanto para los **Permisos de tabla** como para los **Permisos concedibles**. 

   1.  Elija **Conceder**.

1. A continuación, otorgue permisos concedibles `lf-data-engineer` sobre los recursos asociados a la expresión `Confidential=False` de la etiqueta LF.

   1. En el panel de navegación, en **Permisos**, seleccione **Permisos de lago de datos**.

   1. Elija **Conceder**.

   1. Seleccione **Roles y usuarios de IAM**.

   1. Elija el rol `lf-data-engineer`.

   1.  Seleccione **Recursos que coincidan con las etiquetas LF**.

   1. Elija **Añadir etiquetas LF**.

   1.  Añada la clave `Confidential` con los valores `False`.

   1. En la sección **Permisos de base de datos**, seleccione **Describir** en **Permisos de bases de datos** y **Permisos concedibles**.

   1. En la sección **Permisos de tabla y columna**, no selecciones nada.

   1. Elija **Conceder**.

1. A continuación, conceda permisos concedibles `lf-data-engineer` sobre los recursos asociados a los pares de clave-valor `Confidential=False` y `Sensitive=True` de la **Etiqueta LF**.

   1. En el panel de navegación, en **Permisos**, seleccione **Permisos de datos**. 

   1. Elija **Conceder**.

   1. Seleccione **Roles y usuarios de IAM**.

   1. Elija el rol `lf-data-engineer`.

   1. En la sección **Etiquetas LF o recursos del catálogo**, seleccione **Recursos que coincidan con las etiquetas LF**.

   1. Seleccione **Agregar etiqueta LF**.

   1.  Añada la clave `Confidential` con los valores `False`.

   1. Seleccione **Agregar par clave-valor de etiquetas LF**.

   1. Añada la clave `Sensitive` con los valores `True`.

   1. En la sección **Permisos de base de datos**, seleccione **Describir** en **Permisos de bases de datos** y **Permisos concedibles**.

   1. En la sección **Permisos de tabla**, seleccione **Describir**, **Seleccionar** y **Modificar**, tanto para los **Permisos de tabla** como para los **Permisos concedibles**.

   1. Elija **Conceder**.

## Paso 3: Crear bases de datos de Lake Formation
<a name="tut-manage-dl-tbac-create-databases"></a>

En este paso, se crean dos bases de datos y se adjuntan etiquetas LF a las bases de datos y columnas específicas con fines de prueba.

**Cree sus bases de datos y su tabla para el acceso a nivel de base de datos**

1. En primer lugar, cree la base de datos `tag_database`, la tabla `source_data` y adjunte las etiquetas L correspondientes.

   1. En la consola de Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)), en **Catálogo de datos**, elija **Bases de datos**. 

   1. Elija **Creación de base de datos**.

   1. En **Nombre**, ingrese `tag_database`.

   1. En **Ubicación**, introduzca la ubicación de Amazon S3 creada por la CloudFormation plantilla`(s3://lf-tagbased-demo-Account-ID/tag_database/)`.

   1. Desmarque **Usar solo el control de acceso de IAM para las nuevas tablas de esta base de datos**.

   1. Elija **Creación de base de datos**.

1. A continuación, cree una nueva tabla dentro de `tag_database`.

   1. En la página **Bases de datos**, seleccione la base de datos `tag_database`.

   1.  Seleccione **Ver tablas** y haga clic en **Crear tabla**.

   1. En **Nombre**, escriba `source_data`.

   1. En **Base de datos** elija la base de datos `tag_database`.

   1. Para el **formato de tabla**, elija ** AWS Glue Tabla estándar**.

   1. En **Los datos se encuentran en**, elija **Ruta especificada en otra cuenta**.

   1. En Incluir ruta, introduzca la ruta que `tag_database` ha creado la CloudFormation plantilla`(s3://lf-tagbased-demoAccount-ID/tag_database/)`.

   1. En **Formato de datos**, seleccione **CSV**.

   1. En **Esquema de carga**, introduzca la matriz JSON de estructura de columnas siguiente para crear un esquema:

      ```
       [
                     {
                          "Name": "vendorid",
                          "Type": "string"
                     },
                     {
                          "Name": "lpep_pickup_datetime",
                          "Type": "string"                    
                     },
                     {
                          "Name": "lpep_dropoff_datetime",
                          "Type": "string"  
                    
                     },
                        {
                          "Name": "store_and_fwd_flag",
                          "Type": "string"                                
                     },
                        {
                          "Name": "ratecodeid",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "pulocationid",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "dolocationid",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "passenger_count",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "trip_distance",
                          "Type": "string"                    
                          
                     }, 
                        {
                          "Name": "fare_amount",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "extra",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "mta_tax",
                          "Type": "string"                    
                          
                     },
                     {
                          "Name": "tip_amount",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "tolls_amount",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "ehail_fee",
                          "Type": "string"                    
                          
                     }, 
                     {
                          "Name": "improvement_surcharge",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "total_amount",
                          "Type": "string"                    
                          
                     },
                     {
                          "Name": "payment_type",
                          "Type": "string"                    
                          
                     }
       ]
      ```

   1. Seleccione **Cargar**. Tras cargar el esquema, el esquema de la tabla será similar a la siguiente captura de pantalla:  
![\[Table schema with 18 columns showing column names and data types, all set to string.\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/tutorial-manage-dl-tbac1.jpg)

   1. Elija **Enviar**.

1. A continuación, adjunte etiquetas LF de base de datos.

   1. En la página **Bases de datos**, busque y seleccione `tag_database`. 

   1. En el menú **Acciones**, elija **Editar etiquetas LF**.

   1. Seleccione **Asignar una nueva etiqueta LF**.

   1. En **Claves asignadas**, elija la etiqueta LF `Confidential` que creó anteriormente.

   1. En **Valores**, elija `True`.

   1. Seleccione **Save**.

   Esto completa la asignación de la etiqueta LF a la base de datos tag\$1database.

**Cree su base de datos y su tabla para el acceso a nivel de base de datos**

Repita los pasos siguientes para crear la base de datos `col_tag_database` y la tabla `source_data_col_lvl`, y adjunte las etiquetas LF columna. 

1. En la página **Bases de datos**, seleccione **Crear base de datos**.

1. En **Nombre**, escriba `col_tag_database`.

1. En **Ubicación**, introduzca la ubicación de Amazon S3 creada por la CloudFormation plantilla`(s3://lf-tagbased-demo-Account-ID/col_tag_database/)`.

1. Desmarque **Usar solo el control de acceso de IAM para las nuevas tablas de esta base de datos**.

1. Elija **Creación de base de datos**.

1. En la página **Bases de datos**, seleccione la nueva base de datos `(col_tag_database)`. 

1. Seleccione **Ver tablas** y haga clic en **Crear tabla**.

1. En **Nombre**, escriba `source_data_col_lvl`.

1. En **Base de datos**, elija su nueva base de datos `(col_tag_database)`.

1. Para el **formato de tabla**, elija ** AWS Glue Tabla estándar**.

1. En **Los datos se encuentran en**, elija **Ruta especificada en otra cuenta**.

1. Introduzca la ruta de Amazon S3 para `col_tag_database` `(s3://lf-tagbased-demo-Account-ID/col_tag_database/)`.

1. En **Formato de datos**, seleccione `CSV`.

1. En `Upload schema`, introduzca el siguiente esquema JSON: 

   ```
   [
                  {
                       "Name": "vendorid",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "lpep_pickup_datetime",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "lpep_dropoff_datetime",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "store_and_fwd_flag",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "ratecodeid",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "pulocationid",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "dolocationid",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "passenger_count",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "trip_distance",
                       "Type": "string"
                       
                       
                  }, 
                     {
                       "Name": "fare_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "extra",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "mta_tax",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "tip_amount",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "tolls_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "ehail_fee",
                       "Type": "string"
                       
                       
                  }, 
                  {
                       "Name": "improvement_surcharge",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "total_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "payment_type",
                       "Type": "string"
                       
                       
                  }
   ]
   ```

1. Elija `Upload`. Tras cargar el esquema, el esquema de la tabla será similar a la siguiente captura de pantalla:  
![\[Table schema with 18 columns showing column names and data types, all set to string.\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/tutorial-manage-dl-tbac2.jpg)

1. Seleccione **Enviar** para completar la creación de la tabla.

1. Ahora, asocie la etiqueta LF `Sensitive=True` a las columnas `vendorid` y `fare_amount`.

   1. En la página **Tablas**, seleccione la tabla que ha creado `(source_data_col_lvl)`.

   1. En el menú **Acciones**, elija **Esquema**.

   1. Seleccione la columna `vendorid` y elija **Editar etiquetas LF**.

   1. En **Teclas asignadas**, seleccione **Sensible**.

   1.  En **Valores**, elija **Verdadero**.

   1. Seleccione **Save**.

1. A continuación, asocie la etiqueta LF `Confidential=False` a `col_tag_database`. Esto es necesario `lf-data-analyst` para poder describir la base de datos `col_tag_database` cuando se inicia sesión desde ella Amazon Athena.

   1. En la página **Bases de datos**, busque y seleccione `col_tag_database`.

   1. En el menú **Acciones**, elija **Editar etiquetas LF**.

   1. Seleccione **Asignar una nueva etiqueta LF**.

   1. En **Claves asignadas**, elija la etiqueta LF `Confidential` que creó anteriormente.

   1. En **Valores**, elija `False`.

   1. Seleccione **Save**.

## Paso 4: Conceder permisos de tabla
<a name="tut-manage-dl-grant-table-permissions"></a>

Conceda permisos a los analistas de datos para el uso de las bases de datos `tag_database` y la tabla `col_tag_database` utilizando etiquetas LF `Confidential` y `Sensitive`.

1. Siga estos pasos para conceder permisos al usuario `lf-data-analyst` sobre los objetos asociados a la etiqueta LF `Confidential=True` (base de datos: tag\$1database) para obtener el permiso `Describe` sobre la base de datos y el permiso `Select` sobre las tablas.

   1. Inicie sesión en la consola de Lake Formation en [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)as`lf-data-engineer`.

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

   1. Elija **Conceder**.

   1. En **Entidades principales**, seleccione **Roles y usuarios de IAM**.

   1. En **Roles y usuarios de IAM**, elija `lf-data-analyst`.

   1. En la sección **Etiquetas LF o recursos del catálogo**, seleccione **Recursos que coincidan con las etiquetas LF**.

   1. Elija **Añadir etiquetas LF**.

   1. En **Clave**, elija `Confidential`.

   1. En **Valores**, elija `True`.

   1. En **Permisos de base de datos**, seleccione `Describe`.

   1. En **Permisos de tabla**, elija **Seleccionar** y **Describir**. 

   1. Elija **Conceder**.

1. A continuación, repita los pasos para conceder permisos a los analistas de datos para la expresión `Confidential=False` de las etiquetas LF. Esta **Etiqueta LF** se utiliza para describir la tabla `col_tag_database` y la tabla `source_data_col_lvl` cuando se inicia sesión como `lf-data-analyst` desde Amazon Athena. 

   1. Inicie sesión en la consola de Lake Formation en [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)as`lf-data-engineer`.

   1. En la página **Bases de datos**, seleccione la base de datos `col_tag_database`.

   1. Elija **Acciones** y **Conceder**.

   1. En **Entidades principales**, seleccione **Roles y usuarios de IAM**.

   1. En **Roles y usuarios de IAM**, elija `lf-data-analyst`.

   1. Seleccione **Recursos que coincidan con las etiquetas LF**.

   1. Seleccione **Agregar etiqueta LF**.

   1. En **Clave**, elija `Confidential`.

   1.  En **Valores**, elija `False`.

   1. En **Permisos de base de datos**, seleccione `Describe`.

   1. En **Permisos de tabla**, no seleccione nada. 

   1. Elija **Conceder**.

1. A continuación, repita los pasos para conceder permisos a los analistas de datos para la expresión de etiquetas LF para `Confidential=False` y `Sensitive=True`. Esta Etiqueta LF se utiliza para describir la tabla `col_tag_database` y la tabla `source_data_col_lvl` (nivel de columna) cuando se inicia sesión como `lf-data-analyst` desde Amazon Athena.

   1. Inicie sesión en la consola de Lake Formation en [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)as`lf-data-engineer`.

   1. En la página Bases de datos, seleccione la base de datos `col_tag_database`.

   1. Elija **Acciones** y **Conceder**.

   1. En **Entidades principales**, seleccione **Roles y usuarios de IAM**.

   1.  En **Roles y usuarios de IAM**, elija `lf-data-analyst`.

   1. Seleccione **Recursos que coincidan con las etiquetas LF**.

   1. Elija **Añadir etiquetas LF**.

   1. En **Clave**, elija `Confidential`.

   1. En **Valores**, elija `False`.

   1. Elija **Añadir etiquetas LF**.

   1. En **Clave**, elija `Sensitive`.

   1. En **Valores**, elija `True`.

   1. En **Permisos de base de datos**, seleccione `Describe`.

   1. En **Permisos de tabla**, seleccione `Select` y `Describe`.

   1. Elija **Conceder**.

## Paso 5: Ejecutar una consulta en Amazon Athena para verificar los permisos
<a name="tut-manage-dl-tbac-run-query"></a>

En este paso, utilice Amazon Athena para ejecutar consultas `SELECT` en las dos tablas `(source_data and source_data_col_lvl)`. Utilice la ruta de Amazon S3 como ubicación de los resultados de la consulta `(s3://lf-tagbased-demo-Account-ID/athena-results/)`.

1. Inicie sesión en la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)as. `lf-data-analyst`

1. En el editor de consultas de Athena, selecciona `tag_database` en el panel izquierdo.

1. Seleccione el icono de opciones de menú adicionales (tres puntos verticales) situado junto a `source_data` y elija **Vista previa de la tabla**.

1. Elija **Ejecutar consulta**.

   La consulta tardará unos minutos en ejecutarse. La consulta muestra todas las columnas de la salida porque la etiqueta LF está asociada a nivel de base de datos y la tabla `source_data` heredó automáticamente la `LF-tag` de la base de datos `tag_database`.

1. Ejecute otra consulta con `col_tag_database` y `source_data_col_lvl`.

   La segunda consulta devuelve las dos columnas que estaban etiquetadas como `Non-Confidential` y `Sensitive`.

1. También puede comprobar el comportamiento de la política de acceso basada en etiquetas de Lake Formation en las columnas para las que no tiene concesiones de política. Cuando se selecciona una columna sin etiquetar de la tabla `source_data_col_lvl`, Athena devuelve un error. Por ejemplo, puede ejecutar la siguiente consulta para elegir columnas `geolocationid` sin etiquetar:

   ```
   SELECT geolocationid FROM "col_tag_database"."source_data_col_lvl" limit 10;
   ```

## Paso 6: Limpiar AWS los recursos
<a name="tut-manage-dl-tbac-clean-up-db"></a>

Para evitar que se le cobren cargos no deseados Cuenta de AWS, puede eliminar los AWS recursos que utilizó para este tutorial.

1. Inicie sesión en la consola de Lake Formation como `lf-data-engineer` y borre las bases de datos `tag_database` y `col_tag_database`.

1. Luego, inicie sesión como `lf-data-steward` y borre todos los **Permisos de etiqueta L**, los **Permisos de datos** y los **Permisos de ubicación de datos** concedidos antes `lf-data-engineer` y `lf-data-analyst.`.

1. Inicie sesión en la consola de Amazon S3 como propietario de la cuenta con las credenciales de IAM que utilizó para implementar la CloudFormation pila.

1. Elimine los buckets siguientes:
   + lf-tagbased-demo-accesslogs-*acct-id*
   + lf-tagbased-demo-*acct-id*

1. Inicie sesión en CloudFormation la consola en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) y elimine la pila que creó. Espera a que el estado de la pila cambie a. `DELETE_COMPLETE`