Uso del enmascaramiento de datos para ocultar información confidencial
Para ocultar la información confidencial almacenada en una o más columnas de las tablas que se van a migrar, puede aprovechar las acciones de las reglas de transformación del enmascaramiento de datos. A partir de la versión 3.5.4, AWS DMS permite utilizar acciones de reglas de transformación para enmascarar datos en la asignación de tablas, lo que permite modificar el contenido de una o más columnas durante el proceso de migración. AWS DMS carga los datos modificados en las tablas de destino.
AWS Database Migration Service proporciona tres opciones para las acciones de las reglas de transformación del enmascaramiento de datos:
Enmascaramiento de datos: máscara de dígitos
Enmascaramiento de datos: distribución aleatoria de dígitos
Enmascaramiento de datos: máscara de hash
Estas acciones de las reglas de transformación del enmascaramiento de datos se pueden configurar en la asignación de tablas de la tarea de replicación, de forma similar a otras reglas de transformación. El destino de la regla debe establecerse en la columna.
Enmascaramiento de números en los datos de las columnas con un carácter de enmascaramiento
La acción de la regla de transformación Enmascaramiento de datos: máscara de dígitos le permite enmascarar los datos numéricos de una o más columnas sustituyendo los dígitos por un único carácter imprimible en formato ASCII que especifique (excluidos los caracteres vacíos o los espacios en blanco).
A continuación, se muestra un ejemplo en el que se enmascaran todos los dígitos de la columna cust_passport_no de la tabla customer_master con el carácter de enmascaramiento '#' y, luego, se cargan los datos enmascarados en la tabla de destino:
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "cust_schema", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "data-masking-digits-mask", "value": "#" } ] }
Por ejemplo, si la columna cust_passport_no de la tabla de origen contiene el registro “C6BGJ566669K”, la tarea de AWS DMS escribirá estos datos en la tabla de destino como "C#BGJ######K".
Sustitución de los números de la columna por números aleatorios
La regla de transformación Enmascaramiento de datos: distribución aleatoria de dígitos le permite reemplazar cada dígito numérico de una o más columnas por un número aleatorio. En el siguiente ejemplo, AWS DMS reemplaza cada dígito de la columna cust_passport_no de la tabla de origen customer_master por un número aleatorio y escribe los datos modificados en la tabla de destino:
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "cust_schema", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "data-masking-digits-randomize" } ] }
Por ejemplo, la tarea de AWS DMS transformará el valor "C6BGJ566669K" de la columna cust_passport_no de la tabla de origen en "C1BGJ842170K" y lo escribirá en la base de datos de destino.
Sustitución de los datos de la columna por un valor hash
La regla de transformación Enmascaramiento de datos: máscara de hash permite reemplazar los datos de la columna por un hash generado con el algoritmo SHA256. La longitud del hash siempre será de 64 caracteres, por lo que la longitud de la columna de la tabla de destino debe ser de 64 caracteres como mínimo. Como alternativa, puede añadir una acción de regla de transformación change-data-type a la columna para aumentar el ancho de la columna en la tabla de destino.
El siguiente ejemplo genera un valor hash de 64 caracteres para los datos de la columna cust_passport_no de la tabla de origen customer_master y carga los datos transformados en la tabla de destino tras aumentar la longitud de la columna:
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "cust_schema", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "change-data-type", "data-type": { "type": "string", "length": "100", "scale": "" } }, { "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "data-masking-hash-mask" } ] }
Por ejemplo, si la columna cust_passport_no de la tabla de origen contiene el valor “C6BGJ566669K”, la tarea de AWS DMS escribirá un hash “7CB06784764C9030CCC41E25C15339FEB293FFE9B329A72B5FED564E99900C75” en la tabla de destino.
Limitaciones
Cada opción de regla de transformación del enmascaramiento de datos solo se admite para tipos de datos de AWS DMS específicos:
El Enmascaramiento de datos: máscara de dígitos es compatible con las columnas de los tipos de datos
WSTRINGySTRING.El Enmascaramiento de datos: distribución aleatoria de dígitos es compatible con las columnas de los tipos de datos:
WSTRING, STRING; NUMERIC, INT1, INT2, INT4, and INT8con homólogos sin firmar.El Enmascaramiento de datos: máscara de hash es compatible con las columnas de los tipos de datos
WSTRINGySTRING.
Para obtener más información sobre la asignación de los tipos de datos de AWS DMS a los tipos de datos de su motor de origen, consulte la asignación de tipos de datos de su motor de origen con tipos de datos de AWS DMS. Consulte los tipos de datos de origen para Tipos de datos de origen para Oracle, Tipos de datos de origen para SQL Server, Tipos de datos de origen para PostgreSQL y Tipos de datos de origen para MySQL.
Si se utiliza una acción de regla de enmascaramiento de datos para una columna con un tipo de datos incompatible, se producirá un error en la tarea de DMS. Consulte DataMaskingErrorPolicy en la configuración de tareas de DMS para especificar el comportamiento para la gestión de errores. Para obtener más información acerca de
DataMaskingErrorPolicy, consulte Configuración de las tareas de administración de errores.Puede añadir una acción de regla de transformación change-data-type para cambiar el tipo de datos de la columna a un tipo compatible si el tipo de columna de origen no es compatible con la opción de enmascaramiento que tiene previsto utilizar. El
rule-idde la transformaciónchange-data-typedebe ser un número menor que el rule-id de la transformación de enmascaramiento para que el cambio de tipo de datos se produzca antes del enmascaramiento.Utilice la acción Enmascaramiento de datos: máscara de hash para enmascarar las columnas Clave principal, Clave única o Clave externa, ya que el valor hash generado será único y coherente. Las otras dos opciones de enmascaramiento no pueden garantizar la exclusividad.
Mientras que las acciones Enmascaramiento de datos: máscara de dígitos y Enmascaramiento de datos: distribución aleatoria de dígitos solo afectan a los dígitos de los datos de la columna y no a la longitud de los datos, la acción Enmascaramiento de datos: máscara de hash modifica toda la columna y la longitud de los datos cambia a 64 caracteres. Por lo tanto, se debe añadir la tabla de destino correspondiente o la regla de transformación change-data-type a la columna que se va a enmascarar.
Las columnas con la acción de la regla de transformación de enmascaramiento de datos especificada se excluyen de la validación de datos en AWS DMS. Si las columnas Clave principal o Clave única están enmascaradas, no se realizará la validación de datos de esta tabla; el estado de validación de dicha tabla será igual a
No Primary key.