Control de acceso basado en etiquetas de Lake Formation - AWS Lake Formation

Control de acceso basado en etiquetas de Lake Formation

El control de acceso basado en etiquetas de Lake Formation (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 recursos del Catálogo de datos y conceder permisos a entidades principales de Lake Formation sobre dichos recursos mediante estas etiquetas LF. Lake Formation permite operaciones en esos recursos cuando la etiqueta de la entidad principal coincide con el valor de la etiqueta del recurso. LF-TBAC es útil en entornos que crecen rápidamente y ayuda en situaciones en las que la administración de políticas se vuelve engorrosa.

LF-TBAC es el método recomendado para conceder permisos de Lake Formation cuando hay un gran número de recursos del Catálogo de datos. LF-TBAC es más escalable que el método de recursos con nombre y requiere menos sobrecarga en la administración de permisos.

nota

Las etiquetas IAM no son lo mismo que las etiquetas LF. Estas etiquetas no son intercambiables. Las etiquetas LF se utilizan para conceder permisos de Lake Formation y las etiquetas de IAM se utilizan para definir las políticas de IAM.

Cómo funciona el control de acceso basado en etiquetas de Lake Formation

Cada etiqueta LF es un par clave-valor, como o department=sales o classification=restricted. Una clave puede tener varios valores definidos, como department=sales,marketing,engineering,finance.

Para utilizar el método LF-TBAC, los administradores del lago de datos y los ingenieros de datos llevan a cabo las tareas siguientes.

Tarea Detalles de la tarea

1. Definir las propiedades y las relaciones de las etiquetas LF.

-

2. Generar los creadores de etiquetas LF en Lake Formation.

Añadir creadores de etiquetas LF

3. Generar la etiqueta LF en Lake Formation.

Crear etiquetas LF

4. Asignar etiquetas LF a recursos del Catálogo de datos.

Asignación de varias etiquetas LF a recursos del Catálogo de datos

5. Conceder permisos a otras entidades principales para asignar etiquetas LF a los recursos, de forma opcional con la opción de concesión.

Administración de permisos de valores de etiquetas LF

6. Conceder expresiones de etiquetas LF a entidades principales, de forma opcional con la opción de concesión.

Conceder permisos de lago de datos mediante el método LF-TBAC

7. (Recomendado) Después de verificar que las entidades principales tienen acceso a los recursos correctos mediante el método LF-TBAC, revoque los permisos que se concedieron utilizando el método de recursos con nombre.

-

Imagine un caso en el que debe conceder permisos a tres entidades principales sobre tres bases de datos y siete tablas.

En la parte izquierda aparecen tres figuras de usuarios dispuestas en vertical. A la derecha hay tres bases de datos etiquetadas como A, B y C, en vertical. La base de datos A tiene dos tablas etiquetadas como A.1 y A.2, la base de datos B tiene tablas etiquetadas como B.1 y B.2, y la base de datos C tiene tres tablas etiquetadas como C.1, C.2 y C.3. Hay diecisiete flechas que conectan a los usuarios con las bases de datos y las tablas, y que reflejan las concesiones sobre las bases de datos y las tablas a esos usuarios.

Para conseguir los permisos indicados en el diagrama anterior utilizando el método de recursos con nombre, tendría que efectuar 17 concesiones, como se indica a continuación (en pseudocódigo).

GRANT CREATE_TABLE ON Database A TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table A.1 TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table A.2 TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table B.2 TO PRINCIPAL 1 ... GRANT SELECT, INSERT ON Table A.2 TO PRINCIPAL 2 GRANT CREATE_TABLE ON Database B TO PRINCIPAL 2 ... GRANT SELECT, INSERT ON Table C.3 TO PRINCIPAL 3

Ahora piense cómo concedería los permisos mediante el método de LF-TBAC. El siguiente diagrama indica que ha asignado etiquetas LF a bases de datos y tablas, y ha concedido permisos sobre las etiquetas LF a las entidades principales.

En este ejemplo, las etiquetas LF representan áreas del lago de datos que contienen análisis para diferentes módulos de un conjunto de aplicaciones de planificación de recursos empresariales (ERP). Puede controlar el acceso a los datos analíticos de los distintos módulos. Todas las etiquetas LF tienen la clave module y los posibles valores Sales, Orders, y Customers. Un ejemplo de URL sería:

module=Sales

El diagrama muestra solo los valores de las etiquetas LF.

Al igual que en el diagrama anterior, hay tres figuras de usuarios a la izquierda, en vertical y, a la derecha, tres bases de datos A, B y C, en vertical. La base de datos A tiene dos tablas etiquetadas como A.1 y A.2, la base de datos B tiene tablas etiquetadas como B.1 y B.2, y la base de datos C tiene tres tablas etiquetadas como C.1, C.2 y C.3. No hay flechas entre los usuarios y las bases de datos y tablas. En su lugar, las banderitas con etiquetas que hay junto a los usuarios indican que al usuario 1 se le han concedido las etiquetas LF Ventas y Clientes, al usuario 2 se le han concedido las etiquetas LF Pedidos y al usuario 3 se le han concedido las etiquetas LF Clientes. Las etiquetas junto a las bases de datos y las tablas indican las siguientes asignaciones de etiquetas LF a bases de datos y tablas: Base de datos A: Ventas. Tabla A1: Una etiqueta atenuada indica que Ventas se heredó de la base de datos A. Tabla A2: Pedidos, pero una etiqueta atenuada indica que Ventas se heredó de la base de datos A. Base de datos B: Pedidos. Las tablas B.1 y B.2 heredan Pedidos, y la tabla B.2 tiene Clientes. La base de datos C tiene Clientes, y las tablas C.1, C.2 y C.3 heredan Clientes. Las tablas C no tienen ninguna otra asignación.
Asignación de etiquetas a los recursos del Catálogo de datos y herencia

Las tablas heredan las etiquetas LF de las bases de datos y las columnas heredan las etiquetas LF de las tablas. Los valores heredados pueden anularse. En el diagrama anterior, las etiquetas LF atenuadas se heredan.

Debido a la herencia, el administrador del lago de datos solo necesita hacer las cinco asignaciones de etiquetas LF siguientes a los recursos (en pseudocódigo).

ASSIGN TAGS module=Sales TO database A ASSIGN TAGS module=Orders TO table A.2 ASSIGN TAGS module=Orders TO database B ASSIGN TAGS module=Customers TO table B.2 ASSIGN TAGS module=Customers TO database C
Etiquetar las concesiones a las entidades principales

Tras asignar las etiquetas LF a las bases de datos y tablas, el administrador del lago de datos debe efectuar solo cuatro concesiones de etiquetas LF a las entidades principales, como se indica a continuación (en pseudocódigo).

GRANT TAGS module=Sales TO Principal 1 GRANT TAGS module=Customers TO Principal 1 GRANT TAGS module=Orders TO Principal 2 GRANT TAGS module=Customers TO Principal 3

Ahora, una entidad principal con la etiqueta LF module=Sales puede acceder a los recursos del Catálogo de datos con la etiqueta LF module=Sales (por ejemplo, la base de datos A), una entidad principal con la etiqueta LF module=Customers puede acceder a los recursos con la etiqueta LF module=Customers, y así sucesivamente.

Los comandos de concesión anteriores están incompletos. Esto se debe a que, aunque indican mediante etiquetas LF los recursos del Catálogo de datos sobre los que las entidades principales tienen permisos, no indican exactamente qué permisos de Lake Formation (como SELECT, ALTER) tienen las entidades principales sobre esos recursos. Por lo tanto, los siguientes comandos de pseudocódigo son una representación más exacta de cómo se conceden los permisos de Lake Formation sobre los recursos del Catálogo de datos a través de las etiquetas LF.

GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Sales TO Principal 1 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Sales TO Principal 1 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Customers TO Principal 1 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Customers TO Principal 1 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Orders TO Principal 2 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Orders TO Principal 2 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Customers TO Principal 3 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Customers TO Principal 3
Recopilación. Permisos resultantes sobre los recursos

Dadas las etiquetas LF asignadas a las bases de datos y las tablas en el diagrama anterior, y las etiquetas LF concedidas a las entidades principales en el diagrama, la siguiente tabla enumera los permisos de Lake Formation que las entidades principales tienen sobre las bases de datos y las tablas.

Entidad principal Permisos otorgados mediante etiquetas LF
Entidad principal 1
  • CREATE_TABLE sobre la base de datos A

  • SELECT, INSERT sobre la tabla A.1

  • SELECT, INSERT sobre la tabla B.2

  • CREATE_TABLE sobre la base de datos C

  • SELECT, INSERT sobre la tabla C.1

  • SELECT, INSERT sobre la tabla C.2

  • SELECT, INSERT sobre la tabla C.3

Entidad principal 2
  • SELECT, INSERT sobre la tabla A.2

  • CREATE_TABLE sobre la base de datos B

  • SELECT, INSERT sobre la tabla B.1

Entidad principal 3
  • SELECT, INSERT sobre la tabla B.2

  • CREATE_TABLE sobre la base de datos C

  • SELECT, INSERT sobre la tabla C.1

  • SELECT, INSERT sobre la tabla C.2

  • SELECT, INSERT sobre la tabla C.3

Conclusión

En este sencillo ejemplo, el administrador del lago de datos ha podido especificar 17 permisos mediante cinco operaciones de asignación y ocho de concesión. Cuando hay decenas de bases de datos y cientos de tablas, la ventaja del método LF-TBAC sobre el método de recursos con nombre se hace evidente. En el caso hipotético de la necesidad de conceder a cada entidad principal acceso a cada recurso, y donde n(P) es el número de entidades principales y n(R) es el número de recursos:

  • Con el método de recurso con nombre, la cantidad de concesiones requeridas es n(P)n(R).

  • Con el método LF-TBAC, que utiliza una sola etiqueta LF, el número total de concesiones a entidades principales y asignaciones a recursos es n(P) + n(R).