Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Implemente SHA1 el hash para los datos de PII al migrar de SQL Server a PostgreSQL
Rajkumar Raghuwanshi y Jagadish Kantubugata, Amazon Web Services
Resumen
Este patrón describe cómo implementar el hash del algoritmo de hash seguro 1 (SHA1) para las direcciones de correo electrónico al migrar de SQL Server a Amazon RDS for PostgreSQL o Amazon Aurora compatible con PostgreSQL. Una dirección de correo electrónico es un ejemplo de información de identificación personal (PII). La PII es información que, vista directamente o combinada con otros datos relacionados, puede utilizarse para deducir de manera razonable la identidad de una persona.
Este patrón cubre los desafíos de mantener valores hash coherentes en diferentes intercalaciones de bases de datos y codificaciones de caracteres, y proporciona una solución con funciones y desencadenadores de PostgreSQL. Si bien este patrón se centra en el uso de SHA1 hash, se puede adaptar a otros algoritmos de hash compatibles con el módulo de PostgreSQL. pgcrypto Tenga siempre en cuenta las implicaciones de seguridad de su estrategia de hash y consulte con expertos en seguridad si maneja información confidencial.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS
La base de datos de SQL Server de origen
La base de datos de PostgreSQL de destino (Amazon RDS para PostgreSQL o Aurora compatible con PostgreSQL)
Experiencia en codificación PL/pgSQL
Limitaciones
Este patrón requiere cambios en la intercalación en el nivel de base de datos en función de los casos de uso.
No se ha evaluado el impacto en el rendimiento de conjuntos de datos de gran tamaño.
Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte AWS Services by Region
. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.
Versiones de producto
Microsoft SQL Server 2012 o posterior
Arquitectura
Pila de tecnología de origen
SQL Server
.NET Framework
Pila de tecnología de destino
PostgreSQL
Extensión
pgcrypto
Automatización y escala
Considere la posibilidad de implementar la función de hash como un procedimiento almacenado para facilitar el mantenimiento.
Para conjuntos de datos grandes, evalúe el rendimiento y considere el procesamiento por lotes o las estrategias de indexación.
Tools (Herramientas)
Servicios de AWS
Amazon Aurora compatible con PostgreSQL es un motor de base de datos relacional compatible con ACID, totalmente administrado que le permite configurar, utilizar y escalar implementaciones de PostgreSQL.
AWS Database Migration Service (AWS DMS) le ayuda a migrar los almacenes de datos a una combinación de configuraciones locales y en la nube Nube de AWS o entre ellas.
Amazon Relational Database Service (Amazon RDS) para PostgreSQL lo ayuda a configurar, utilizar y escalar una base de datos relacional de PostgreSQL en la Nube de AWS.
AWS Schema Conversion Tool (AWS SCT) admite migraciones de bases de datos heterogéneas al convertir automáticamente el esquema de la base de datos de origen y la mayoría del código personalizado a un formato compatible con la base de datos de destino.
Otras herramientas
pgAdmin
es una herramienta de administración de código abierto para PostgreSQL. Proporciona una interfaz gráfica que permite crear, mantener y utilizar objetos de bases de datos. SQL Server Management Studio (SSMS)
es un entorno integrado para administrar infraestructuras de SQL Server.
Prácticas recomendadas
Utilice la configuración de intercalación adecuada para gestionar los caracteres especiales en la base de datos de destino.
Haga pruebas exhaustivas con una variedad de direcciones de correo electrónico, incluidas las direcciones con caracteres que no sean ASCII.
Mantenga la coherencia en la gestión de mayúsculas y minúsculas entre las capas de aplicación y base de datos.
Compare el rendimiento de las consultas utilizando los valores con hash.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Revisar el código de SQL Server. | Para revisar el código de SQL Server que genera SHA1 hashes, haga lo siguiente:
| Ingeniero de datos, administrador de base de datos, desarrollador de aplicaciones |
Documentar el algoritmo de hash y las transformaciones de los datos. | Para documentar el algoritmo de hash exacto y las transformaciones de los datos, haga lo siguiente:
| Desarrollador de aplicaciones, ingeniero de datos, administrador de base de datos |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Crear la extensión | Para crear la extensión
| Administrador de base de datos, ingeniero de datos |
Implementar una función de PostgreSQL. | Implemente la siguiente función de PostgreSQL para replicar la lógica de hash de SQL Server. En líneas generales, esta función utiliza los pasos siguientes:
| Ingeniero de datos, administrador de base de datos, desarrollador de aplicaciones |
Pruebe la función. | Para probar la función, utilice datos de ejemplo de SQL Server para comprobar que los valores de hash coincidan. Use el siguiente comando:
| Desarrollador de aplicaciones, administrador de base de datos, ingeniero de datos |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Crear desencadenadores en las tablas pertinentes. | Para crear desencadenadores en las tablas pertinentes para generar automáticamente valores de hash al insertar o actualizar, ejecute el siguiente comando:
| Desarrollador de aplicaciones, ingeniero de datos, administrador de base de datos |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Desarrolle o utilice un script de migración AWS DMS. | Desarrolle un script de migración o AWS DMS utilícelo para rellenar los valores hash de los datos existentes (incluidos los valores hash almacenados
| Ingeniero de datos, desarrollador de aplicaciones, administrador de base de datos |
Utilizar la nueva función de hash de PostgreSQL. | Para utilizar la nueva función de hash de PostgreSQL y garantizar la coherencia, haga lo siguiente:
| Desarrollador de aplicaciones, administrador de bases de datos, ingeniero DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Identificar las consultas de aplicaciones. | Para identificar las consultas de la aplicación que utilizan valores de hash, haga lo siguiente:
| Desarrollador de aplicaciones, administrador de base de datos, ingeniero de datos |
Modificar consultas. | Si es necesario, modifique las consultas para usar la nueva función de hash de PostgreSQL. Haga lo siguiente:
| Desarrollador de aplicaciones, administrador de base de datos, ingeniero de datos |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Hacer pruebas. | Para llevar a cabo pruebas exhaustivas con un subconjunto de datos de producción, haga lo siguiente:
| Desarrollador de aplicaciones, ingeniero de datos, administrador de base de datos |
Validar que los valores de hash coincidan. | Para validar que los valores de hash coincidan entre SQL Server y PostgreSQL, haga lo siguiente:
| Desarrollador de aplicaciones, ingeniero de datos, administrador de base de datos |
Verificar la funcionalidad de la aplicación. | Para verificar la funcionalidad de la aplicación mediante los datos migrados y la nueva implementación de hash, haga lo siguiente:
| Desarrollador de aplicaciones, administrador de base de datos, ingeniero de datos |
Resolución de problemas
| Problema | Solución |
|---|---|
Los valores de hash no coinciden. | Compruebe las codificaciones de caracteres y las intercalaciones entre el origen y el destino. Para obtener más información, consulte Administrar los cambios de intercalación en PostgreSQL en Amazon Aurora y Amazon AWS RDS |
Recursos relacionados
AWS Blogs
Otros recursos
PostgreSQL pgcrypto module
(documentación de PostgreSQL) PostgreSQL trigger functions
(documentación de PostgreSQL) SQL Server HASHBYTES function
(documentación de Microsoft)