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.
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.
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 |
|
Entidad principal 2 |
|
Entidad principal 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)
.