As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implemente SHA1 o hashing para dados de PII ao migrar do SQL Server para o PostgreSQL
Rajkumar Raghuwanshi e Jagadish Kantubugata, Amazon Web Services
Resumo
Esse padrão descreve como implementar o hashing do Secure Hash Algorithm 1 (SHA1) para endereços de e-mail ao migrar do SQL Server para o Amazon RDS for PostgreSQL ou compatível com o Amazon Aurora PostgreSQL. Um endereço de e-mail consiste em um exemplo de informações de identificação pessoal (PII). A categoria de PII consiste em informações que, se analisadas diretamente ou em conjunto com informações correlatas, podem servir para identificar, de maneira razoável, um indivíduo.
Este padrão aborda os desafios de manter os valores de hash consistentes em diferentes agrupamentos e codificações de caracteres de banco de dados, além de fornecer uma solução usando funções e acionadores do PostgreSQL. Embora esse padrão se concentre no SHA1 hashing, ele pode ser adaptado para outros algoritmos de hash suportados pelo módulo do PostgreSQL. pgcrypto Sempre considere as implicações de segurança da sua estratégia de hash e consulte especialistas em segurança ao lidar com dados sensíveis.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS
Banco de dados de origem do SQL Server
Banco de dados de destino do PostgreSQL (Amazon RDS para PostgreSQL ou Aurora compatível com PostgreSQL)
Experiência em codificação PL/pgSQL
Limitações
Para este padrão, são necessárias alterações de agrupamento no nível do banco de dados conforme os casos de uso.
O impacto na performance em grandes conjuntos de dados ainda não foi avaliado.
Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Versões do produto
Microsoft SQL Server 2012 ou posterior
Arquitetura
Pilha de tecnologia de origem
SQL Server
NET Framework
Pilha de tecnologias de destino
PostgreSQL
Extensão para
pgcrypto
Automação e escala
Considere implementar a função de hash como um procedimento armazenado para facilitar a manutenção.
Para grandes conjuntos de dados, avalie a performance e considere a realização de processamento em lotes ou o uso de estratégias de indexação.
Ferramentas
Serviços da AWS
O Amazon Aurora compatível com PostgreSQL é um mecanismo de banco de dados relacional totalmente gerenciado, compatível com ACID, que auxilia na configuração, na operação e na escalabilidade de implantações do PostgreSQL.
AWS Database Migration Service (AWS DMS) ajuda você a migrar armazenamentos de dados para Nuvem AWS ou entre combinações de configurações na nuvem e no local.
O Amazon Relational Database Service (Amazon RDS) para PostgreSQL ajuda você a configurar, operar e escalar um banco de dados relacional do PostgreSQL na Nuvem AWS.
AWS Schema Conversion Tool (AWS SCT) oferece suporte a migrações heterogêneas de banco de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino.
Outras ferramentas
O pgAdmin
é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados. O SQL Server Management Studio (SSMS)
consiste em um ambiente integrado para o gerenciamento de qualquer infraestrutura do SQL.
Práticas recomendadas
Use configurações de agrupamento apropriadas para lidar com caracteres especiais no banco de dados de destino.
Realize testes extensivos com uma variedade de endereços de e-mail, incluindo endereços que contêm caracteres fora do padrão ASCII.
Mantenha consistência no tratamento de maiúsculas e minúsculas entre as camadas da aplicação e do banco de dados.
Conduza avaliações comparativas da performance das consultas usando valores com hash.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Analise o código do SQL Server. | Para revisar o código do SQL Server que gera SHA1 hashes, faça o seguinte:
| Engenheiro de dados, DBA e desenvolvedor de aplicações |
Documente informações sobre o algoritmo de hash e as transformações de dados. | Para documentar o algoritmo de hash específico e as transformações de dados, execute as etapas abaixo:
| Desenvolvedor de aplicativos, engenheiro de dados, DBA |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie a extensão | Para criar a extensão
| DBA, engenheiro de dados |
Implemente uma função no PostgreSQL. | Implemente a função apresentada a seguir no PostgreSQL para replicar a lógica de hash do SQL Server. De forma geral, esta função conta com as seguintes etapas:
| Engenheiro de dados, DBA e desenvolvedor de aplicações |
Testar a função. | Para testar a função, use os dados de amostra do SQL Server para verificar se os valores de hash coincidem. Execute este comando: .
| Desenvolvedor de aplicações, DBA e engenheiro de dados |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie acionadores nas tabelas relevantes. | Para criar acionadores nas tabelas relevantes que gerem automaticamente valores de hash em operações de inserção ou atualização, execute o seguinte comando:
| Desenvolvedor de aplicativos, engenheiro de dados, DBA |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Desenvolva ou use um script de migração AWS DMS. | Desenvolva um script de migração ou use AWS DMS para preencher valores de hash para dados existentes (incluindo valores de hash armazenados como
| Desenvolvedor de aplicações, engenheiro de dados e DBA |
Use a nova função de hash do PostgreSQL. | Para usar a nova função de hash do PostgreSQL e garantir consistência, execute as etapas abaixo:
| Desenvolvedor de aplicativos, DBA, engenheiro DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Identifique as consultas da aplicação. | Para identificar as consultas da aplicação que usam os valores de hash, execute as etapas abaixo:
| Desenvolvedor de aplicações, DBA e engenheiro de dados |
Modifique as consultas. | Se necessário, modifique as consultas para usar a nova função de hash do PostgreSQL. Faça o seguinte:
| Desenvolvedor de aplicações, DBA e engenheiro de dados |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Realize testes. | Para conduzir testes completos com um subconjunto dos dados de produção, execute as etapas abaixo:
| Desenvolvedor de aplicativos, engenheiro de dados, DBA |
Valide a correspondência dos valores de hash. | Para validar que os valores de hash correspondem entre SQL Server e PostgreSQL, execute as etapas abaixo:
| Desenvolvedor de aplicativos, engenheiro de dados, DBA |
Verifique a funcionalidade da aplicação. | Para verificar a funcionalidade da aplicação usando os dados migrados e a nova implementação de hash, execute as etapas abaixo:
| Desenvolvedor de aplicações, DBA e engenheiro de dados |
Solução de problemas
| Problema | Solução |
|---|---|
Os valores de hash não correspondem. | Verifique as codificações de caracteres e os agrupamentos entre a origem e o destino. Para obter mais informações, consulte Gerenciar alterações de agrupamento no PostgreSQL no Amazon Aurora e no Amazon RDS (Blog |
Recursos relacionados
AWS Blogs
Outros recursos
PostgreSQL pgcrypto module
(documentação do PostgreSQL) PostgreSQL trigger functions
(documentação do PostgreSQL) SQL Server HASHBYTES function
(documentação da Microsoft)