Procedimentos para gerenciar políticas de mascaramento de dados - Amazon Aurora

Procedimentos para gerenciar políticas de mascaramento de dados

Você pode gerenciar políticas de mascaramento usando os procedimentos fornecidos pela extensão pg_columnmask. Para criar, modificar ou eliminar políticas de mascaramento, é necessário ter um dos seguintes privilégios:

  • Proprietário da tabela na qual você está criando a política pg_columnmask.

  • Membro do rds_superuser.

  • Membro do perfil de gerente de políticas pg_columnmask definido pelo parâmetro pgcolumnmask.policy_admin_rolname.

O seguinte comando cria uma tabela que é usada nas seções seguintes:

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

CREATE_MASKING_POLICY

O seguinte procedimento cria uma política de mascaramento para uma tabela de usuários:

Sintaxe

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

Argumentos

Parâmetro DataType Descrição
policy_name NAME

O nome da política de mascaramento. Deve ser exclusivo por tabela.

table_name REGCLASS

O nome ou oid qualificado/não qualificado da tabela à qual aplicar a política de mascaramento.

masking_expressions JSONB

Objeto JSON que contém o nome da coluna e pares de funções de mascaramento. Cada chave é um nome de coluna e seu valor é a expressão de mascaramento a ser aplicada nessa coluna.

roles NAME[]

Os perfis aos quais essa política de mascaramento se aplica. O padrão é PUBLIC.

weight INT

Peso da política de mascaramento. Quando várias políticas são aplicáveis à consulta de determinado usuário, a política com o maior peso (maior número inteiro) será aplicada a cada coluna mascarada.

O padrão é 0. Não há duas políticas de mascaramento na tabela com o mesmo peso.

Tipo de retorno

Nenhum

exemplo da criação de uma política de mascaramento que mascare a coluna de e-mail do perfil 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

Esse procedimento modifica uma política de mascaramento existente. ALTER_MASKING_POLICY pode modificar as expressões de mascaramento da política, o conjunto de perfis aos quais a política se aplica e o peso da política de mascaramento. Quando um desses parâmetros é omitido, a parte correspondente da política permanece inalterada.

Sintaxe

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

Argumentos

Parâmetro DataType Descrição
policy_name NAME

Nome da política de mascaramento existente.

table_name REGCLASS

O oid do nome qualificado/não qualificado da tabela que contém a política de mascaramento.

masking_expressions JSONB

Novo objeto JSON que contém pares de função de mascaramento e nome da coluna ou, caso contrário, NULL.

roles NAME[]

A lista de novos perfis aos quais essa política de mascaramento se aplica ou, caso contrário, NULL.

weight INT

Novo peso para a política de mascaramento ou, caso contrário, NULL.

Tipo de retorno

Nenhum

exemplo de adicionar o perfil de analista a uma política de mascaramento existente sem alterar outros atributos da 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

Esse procedimento remove uma política de mascaramento existente.

Sintaxe

drop_masking_policy( policy_name, table_name)

Argumentos

Parâmetro DataType Descrição
policy_name NAME

Nome da política de mascaramento existente.

table_name REGCLASS

O oid do nome qualificado/não qualificado da tabela que contém a política de mascaramento.

Tipo de retorno

Nenhum

exemplo de descartar a política de mascaramento customer_mask
-- Drop a masking policy CALL pgcolumnmask.drop_masking_policy( 'customer_mask', 'public.customers', );