Introdução à classificação

Este tópico fornece informações sobre como funciona a classificação.

Para obter informações sobre como usar classificadores personalizados, consulte Classificação personalizada de dados.

Neste tópico:

Visão geral

A classificação é um processo de múltiplas etapas que associa tags de sistema definidas pelo Snowflake às colunas analisando os campos e metadados quanto a dados pessoais; estes dados podem ser rastreados por um engenheiro de dados usando SQL e Snowsight. Um engenheiro de dados pode classificar colunas em uma tabela para determinar se a coluna contém certos tipos de dados que precisam ser rastreados ou protegidos, como um identificador exclusivo (dados de passaporte ou conta bancária), um quase identificador (a cidade em que o indivíduo vidas) ou um valor sensível (o salário de um indivíduo).

Ao rastrear os dados com uma tag do sistema e protegê-los usando uma política de mascaramento ou de acesso a linhas, o engenheiro de dados pode melhorar a postura de governança associada aos dados. O resultado geral das etapas de classificação e proteção de dados é facilitar o cumprimento dos regulamentos de privacidade de dados.

Você pode classificar uma única tabela ou tabelas em um esquema. O Snowflake fornece tags de sistema predefinidas para permitir que você classifique e defina tags nas colunas, ou você pode usar classificadores personalizados para definir sua própria categoria semântica com base no conhecimento dos seus dados. Você também pode escolher uma abordagem que use tags do sistema Snowflake e classificadores personalizados, dependendo da postura de governança que deseja adotar.

A classificação proporciona os seguintes benefícios aos administradores de privacidade e governança de dados:

Acesso aos dados:

Os resultados da classificação dos dados da coluna podem dar informações aos administradores de identidade e de acesso para avaliar e manter suas hierarquias de funções do Snowflake para garantir que as funções do Snowflake tenham o acesso apropriado a dados sensíveis ou PII.

Compartilhamento de dados:

O processo de classificação pode ajudar a identificar e confirmar o local de armazenamento dos dados PII. Posteriormente, um provedor de compartilhamento de dados pode usar os resultados da classificação para determinar se deve compartilhar dados e como disponibilizar os dados PII a um consumidor que compartilha dados.

Aplicação da política:

O uso de colunas contendo dados PII, tais como colunas de referência em tabelas de base para criar uma exibição ou exibição materializada, pode ajudar a determinar a melhor abordagem para proteger os dados com uma política de mascaramento ou uma política de acesso a linhas.

Tags de sistema e categorias

As tags do sistema são tags que o Snowflake cria, mantém e disponibiliza no banco de dados SNOWFLAKE compartilhado. Existem duas tags de sistema de classificação, ambas delas estão no esquema SNOWFLAKE.CORE:

  • SNOWFLAKE.CORE.SEMANTIC_CATEGORY

  • SNOWFLAKE.CORE.PRIVACY_CATEGORY

O engenheiro de dados atribui estas tags a uma coluna contendo dados pessoais ou sensíveis.

Valores da cadeia de caracteres.:

Snowflake armazena a atribuição de uma tag de sistema em uma coluna como um par chave-valor, onde o valor é uma cadeia de cadeia de caracteres. Snowflake define os valores de cadeia de caracteres permitidos para cada tag do sistema de classificação porque o Snowflake mantém cada uma dessas tags do sistema.

Os nomes das tags SEMANTIC_CATEGORY e PRIVACY_CATEGORY correspondem às categorias de classificação que Snowflake atribui aos dados da coluna durante o processo de amostragem da coluna (ou seja, os nomes das tags e os nomes das categorias usam as mesmas palavras):

Categoria semântica:

A categoria semântica identifica os atributos pessoais.

Uma lista não exaustiva de atributos pessoais suportada pela classificação incluem nome, idade e sexo. Estes três atributos são possíveis valores de cadeia de caracteres ao atribuir a tag SEMANTIC_CATEGORY a uma coluna.

A classificação pode detectar informações de diferentes países, como Austrália, Canadá e Reino Unido. Por exemplo, se a coluna da sua tabela contiver informações sobre números de telefone, o processo de análise poderá diferenciar os diferentes valores de números de telefone de cada um desses países. Para obter uma lista completa dos valores internacionais suportados, consulte Tags de sistema e categorias (neste tópico).

Categoria de privacidade:

Se a análise determinar que os dados da coluna correspondem a uma categoria semântica, Snowflake classifica ainda mais a coluna a uma categoria de privacidade. A categoria de privacidade tem três valores: identificador, quase identificador ou sensível. Estes três valores são os valores de cadeia de caracteres que podem ser especificados ao atribuir a tag do sistema de classificação PRIVACY_CATEGORY a uma coluna.

  • Identificador: estes atributos identificam de forma única um indivíduo. Os exemplos de atributos incluem nome, número de previdência social e número de telefone.

    Os atributos de identificadores são sinônimos de identificadores diretos.

  • Quase identificador: estes atributos podem identificar de forma única um indivíduo quando dois ou mais destes atributos são combinados. Os atributos de exemplo incluem idade e sexo.

    Os quase identificadores são sinônimos de identificadores indiretos.

  • Sensível: estes atributos não são considerados suficientes para identificar uma pessoa, mas são informações que a pessoa prefere não revelar por razões de privacidade.

    Atualmente, o único atributo que Snowflake avalia como sensível é o salário.

  • Insensível: estes atributos não contêm informações pessoais ou confidenciais.

A tabela a seguir resume a relação entre cada categoria de classificação e tag do sistema, os valores de cadeia de caracteres permitidos para cada tag do sistema de classificação. Snowflake oferece suporte a valores de tag SEMANTIC_CATEGORY internacionais que pertencem a determinados países. Os códigos de país são baseados no padrão ISO-3166-1alfa-2. Outras categorias semânticas, como EMAIL e GENDER, não possuem código de país. Para rastrear informações internacionais, o engenheiro de dados usa o valor na coluna Valores de tag SEMANTIC_CATEGORY ao definir uma tag do sistema em uma coluna.

Valores PRIVACY_CATEGORY

Valores SEMANTIC_CATEGORY

Países suportados

IDENTIFIER

  • BANK_ACCOUNT

  • DRIVERS_LICENSE

  • MEDICARE_NUMBER

  • NATIONAL_IDENTIFIER

  • ORGANIZATION_IDENTIFIER

  • PASSPORT

  • PHONE_NUMBER

  • STREET_ADDRESS

  • TAX_IDENTIFIER

  • EMAIL

  • IBAN

  • IMEI

  • IP_ADDRESS

  • NAME

  • PAYMENT_CARD

  • URL

  • VIN

  • CA, NZ, US

  • AU, CA, US

  • AU, NZ

  • CA, GB, SG, US

  • AU, SG

  • AU, CA, NZ, SG, US

  • AU, CA, GB, US

  • CA, US

  • AU, NZ

QUASI_IDENTIFIER

  • ADMINISTRATIVE_AREA_1

  • ADMINISTRATIVE_AREA_2

  • CITY

  • POSTAL_CODE

  • AGE

  • COUNTRY

  • DATE_OF_BIRTH

  • ETHNICITY

  • GENDER

  • LAT_LONG

  • LATITUDE

  • LONGITUDE

  • MARITAL_STATUS

  • OCCUPATION

  • YEAR_OF_BIRTH

  • CA, NZ, US

  • US

  • CA, NZ, US

  • AU, CA, CH, NZ, GB, US

SENSITIVE

  • SALARY

Nota

Vários valores da cadeia de caracteres do tag semântico de todas as três categorias de privacidade podem ser consideradas “dados pessoais sensíveis”, “categorias especiais de dados”, ou termos similares sob certas leis e normas, e podem exigir proteções ou controles adicionais.

Atualmente, a classificação não marca os dados de coluna como sensíveis e de identificação. Em outras palavras, ao definir a tag do sistema em uma determinada coluna, você deve escolher a tag SEMANTIC_CATEGORY ou PRIVACY_CATEGORY.

Tipos de dados e objetos suportados

O Snowflake oferece suporte à classificação de dados armazenados em todos os tipos de tabelas e exibições, incluindo tabelas externas, exibições materializadas e exibições seguras.

Você pode classificar a tabela e exibir colunas para todos os tipos de dados com suporte exceto para os seguintes tipos de dados:

  • GEOGRAPHY

  • BINARY

  • VARIANT

    Observe que você pode classificar uma coluna com o tipo de dados VARIANT quando o tipo de dados de coluna puder ser convertido em um tipo de dados NUMBER ou STRING. O Snowflake não classifica a coluna se a coluna contém JSON, XML ou outros dados semiestruturados.

Se uma tabela tiver colunas com um tipo de dados sem suporte, ou a coluna tiver todos os valores NULL, o processo de classificação ignora as colunas e não as inclui no resultado.

Importante

Se seus dados representarem valores NULL com um valor diferente de NULL, a precisão dos resultados da classificação pode ser impactada.

Custos computacionais

O processo de classificação requer recursos computacionais que são fornecidos pelo warehouse que está em uso e em execução quando a classificação é realizada.

O tempo necessário para classificar os dados em uma tabela/exibição (e, portanto, o número de créditos consumidos pelo warehouse) é uma função da quantidade de dados a serem classificados.

Em especial, se uma tabela ou exibição tiver um grande número de colunas compatíveis com a classificação, o tempo de processamento pode ser impactado. No entanto, como regra geral, a velocidade de processamento é proporcional ao tamanho do warehouse. Em outras palavras, cada aumento de tamanho de um warehouse (e X-small para Small) normalmente reduz o tempo de processamento pela metade.

Use as seguintes diretrizes gerais para selecionar um tamanho de warehouse:

  • Sem preocupação com o tempo de processamento: warehouse X-Small.

  • Até 100 colunas em uma tabela: warehouse Small.

  • 101 a 300 colunas em uma tabela: warehouse Medium.

  • 301 colunas ou mais em uma tabela: warehouse Large.

Para obter mais detalhes, consulte Considerações sobre warehouses.

Recomendações

Para aproveitar o recurso de classificação e otimizar seus recursos de rastreamento de dados PII, faça o seguinte:

Validação:

Consulte primeiro as exibições do Account Usage:

  • ACCESS_HISTORY: determinar os objetos de exibição e tabela que são acessados com mais frequência.

  • OBJECT_DEPENDENCIES: determinar referências de metadados entre dois ou mais objetos.

Use os resultados da consulta para priorizar a atribuição das tags do sistema de classificação em nível de esquema ou de banco de dados.

Nomes de coluna:

Use nomes sensíveis de colunas em seus objetos de tabela e treine os criadores de tabelas para aderir às diretrizes de criação de tabelas internas.

Tipos de dados:

Use tipos de dados sensíveis para as colunas. Por exemplo, uma coluna AGE deve ter o tipo de dados NUMBER.

VARIANT:

Se uma coluna tiver um tipo de dados VARIANT, use o comando FLATTEN na coluna antes de classificar a tabela.

Warehouse:

Utilize o tamanho adequado do warehouse ao classificar os dados. Para obter mais detalhes, consulte Custos computacionais (neste tópico).

Gerenciamento de classificação

Referência de privilégios

O modelo de privilégio para classificação de dados permite que o administrador de privacidade de dados determine quais personas podem classificar tabelas e marcar colunas. Por exemplo, uma única função pode ter todos os privilégios necessários ou o administrador de privacidade de dados pode delegar concessões a diferentes funções para satisfazer os requisitos de separação de funções (SoD). Um exemplo de combinação viável de concessões é mostrado na seção Início da classificação de dados de Uso da classificação de dados.

Como administrador, você tem diferentes opções dependendo de como deseja gerenciar quais funções ou personas estão envolvidas. As opções proporcionam flexibilidade à postura de governança que você deseja adotar. Por exemplo:

  • O proprietário da tabela (a função com privilégio OWNERSHIP na tabela) pode classificar a tabela e definir tags do sistema nas colunas.

  • Uma função personalizada que tenha o privilégio SELECT na tabela e o privilégio APPLY TAG na conta pode classificar a tabela e definir tags do sistema nas colunas.

  • Se quiser que diferentes funções ou personas estejam envolvidas na classificação e marcação de colunas, você pode conceder o privilégio SELECT na tabela a uma função e o privilégio APPLY TAG na conta a uma função diferente.

A tabela a seguir resume as diferentes opções de concessão para classificar uma tabela, definir as tags do sistema de classificação de dados em colunas e realizar ambas as tarefas:

Privilégio ou função

Classificar tabela(s)

Definir tags do sistema em colunas

SELECT na tabela ou exibição.

OWNERSHIP na tabela.

APPLY TAG na conta.

Função ACCOUNTADMIN.

OWNERSHIP no banco de dados ou esquema.

Importante

  • A classificação de tabelas requer um warehouse em execução. A função usada para classificar uma tabela deve ter, no mínimo, o privilégio USAGE em um warehouse.

  • Você pode conceder a função de banco de dados SNOWFLAKE.GOVERNANCE_VIEWER a uma função de conta para permitir que os usuários com essa função de conta consultem a exibição DATA_CLASSIFICATION_LATEST para ver os resultados mais recentes de uma tabela classificada.

Rastreamento de tags do sistema

O Snowflake fornece exibições e funções incorporadas para rastrear o uso da tag do sistema de classificação:

  • Para encontrar as colunas com uma tag de sistema em sua conta, consulte a exibição TAG_REFERENCES do Account Usage:

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
        WHERE TAG_NAME = 'PRIVACY_CATEGORY'
        ORDER BY OBJECT_DATABASE, OBJECT_SCHEMA, OBJECT_NAME, COLUMN_NAME;
    
    Copy
  • Para encontrar as colunas com uma tag de sistema para uma tabela ou exibição em um banco de dados específico, chame a função de tabela TAG_REFERENCES do Information Schema:

    SELECT * FROM
      TABLE(
        MY_DB.INFORMATION_SCHEMA.TAG_REFERENCES(
          'my_db.my_schema.hr_data.fname',
          'COLUMN'
        ));
    
    Copy
  • Para encontrar cada conjunto de tags em cada coluna de uma tabela ou exibição dentro de um banco de dados específico, chame a função de tabela TAG_REFERENCES_ALL_COLUMNS do Information Schema:

    SELECT * from
      TABLE(
        MY_DB.INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS(
          'my_db.my_schema.hr_data',
          'table'
        ));
    
    Copy
  • Para encontrar um valor de tag específico para uma coluna, chame a função do sistema SYSTEM$GET_TAG:

    SELECT SYSTEM$GET_TAG(
      'SNOWFLAKE.CORE.PRIVACY_CATEGORY',
      'hr_data.fname',
      'COLUMN'
      );
    
    Copy