Procedimientos para administrar políticas de enmascaramiento de datos - Amazon Aurora

Procedimientos para administrar políticas de enmascaramiento de datos

Puede administrar las políticas de enmascaramiento mediante los procedimientos proporcionados por la extensión pg_columnmask. Para crear, modificar o eliminar políticas de enmascaramiento, debe contar con uno de los siguientes privilegios:

  • Propietario de la tabla en la que va a crear la política de pg_columnmask.

  • Miembro de rds_superuser.

  • Miembro del rol de mánager de la política de pg_columnmask establecido por el parámetro pgcolumnmask.policy_admin_rolname.

El siguiente comando crea una tabla que se utiliza en las siguientes secciones:

CREATE TABLE public.customers ( id SERIAL PRIMARY KEY, name TEXT, phone TEXT, address TEXT, email TEXT );

CREATE_MASKING_POLICY

El siguiente procedimiento crea una nueva política de enmascaramiento para una tabla de usuarios:

Sintaxis

create_masking_policy( policy_name, table_name, masking_expressions, roles, weight)

Argumentos

Parámetro Tipo de datos Descripción
policy_name NAME

Nombre de la política de enmascaramiento. Debe ser único por tabla.

table_name REGCLASS

El nombre cualificado o no cualificado o nulo de la tabla para aplicar la política de enmascaramiento.

masking_expressions JSONB

Objeto JSON que contiene los pares de nombre de columna y función de enmascaramiento. Cada clave es el nombre de una columna y su valor es la expresión de enmascaramiento que se va a aplicar a esa columna.

roles NAME[]

Los roles a los que se aplica esta política de enmascaramiento. Predeterminado es PUBLIC.

weight INT

Peso de la política de enmascaramiento. Cuando se apliquen varias políticas a la consulta de un usuario determinado, la política con el peso más alto (número entero más alto) se aplicará a cada columna enmascarada.

El valor predeterminado es 0. No hay dos políticas de enmascaramiento de la tabla que puedan tener el mismo peso.

Tipo de devolución

Ninguno

ejemplo de crear una política de enmascaramiento que oculte la columna de correo electrónico del rol test_user:
CALL pgcolumnmask.create_masking_policy( 'customer_mask', 'public.customers', JSON_OBJECT('{ "email", "pgcolumnmask.mask_email(email)" }')::JSONB, ARRAY['test_user'], 100 );

ALTER_MASKING_POLICY

Este procedimiento modifica una política de enmascaramiento existente. ALTER_MASKING_POLICY puede modificar las expresiones de enmascaramiento de la política, el conjunto de roles a los que se aplica la política y el peso de la política de enmascaramiento. Cuando se omite uno de esos parámetros, la parte correspondiente de la política permanece inalterada.

Sintaxis

alter_masking_policy( policy_name, table_name, masking_expressions, roles, weight)

Argumentos

Parámetro Tipo de datos Descripción
policy_name NAME

El nombre existente de la política de enmascaramiento.

table_name REGCLASS

El nombre cualificado o no cualificado o nulo de la tabla que contiene la política de enmascaramiento.

masking_expressions JSONB

Nuevo objeto JSON que contiene los pares de nombre de columna y función de enmascaramiento, de lo contrario, NULL.

roles NAME[]

La lista de roles nuevos a los que se aplica esta política de enmascaramiento o NULL en caso contrario.

weight INT

Nuevo peso para la política de enmascaramiento o NULL en caso contrario.

Tipo de devolución

Ninguno

ejemplo de agregar el rol de analista a una política de enmascaramiento existente sin cambiar otros atributos de la política.
CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'public.customers', NULL, ARRAY['test_user', 'analyst'], NULL ); -- Alter the weight of the policy without altering other details CALL pgcolumnmask.alter_masking_policy( 'customer_mask', 'customers', NULL, NULL, 4 );

DROP_MASKING_POLICY

Este procedimiento elimina una política de enmascaramiento existente.

Sintaxis

drop_masking_policy( policy_name, table_name)

Argumentos

Parámetro Tipo de datos Descripción
policy_name NAME

El nombre existente de la política de enmascaramiento.

table_name REGCLASS

El nombre cualificado o no cualificado o nulo de la tabla que contiene la política de enmascaramiento.

Tipo de devolución

Ninguno

ejemplo de eliminar la política de enmascaramiento customer_mask
-- Drop a masking policy CALL pgcolumnmask.drop_masking_policy( 'customer_mask', 'public.customers', );