Tutorial: Classificar e marcar automaticamente dados confidenciais¶
Introdução¶
Identificar e rastrear seus dados confidenciais é algo simples e direto. O Snowflake fornece um algoritmo integrado para identificar seus dados confidenciais e marcá-los automaticamente com tags do sistema para ajudar a rastrear os tipos de dados e o grau de confidencialidade deles.
Com uma configuração mínima, também é possível configurar um esquema para que o Snowflake execute automaticamente esse processo de classificação para dados novos e alterados, aplicando tags definidas pelo usuário juntamente com as tags do sistema.
Neste tutorial, você vai:
Configurar os recursos necessários para concluir o tutorial, incluindo uma tag definida pelo usuário que é aplicada aos dados confidenciais.
Criar um perfil de classificação, que o Snowflake usa para classificar automaticamente os dados à medida que são adicionados a um esquema.
Adicionar um mapa de tags ao perfil de classificação para que a tag definida pelo usuário seja aplicada aos dados que o Snowflake identifica como confidenciais.
Ver os resultados da classificação.
Dica
Embora não seja mostrado neste tutorial, também é possível personalizar a classificação para identificar dados confidenciais usando expressões regulares definidas pelo usuário e marcar esses dados com categorias semânticas definidas pelo usuário. Para obter mais informações, consulte Implementação da classificação personalizada automática.
Configurar banco de dados de governança¶
Neste tutorial, você criará os objetos do Snowflake (uma tag definida pelo usuário e um perfil de classificação) necessários para controlar seus dados. Com base nas práticas recomendadas, esses objetos são criados em um banco de dados dedicado à governança.
Abra uma planilha SQL e, em seguida, execute as seguintes instruções para criar um banco de dados e um esquema para os objetos de governança:
USE ROLE ACCOUNTADMIN;
CREATE DATABASE IF NOT EXISTS governance_db;
CREATE SCHEMA IF NOT EXISTS governance_db.sch;
Nota
Para simplificar, você usará a função de sistema ACCOUNTADMIN para evitar a configuração dos privilégios necessários para definir a classificação de dados confidenciais. Na prática, você não deve usar essa função potente, mas sim criar funções personalizadas com os privilégios necessários.
Configurar seus dados¶
Antes de configurar os dados para este tutorial, crie um warehouse para preencher uma tabela:
CREATE WAREHOUSE IF NOT EXISTS tutorial_wh;
Criação de uma tabela¶
Crie o banco de dados e o esquema que conterão a tabela a ser classificada.
CREATE DATABASE IF NOT EXISTS data_db; CREATE SCHEMA IF NOT EXISTS data_db.sch;
Crie a estrutura da tabela que conterá os dados confidenciais.
CREATE TABLE data_db.sch.customers ( account_number NUMBER(38,0), first_name VARCHAR(16777216), last_name VARCHAR(16777216), email VARCHAR(16777216) );
Inserir valores na tabela¶
Adicione dados à tabela que você criou:
USE WAREHOUSE tutorial_wh;
INSERT INTO data_db.sch.customers (account_number, first_name, last_name, email)
VALUES
(1589420, 'john', 'doe', 'john.doe@example.com'),
(2834123, 'jane', 'doe', 'jane.doe@example.com'),
(4829381, 'jim', 'doe', 'jim.doe@example.com'),
(9821802, 'susan', 'smith', 'susan.smith@example.com'),
(8028387, 'bart', 'simpson', 'bart.barber@example.com');
Criação de um perfil de classificação¶
Ótimo, agora você tem uma tabela cheia de dados que precisa classificar para ajudar a proteger seus dados confidenciais. Como você deseja que o Snowflake classifique automaticamente os dados à medida que eles são adicionados a um esquema, será necessário criar um perfil de classificação.
Um perfil de classificação controla a frequência com que os dados em um esquema são classificados e o que acontece durante esse processo de classificação. Cada perfil de classificação é uma instância da classe CLASSIFICATION_PROFILE.
Para criar o perfil de classificação para seu esquema, execute o seguinte:
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE
governance_db.sch.my_classification_profile(
{
'minimum_object_age_for_classification_days': 0,
'maximum_classification_validity_days': 30,
'auto_tag': true
});
Quando esse perfil de classificação é definido em seu esquema, acontece o seguinte:
A classificação começa em menos de um dia (
'minimum_object_age_for_classification_days': 0
).Após a classificação inicial, o Snowflake faz uma nova verificação a cada 30 dias para ver se as tabelas precisam ser reclassificadas (
'maximum_classification_validity_days': 30
).As tags de classificação serão definidas automaticamente nas colunas identificadas como contendo dados confidenciais (
'auto_tag': true
).
Adicionar mapa de tags ao perfil de classificação¶
Como você definiu 'auto_tag': true
no seu perfil de classificação, o Snowflake aplicará automaticamente as tags de classificação do sistema quando classificar os dados como confidenciais. A tag SEMANTIC_CATEGORY classifica o tipo dos dados, por exemplo, identificando os dados como um nome ou endereço. A tag PRIVACY_CATEGORY classifica a sensibilidade dos dados, por exemplo, identificando os dados como um identificador ou quase identificador.
Agora, suponha que você queira ir além e aplicar automaticamente sua própria tag definida pelo usuário com base em como os dados são classificados. Este tutorial mostra como fazer isso!
Para criar a tag personalizada que você deseja aplicar aos dados confidenciais, execute a seguinte instrução:
CREATE TAG governance_db.sch.tutorial_pii;
Em seguida, você modificará o perfil de classificação para que essa tag definida pelo usuário seja aplicada quando o Snowflake identificar que uma coluna contém nomes. A adição de um mapa de tags ao perfil de classificação configura como e quando a tag definida pelo usuário é aplicada.
Para adicionar o mapa de tags ao seu perfil de classificação, execute o método classification_profile_name!SET_TAG_MAP
:
CALL governance_db.sch.my_classification_profile!SET_TAG_MAP(
{'column_tag_map':[
{
'tag_name':'governance_db.sch.tutorial_pii',
'tag_value':'sensitive_name',
'semantic_categories':['NAME']
}]});
Agora, se a classificação automática determinar que a categoria semântica definida pelo sistema é NAME
, então a tag definida pelo usuário tutorial_pii
é definida na coluna. Com base no perfil de classificação, o valor da tag definida pelo usuário tutorial_pii
é definido como sensitive_name
.
Nota
Você também pode definir um mapa de tags ao criar o perfil de classificação.
Definir perfil de classificação em um esquema¶
Você tem o perfil de classificação configurado, portanto, está tudo pronto para defini-lo no esquema. Isso inicia o processo de classificação automática.
ALTER SCHEMA data_db.sch
SET CLASSIFICATION_PROFILE = 'governance_db.sch.my_classification_profile';
É isso, o Snowflake faz o resto! O Snowflake começa a classificar os dados existentes e continuará a classificar os novos dados à medida que forem adicionados ao esquema.
Exibir resultados de classificação¶
Antes de concluir esta parte do tutorial, você terá de esperar uma hora para que o Snowflake conclua o processo de classificação.
Após uma hora, execute a seguinte instrução para recuperar os resultados da classificação:
CALL SYSTEM$GET_CLASSIFICATION_RESULT('data_db.sch.customers');
Nos resultados, observe o seguinte:
A coluna ACCOUNT_NUMBER não foi classificada como confidencial, portanto, não recebeu tags de classificação.
A coluna EMAIL foi marcada como tendo uma categoria semântica de EMAIL e uma categoria de privacidade de IDENTIFIER.
Com base no mapa de tags do perfil de classificação, a tag definida pelo usuário
governance_db.sch.tutorial_pii
foi atribuída a colunas que tinham uma categoria semântica de NAME (veja as linhas destacadas na saída).
{
"classification_profile_config": {
"classification_profile_name": "GOVERNANCE_DB.SCH.MY_CLASSIFICATION_PROFILE"
},
"classification_result": {
"ACCOUNT_NUMBER": {
"alternates": []
},
"EMAIL": {
"alternates": [],
"recommendation": {
"confidence": "HIGH",
"coverage": 1,
"details": [],
"privacy_category": "IDENTIFIER",
"semantic_category": "EMAIL",
"tags": [
{
"tag_applied": true,
"tag_name": "snowflake.core.semantic_category",
"tag_value": "EMAIL"
},
{
"tag_applied": true,
"tag_name": "snowflake.core.privacy_category",
"tag_value": "IDENTIFIER"
}
]
},
"valid_value_ratio": 1
},
"FIRST_NAME": {
"alternates": [],
"recommendation": {
"confidence": "HIGH",
"coverage": 1,
"details": [],
"privacy_category": "IDENTIFIER",
"semantic_category": "NAME",
"tags": [
{
"tag_applied": true,
"tag_name": "snowflake.core.semantic_category",
"tag_value": "NAME"
},
{
"tag_applied": true,
"tag_name": "snowflake.core.privacy_category",
"tag_value": "IDENTIFIER"
},
{
"tag_applied": true,
"tag_name": "governance_db.sch.tutorial_pii",
"tag_value": "sensitive_name"
}
]
},
"valid_value_ratio": 1
},
"LAST_NAME": {
"alternates": [],
"recommendation": {
"confidence": "HIGH",
"coverage": 1,
"details": [],
"privacy_category": "IDENTIFIER",
"semantic_category": "NAME",
"tags": [
{
"tag_applied": true,
"tag_name": "snowflake.core.semantic_category",
"tag_value": "NAME"
},
{
"tag_applied": true,
"tag_name": "snowflake.core.privacy_category",
"tag_value": "IDENTIFIER"
},
{
"tag_applied": true,
"tag_name": "governance_db.sch.tutorial_pii",
"tag_value": "sensitive_name"
}
]
},
"valid_value_ratio": 1
}
}
}
Limpeza, resumo e recursos adicionais¶
Parabéns! Você concluiu este tutorial com sucesso.
Em resumo, você aprendeu a fazer o seguinte:
Crie um perfil de classificação para controlar como a classificação automática é implementada.
Adicione um mapa de tags ao perfil de classificação para que as tags definidas pelo usuário sejam automaticamente definidas nas colunas que contêm dados confidenciais.
Defina o perfil de classificação em um esquema para iniciar a classificação automática.
Visualize os resultados da classificação automática.
Descarte os objetos do tutorial¶
Se você planeja repetir o tutorial, pode manter os objetos que criou.
Caso contrário, descarte os objetos do tutorial da seguinte forma:
DROP TAG governance_db.sch.tutorial_pii;
DROP DATABASE governance_db;
DROP DATABASE data_db;
DROP WAREHOUSE tutorial_wh;
Qual é o próximo passo?¶
Para obter detalhes completos sobre a implementação da classificação automática de dados confidenciais, incluindo os custos associados e a implementação da classificação personalizada, consulte Classificação automática de dados confidenciais.