Funciones de enmascaramiento de datos predefinidas - Amazon Aurora

Funciones de enmascaramiento de datos predefinidas

La extensión pg_columnmask proporciona funciones de utilidad integradas escritas en lenguaje C (para una ejecución más rápida) que se pueden utilizar como expresión de enmascaramiento para las políticas de pg_columnmask.

mask_text

Una función para enmascarar datos de texto con opciones de visibilidad configurables.

Argumentos

Parámetro Tipo de datos Descripción
input TEXT

La cadena de texto original que se va a enmascarar

mask_char CHAR (1)

Carácter utilizado para enmascarar (predeterminado: “X”)

visible_prefix INT

Número de caracteres al principio del texto ingresado que permanecerán desenmascarados (predeterminado: 0)

visible_suffix INT

Número de caracteres al final del texto ingresado que permanecerán desenmascarados (predeterminado: 0)

use_hash_mask BOOLEANO

Si es TRUE, utiliza un enmascaramiento basado en hash en lugar de mask_char (predeterminado: FALSE)

ejemplo de usar diferentes opciones de enmascaramiento

Enmascaramiento de toda la cadena de entrada con el carácter “X” predeterminado

postgres=> SELECT pgcolumnmask.mask_text('Hello World'); mask_text ------------- XXXXXXXXXXX

Uso del argumento mask_char para enmascarar la entrada de texto con un carácter diferente

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*'); mask_text ------------- ***********

Uso de los parámetros visible_prefix y visible_suffix para controlar el número de caracteres que permanecen desenmascarados al principio y al final del texto

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 5, 1); mask_text ------------- Hello*****d

Cuando use_hash_mask es verdadero, la cadena de entrada está enmascarada con caracteres aleatorios, el argumento mask_char se ignora pero se sigue respetando visible_prefix y visible_suffix

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 2, 2, true); mask_text ------------- Hex36dOHild

mask_timestamp

Parámetro Tipo de datos Descripción
ts_to_mask TIMESTAMP

La marca temporal original que se va a enmascarar

mask_part TEXT

Especifica qué parte de la marca temporal se debe enmascarar (predeterminado: “todas”) Valores válidos: “año”, “mes”, “día”, “hora”, “minuto”, “segundo”, “todo”

mask_value TIMESTAMP

El valor de la marca de tiempo que se va a usar para enmascarar (predeterminado: “1900-01-01 00:00:00”)

ejemplo de cómo usar mask_timestamps

Estos ejemplos muestran el enmascaramiento completo de la marca de tiempo con un valor predeterminado, el enmascaramiento parcial de componentes específicos de la marca de tiempo (solo en el año) y el enmascaramiento con un valor de reemplazo personalizado.

Enmascaramiento completo del valor de entrada con la marca de tiempo predeterminada

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00'); mask_timestamp --------------------- 1900-01-01 00:00:00

Enmascaramiento solo de una parte de la marca de tiempo, por ejemplo, solo el año

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'year'); mask_timestamp --------------------- 1900-06-15 14:30:00

Cambio del valor enmascarado de la marca de tiempo mediante el argumento mask_value

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'all', '2012-12-12 12:12:12'); mask_timestamp --------------------- 2012-12-12 12:12:12

mask_timestamp

Una función para enmascarar las direcciones de correo electrónico y, al mismo tiempo, preservar la estructura del correo electrónico.

Parámetro Tipo de datos Descripción
input TEXT

La dirección de correo electrónico original que se va a enmascarar

mask_char CHAR (1)

Carácter utilizado para enmascarar (predeterminado: “X”)

mask_local BOOLEANO

Si es TRUE, enmascara la parte local del correo electrónico (antes de @) (predeterminado: TRUE)

mask_domain BOOLEANO

Si es TRUE, enmascara la parte de dominio del correo electrónico (después de @) (predeterminado: TRUE)

ejemplo de cómo usar mask_email

Estos ejemplos muestran el enmascaramiento completo del correo electrónico, los caracteres de máscara personalizados y el enmascaramiento selectivo de la parte local o de la parte del dominio de la dirección de correo electrónico.

Enmascaramiento completo

postgres=> SELECT pgcolumnmask.mask_email('user@example.com'); mask_email ------------------ XXXX@XXXXXXX.com

Uso de mask_char para cambiar el carácter utilizado para enmascarar

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*'); mask_email ------------------ ****@*******.com

Uso de mask_local y mask_domain para controlar el enmascaramiento en el entorno local y en el dominio

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', true, false); mask_email ------------------ ****@example.com postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', false, true); mask_email ------------------ user@*******.com