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
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 (LF-TBAC) de Lake Formation 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.
La LF- TBAC es una estrategia de autorización que define los permisos en función de los 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.
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 usar 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
Los siguientes son los pasos generales para configurar los permisos mediante LF-TBAC:
-
El administrador de datos define la ontología de las etiquetas con dos etiquetas LF:
Confidential
ySensitive
. Los datosConfidential=True
tienen controles de acceso más estrictos. Los datosSensitive=True
requieren un análisis específico por parte del analista. -
El administrador de datos asigna diferentes niveles de permisos al ingeniero de datos para crear tablas con diferentes etiquetas LF.
-
El ingeniero de datos crea dos bases de datos:
tag_database
ycol_tag_database
. Todas las tablastag_database
están configuradas conConfidential=True
. Todas las tablas decol_tag_database
están configuradas conConfidential=False
. Algunas columnas de la tabla encol_tag_database
tienen etiquetasSensitive=True
para necesidades de análisis específicas. El ingeniero de datos concede permiso de lectura al analista para las tablas con una condición de expresión específica
Confidential=True
yConfidential=False
,Sensitive=True
.-
Con esta configuración, el analista de datos puede centrarse en hacer el análisis con los datos correctos.
Temas
- Destinatarios previstos
- Requisitos previos
- Paso 1: Aprovisionar recursos
- Paso 2: Registre la ubicación de sus datos, cree una ontología de etiquetas LF y conceda permisos
- Paso 3: Crear bases de datos de Lake Formation
- Paso 4: Conceder permisos de tabla
- Paso 5: Ejecutar una consulta en Amazon Athena para verificar los permisos
- Paso 6: Limpiar AWS los recursos
Destinatarios previstos
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 | Descripción |
---|---|
Administrador de datos | El usuario lf-data-steward tiene el acceso siguiente:
|
Ingeniero de datos |
El usuario
|
Analista de datos | El usuario lf-data-analyst tiene el siguiente acceso:
|
Requisitos previos
Antes de comenzar este tutorial, debe tener una Cuenta de AWS que pueda usar 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.
En el tutorial se da por sentado que ya está familiarizadoIAM. Para obtener información al respectoIAM, consulte la Guía IAM del usuario.
Paso 1: Aprovisionar recursos
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 enDestinatarios previstos) 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 EC2 recursos de Amazon adecuados
Tres IAM funciones con credenciales
Crear recursos
Inicie sesión en la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation
en la región EE.UU. Este (Norte de Virginia). Seleccione Lanzar pila
. -
Elija Next (Siguiente).
-
En la sección Configuración de usuario, introduzca la contraseña para tres roles:
DataStewardUserPassword
,DataEngineerUserPassword
yDataAnalystUserPassword
. Revisa los detalles en la última página y selecciona Sé que AWS CloudFormation podría crear IAM recursos.
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 AWS CloudFormation para evitar seguir incurriendo en cargos. Compruebe que los recursos se hayan eliminado correctamente en el estado de evento de la pila.
Paso 2: Registre la ubicación de sus datos, cree una ontología de etiquetas LF y conceda permisos
En este paso, el usuario administrador de datos define la ontología de etiquetas con dos etiquetas LF Confidential
y da a los IAM directores específicos la posibilidad de Sensitive
adjuntar etiquetas L recién creadas a los recursos.
Registre una ubicación de datos y defina la ontología de etiquetas LF
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.Inicie sesión en la consola de Lake Formation
lf-data-steward
con la contraseña utilizada al implementar la AWS CloudFormation pila. https://console.aws.amazon.com/lakeformation/En el panel de navegación, en Permisos, elija Roles y tareas administrativas.
Elija Agregar en la sección de administradores de Data Lake.
En la página Agregar administrador, para IAMlos usuarios y roles, elija el usuario
lf-data-steward
.Seleccione Guardar para añadir
lf-data-steward
como administrador de Lake Formation.
-
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 IAM basado.
En el panel de navegación, Administración, seleccione Configuración del Catálogo de datos.
Desactive Usar solo el control de IAM acceso para bases de datos nuevas.
Desactive Usar solo el control de IAM acceso para las tablas nuevas de las bases de datos nuevas.
Haga clic en Guardar.
A continuación, registre la ubicación de los datos para el lago de datos.
En el panel de navegación, bajo Administración, seleccione Ubicaciones de los lagos de datos.
Seleccione Registrar ubicación.
En la página Registrar ubicación, para la ruta de Amazon S3, introduzca
s3://lf-tagbased-demo-
.Account-ID
Para el IAMrol, deje el valor predeterminado
AWSServiceRoleForLakeFormationDataAccess
tal como está.Elija Lake Formation como modo de permiso.
Elija Registrar ubicación.
-
A continuación, cree la ontología definiendo una etiqueta LF.
En Permisos, en el panel de navegación, elija etiquetas L y permisos. .
Seleccione Añadir etiqueta LF.
En Clave, escriba
Confidential
.En Valores, añada
True
yFalse
.Elija Añadir etiquetas LF.
-
Repita los pasos para crear la etiqueta LF
Sensitive
con el valor.True
Ha creado todas las etiquetas L necesarias para este ejercicio.
Conceda permisos a los usuarios IAM
-
A continuación, dé a IAM los directores específicos la posibilidad de adjuntar etiquetas L recién creadas a los recursos.
En Permisos, en el panel de navegación, selecciona etiquetas L y permisos.
En la sección de permisos con etiquetas LF, selecciona Otorgar permisos.
En el tipo de permiso, selecciona permisos de par clave-valor con etiqueta LF.
Seleccione IAM los usuarios y los roles.
Para IAMlos usuarios y los roles, busque y elija el
lf-data-engineer
rol.En la sección de etiquetas LF, añada la clave
Confidential
con valoresTrue
y yFalse
la clavekey
Sensitive
con valor.True
En Permisos, selecciona Describir y asociar para ver los permisos y los permisos concedibles.
Elija Conceder.
-
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.En Administración, en el panel de navegación, selecciona Funciones y tareas administrativas.
En la sección Creadores de bases de datos, elija Conceder.
Para IAMlos usuarios y los roles, elija el
lf-data-engineer
rol.En Permisos del catálogo, seleccione Crear base de datos.
Elija Conceder.
-
A continuación, conceda permisos en el bucket
(s3://lf-tagbased-demo-
de Amazon S3 al usuarioAccount-ID
)lf-data-engineer
.En el panel de navegación, bajo Permisos, seleccione Ubicaciones de datos.
Elija Conceder.
Seleccione Mi cuenta.
Para IAMlos usuarios y los roles, elija el
lf-data-engineer
rol.Para las ubicaciones de almacenamiento, introduzca el depósito de Amazon S3 creado por la AWS CloudFormation plantilla
(s3://lf-tagbased-demo-
.Account-ID
)Elija Conceder.
-
A continuación, conceda permisos
lf-data-engineer
concedibles sobre los recursos asociados a la expresión de etiqueta LF.Confidential=True
En el panel de navegación, en Permisos, seleccione Permisos de lago de datos.
Elija Conceder.
Seleccione IAM los usuarios y los roles.
Elija el rol
lf-data-engineer
.En la sección de etiquetas LF o recursos del catálogo, seleccione Recursos que coincidan con etiquetas LF.
Selecciona Añadir par clave-valor de etiqueta LF.
Añada la clave
Confidential
con los valoresTrue
.En la sección Permisos de base de datos, seleccione Describir en Permisos de bases de datos y Permisos concedibles.
En la sección Permisos de tabla, selecciona Describir, Seleccionar y Modificar tanto para los permisos de tabla como para los permisos concedibles.
Elija Conceder.
-
A continuación, conceda permisos
lf-data-engineer
concedibles sobre los recursos asociados a la expresión de etiqueta LF.Confidential=False
En el panel de navegación, en Permisos, seleccione Permisos de lago de datos.
Elija Conceder.
Seleccione IAM los usuarios y los roles.
Elija el rol
lf-data-engineer
.Seleccione Recursos que coincidan con las etiquetas LF.
Elija Añadir etiquetas LF.
Añada la clave
Confidential
con los valoresFalse
.En la sección Permisos de base de datos, seleccione Describir en Permisos de bases de datos y Permisos concedibles.
En la sección Permisos de tabla y columna, no selecciones nada.
Elija Conceder.
-
A continuación, concedemos permisos
lf-data-engineer
concedibles sobre los recursos asociados a los pares clave-valor de la etiqueta LF y.Confidential=False
Sensitive=True
En el panel de navegación, en Permisos, seleccione Permisos de datos.
Elija Conceder.
Seleccione los usuarios y los roles. IAM
Elija el rol
lf-data-engineer
.En la sección Etiquetas LF o recursos del catálogo, selecciona Recursos que coincidan con las etiquetas LF.
Seleccione Añadir etiqueta LF.
Añada la clave
Confidential
con los valoresFalse
.Selecciona Añadir par clave-valor de etiqueta LF.
Añada la clave
Sensitive
con los valoresTrue
.En la sección Permisos de base de datos, seleccione Describir en Permisos de bases de datos y Permisos concedibles.
En la sección Permisos de tabla, selecciona Describir, Seleccionar y Modificar tanto para los permisos de tabla como para los permisos concedibles.
Elija Conceder.
Paso 3: Crear bases de datos de Lake Formation
En este paso, creará dos bases de datos y adjuntará 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
-
En primer lugar, cree la base de datos
tag_database
, la tablasource_data
y adjunte las etiquetas LF adecuadas.En la consola de Lake Formation (https://console.aws.amazon.com/lakeformation/
), en Catálogo de datos, elija Bases de datos. Elija Crear base de datos.
En Nombre, ingrese
tag_database
.En Ubicación, introduzca la ubicación de Amazon S3 creada por la AWS CloudFormation plantilla
(s3://lf-tagbased-demo-
.Account-ID
/tag_database/)Deseleccione Usar solo el control de IAM acceso para las tablas nuevas de esta base de datos.
Elija Crear base de datos.
-
A continuación, cree una nueva tabla dentro de
tag_database
.En la página Bases de datos, seleccione la base de datos
tag_database
.Seleccione Ver tablas y haga clic en Crear tabla.
En Nombre, escriba
source_data
.En Base de datos elija la base de datos
tag_database
.En Formato de tabla, elija AWS Glue Tabla estándar.
En Los datos se encuentran en, elija Ruta especificada en otra cuenta.
En Incluir ruta, introduzca la ruta que
tag_database
ha creado la AWS CloudFormation plantilla(s3://lf-tagbased-demo
.Account-ID
/tag_database/)En Formato de datos, seleccione CSV.
En Esquema de carga, introduzca la siguiente JSON matriz de estructura de columnas 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" } ]
Seleccione Cargar. Tras cargar el esquema, el esquema de la tabla será similar a la siguiente captura de pantalla:
Elija Enviar.
-
A continuación, adjunte etiquetas LF a nivel de base de datos.
En la página Bases de datos, busque y seleccione
tag_database
.En el menú Acciones, seleccione Editar etiquetas LF.
Seleccione Asignar una nueva etiqueta LF.
En Llaves asignadas, elige la
Confidential
etiqueta LF que creaste anteriormente.En Valores, elija
True
.Seleccione Guardar.
Esto completa la asignación de la etiqueta LF a la base de datos tag_database.
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 y la tablasource_data_col_lvl
, col_tag_database
y adjunte las etiquetas LF a nivel de columna.
En la página Bases de datos, seleccione Crear base de datos.
-
En Nombre, escriba
col_tag_database
. -
En Ubicación, introduzca la ubicación de Amazon S3 creada por la AWS CloudFormation plantilla
(s3://lf-tagbased-demo-
.Account-ID
/col_tag_database/) -
Deseleccione Usar solo el control de IAM acceso para las tablas nuevas de esta base de datos.
-
Elija Crear base de datos.
En la página Bases de datos, seleccione la nueva base de datos
(col_tag_database)
.Seleccione Ver tablas y haga clic en Crear tabla.
En Nombre, escriba
source_data_col_lvl
.En Base de datos, elija su nueva base de datos
(col_tag_database)
.En Formato de tabla, elija AWS Glue Tabla estándar.
En Los datos se encuentran en, elija Ruta especificada en otra cuenta.
Introduzca la ruta de Amazon S3 para
col_tag_database
(s3://lf-tagbased-demo-
.Account-ID
/col_tag_database/)En Formato de datos, seleccione
CSV
.En
Upload schema
, introduzca el siguiente esquemaJSON:[ { "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" } ]
Elija
Upload
. Tras cargar el esquema, el esquema de la tabla será similar a la siguiente captura de pantalla:Seleccione Enviar para completar la creación de la tabla.
-
Ahora, asocie la
Sensitive=True
etiqueta LF a las columnasvendorid
y.fare_amount
En la página Tablas, seleccione la tabla que ha creado
(source_data_col_lvl)
.En el menú Acciones, selecciona Esquema.
Seleccione la columna
vendorid
y elija Editar etiquetas LF.En Teclas asignadas, seleccione Sensible.
En Valores, elija Verdadero.
Seleccione Guardar.
-
A continuación, asocie la etiqueta
Confidential=False
LF a.col_tag_database
Esto es necesariolf-data-analyst
para poder describir la base de datoscol_tag_database
cuando se inicia sesión desde. Amazon AthenaEn la página Bases de datos, busque y seleccione
col_tag_database
.En el menú Acciones, seleccione Editar etiquetas LF.
Seleccione Asignar una nueva etiqueta LF.
En Llaves asignadas, elige la
Confidential
etiqueta LF que creaste anteriormente.En Valores, elija
False
.Seleccione Guardar.
Paso 4: Conceder permisos de tabla
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
.
-
Siga estos pasos para conceder permisos al
lf-data-analyst
usuario sobre los objetos asociados a la etiqueta LFConfidential=True
(Database:TAG_Database) para tener la base de datos y permisos sobre las tablas.Describe
Select
Inicie sesión en la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/
as lf-data-engineer
.En Permisos, selecciona Permisos de Data Lake.
Elija Conceder.
En Directores, selecciona IAMusuarios y roles.
Para IAMlos usuarios y los roles, elija
lf-data-analyst
.En Etiquetas LF o recursos del catálogo, selecciona Recursos que coincidan con etiquetas LF.
Elija Añadir etiquetas LF.
En Clave, elija
Confidential
.En Valores, elija
True
.En Permisos de base de datos, seleccione
Describe
.En Permisos de tabla, elija Seleccionar y Describir.
Elija Conceder.
-
A continuación, repita los pasos para conceder permisos a los analistas de datos para la expresión de etiquetas LF.
Confidential=False
Esta Etiqueta LF se utiliza para describir la tablacol_tag_database
y la tablasource_data_col_lvl
cuando se inicia sesión comolf-data-analyst
desde Amazon Athena.Inicie sesión en la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/
as lf-data-engineer
.En la página Bases de datos, seleccione la base de datos
col_tag_database
.Elija Acciones y Conceder.
En Directores, seleccione IAMusuarios y roles.
Para IAMlos usuarios y los roles, elija
lf-data-analyst
.Seleccione los recursos que coincidan con las etiquetas LF.
Seleccione Añadir etiqueta LF.
En Clave, elija
Confidential
.En Valores, elija
False
.En Permisos de base de datos, seleccione
Describe
.En Permisos de tabla, no seleccione nada.
Elija Conceder.
-
A continuación, repita los pasos para conceder permisos a los analistas de datos para la expresión de etiquetas LF para y.
Confidential=False
Sensitive=True
Esta Etiqueta LF se utiliza para describir la tablacol_tag_database
y la tablasource_data_col_lvl
(nivel de columna) cuando se inicia sesión comolf-data-analyst
desde Amazon Athena.Inicie sesión en la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/
as lf-data-engineer
.En la página Bases de datos, seleccione la base de datos
col_tag_database
.Elija Acciones y Conceder.
En Directores, selecciona IAMusuarios y roles.
Para IAMlos usuarios y los roles, elija
lf-data-analyst
.Seleccione los recursos que coincidan con las etiquetas LF.
Elija Añadir etiquetas LF.
En Clave, elija
Confidential
.En Valores, elija
False
.Elija Añadir etiquetas LF.
En Clave, elija
Sensitive
.En Valores, elija
True
.En Permisos de base de datos, seleccione
Describe
.En Permisos de tabla, seleccione
Select
yDescribe
.Elija Conceder.
Paso 5: Ejecutar una consulta en Amazon Athena para verificar los permisos
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/)
-
Inicie sesión en la consola de Athena en https://console.aws.amazon.com/athena/
as. lf-data-analyst
En el editor de consultas de Athena, selecciona
tag_database
en el panel izquierdo.Seleccione el icono de opciones de menú adicionales (tres puntos verticales) situado junto a
source_data
y elija Vista previa de la tabla.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 laLF-tag
de la base de datostag_database
.Ejecute otra consulta con
col_tag_database
ysource_data_col_lvl
.La segunda consulta devuelve las dos columnas que estaban etiquetadas como
Non-Confidential
ySensitive
.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 columnasgeolocationid
sin etiquetar:SELECT geolocationid FROM "col_tag_database"."source_data_col_lvl" limit 10;
Paso 6: Limpiar AWS los recursos
Para evitar que se le cobren cargos no deseados Cuenta de AWS, puede eliminar los AWS recursos que utilizó para este tutorial.
-
Inicie sesión en la consola de Lake Formation como
lf-data-engineer
y borre las bases de datostag_database
ycol_tag_database
. -
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 anteslf-data-engineer
ylf-data-analyst.
. -
Inicie sesión en la consola de Amazon S3 como propietario de la cuenta con las IAM credenciales que utilizó para implementar la AWS CloudFormation pila.
-
Elimine los buckets siguientes:
lf-tagbased-demo-accesslogs-
acct-id
lf-tagbased-demo-
acct-id
-
Inicie sesión en AWS CloudFormation la consola en https://console.aws.amazon.com/cloudformation
y elimine la pila que creó. Espera a que el estado de la pila cambie a. DELETE_COMPLETE