Limitaciones de filtrado de datos - AWS Lake Formation

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.

Limitaciones de filtrado de datos

Al conceder permisos de Lake Formation en una tabla del Catálogo de datos, puede incluir especificaciones de filtrado de datos para restringir el acceso a determinados datos en los resultados de las consultas y en los motores integrados con Lake Formation. Lake Formation utiliza el filtrado de datos para ofrecer una seguridad a nivel de columna, fila y celda. Puede definir y aplicar filtros de datos en las columnas anidadas si los datos de origen contienen estructuras anidadas.

Notas y restricciones para el filtrado de nivel de columna

Hay tres formas de especificar el filtrado de columnas:

  • Mediante el uso de filtros de datos

  • Mediante el uso de un filtrado de columnas simple o un filtrado de columnas anidadas.

  • Mediante el uso deTAGs.

El filtrado de columnas simple solo especifica una lista de columnas para incluir o excluir. Tanto la consola de Lake Formation como la API de Lake Formation AWS CLI admiten un filtrado de columnas sencillo. Para ver un ejemplo, consulte Grant with Simple Column Filtering.

Las siguientes notas y restricciones corresponden al filtrado de columnas:

  • AWS Glue ETLjobs no admite el filtrado de columnas. El trabajo falla si el filtrado de columnas se aplica a cualquier tabla a la que haga referencia el trabajo.

  • Para conceder SELECT con la opción de concesión y el filtrado de columnas, debe usar una lista de inclusión, no una lista de exclusiones. Sin la opción de conceder, puede utilizar listas de inclusión o exclusión.

  • Para conceder SELECT en una tabla con filtrado de columnas, debe haber obtenido la autorización SELECT en la tabla con la opción de concesión y sin restricciones de filas. Debe tener acceso a todas las filas.

  • Si concede SELECT con la opción de concesión y filtrado de columnas a una entidad principal de su cuenta, dicha entidad principal deberá especificar el filtrado de columnas para las mismas columnas o un subconjunto de las columnas beneficiarias cuando conceda a otra entidad principal. Si concede SELECT con la opción de concesión y filtrado de columnas a una cuenta externa, el administrador del lago de datos de la cuenta externa puede conceder SELECT en todas las columnas a otra entidad principal de su cuenta. Sin embargo, incluso con SELECT en todas las columnas, esa entidad principal tendrá visibilidad solo en las columnas concedidas a la cuenta externa.

  • No puede aplicar el filtrado de columnas a las claves de partición.

  • A una entidad principal con el permiso SELECT sobre un subconjunto de columnas de una tabla no se le puede conceder el permiso ALTER, DROP, DELETE o INSERT sobre esa tabla. Para una entidad principal con el permiso ALTER, DROP, DELETE o INSERT en una tabla, si concede el permiso SELECT con filtrado de columnas, no tiene ningún efecto.

Las siguientes notas y restricciones se aplican al filtrado de columnas anidadas:

  • Puede incluir o excluir cinco niveles de campos anidados en un filtro de datos.

    Col1.Col1_1.Col1_1_1.Col1_1_1_1.Col1_1_1_1_1

  • No puede aplicar el filtrado de columnas a los campos anidados dentro de las columnas de partición.

  • Si el esquema de la tabla contiene un nombre de columna de nivel superior (“cliente”.”dirección”) que tiene el mismo patrón de representación de un campo anidado dentro de un filtro de datos (una columna anidada con un nombre de columna de nivel superior customer y un nombre de campo anidado address se especifica como "customer"."address" en un filtro de datos), no puede especificar explícitamente el acceso a la columna de nivel superior o al campo anidado, ya que ambos se representan con el mismo patrón en las listas de inclusión/exclusión. Esto es ambiguo y Lake Formation no puede resolverlo si especifica la columna de nivel superior o el campo anidado.

  • Si una columna de nivel superior o un campo anidado contiene comillas dobles dentro del nombre, debe incluir una segunda comilla doble cuando especifique el acceso a un campo anidado en la lista de inclusión y exclusión de un filtro de celdas de datos.

    Ejemplo de nombre de columna anidado con comillas dobles: a.b.double"quote

    Ejemplo de representación de columna anidada dentro de un filtro de datos: "a"."b"."double""quote"

Limitaciones de filtrado a nivel de celda

Tenga en cuenta las siguientes notas y restricciones para el filtrado a nivel de fila y a nivel de celda:

  • La seguridad a nivel de celda no se admite en columnas, vistas y enlaces de recursos anidados.

  • Todas las expresiones que se admiten en las columnas de nivel superior también se admiten en las columnas anidadas. Sin embargo, se debe hacer referencia a los campos anidados de las columnas de partición al definir NOTexpresiones anidadas a nivel de fila.

  • La seguridad a nivel de celda está disponible en todas las regiones cuando se utiliza la versión 3 del motor Athena o Amazon Redshift Spectrum. Para otros servicios, la seguridad a nivel de celda solo está disponible en las regiones mencionadas en la Regiones admitidas.

  • No se admiten las instrucciones SELECT INTO.

  • Los tipos de datos array y map no se admiten en las expresiones de filtro de filas. Solo se admite el tipo struct.

  • No hay límite en el número de filtros de datos que se pueden definir en una tabla, pero hay un límite de 100 permisos SELECT de filtro de datos para una sola entidad principal en una tabla.

  • El número máximo de filtros de datos que se pueden incluir en una concesión en una tabla es 100.

  • Para aplicar un filtro de datos con una expresión de filtro de filas, debe tener SELECT con la opción de conceder en todas las columnas de la tabla. Esta restricción no se aplica a los administradores de cuentas externas cuando la concesión se hizo a la cuenta externa.

  • Si una entidad principal es miembro de un grupo y tanto la entidad principal como el grupo tienen concedidos permisos sobre un subconjunto de filas, los permisos efectivos de fila de la entidad principal son la unión de los permisos de la entidad principal y los permisos del grupo.

  • Los siguientes nombres de columna están restringidos en una tabla para el filtrado de nivel de fila y de celda:

    • ctid

    • oid

    • xmin

    • cmin

    • xmax

    • cmax

    • tableoid

    • insertxid

    • deletexid

    • importoid

    • redcatuniqueid

  • Si aplica la expresión de filtro de todas las filas a una tabla de forma simultánea con otras expresiones de filtro con predicados, la expresión de todas las filas prevalecerá sobre todas las demás expresiones de filtro.

  • Cuando se conceden permisos en un subconjunto de filas a una AWS cuenta externa y el administrador del lago de datos de la cuenta externa concede esos permisos a un director de esa cuenta, el predicado de filtro efectivo del principal es la intersección del predicado de la cuenta y cualquier predicado que se haya otorgado directamente al principal.

    Por ejemplo, si la cuenta tiene permisos de fila con el predicado dept='hr' y a la entidad principal se le concedió por separado permiso para country='us', la entidad principal solo tiene acceso a las filas con dept='hr' y country='us'.

Para obtener más información sobre el filtrado de celdas, consulte Filtrado de datos y seguridad de celda en Lake Formation.