Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016 y SQL Database v12

Preview:

Citation preview

Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016 y SQL Database v12Jose RedondoMicrosoft Data Platform MVP

Quien soy?Microsoft Data Platform MVP Latam | Data Architect Business Intelligence & Data Warehouse Expert Consultant | Microsoft Communities Speaker

Twitter: @redondojLinkedIn: linkedin.com/in/redondojBlog: redondoj.wordpress.comE-Mail: redondoj@entornodb.onmicrosoft.com

Agenda• Introducción• Aplicando DDM• Entornos Cloud con DDM• Tips

Introducción• Proposito• Arquitectura• Beneficios• Tópico clave

Proposito

• Protección de datos confidenciales e información de característica sensible

• Cumplir leyes regulatorias sobre confidencialidad de datos

Proposito

• Presentación de datos sensible solamente cuando el escenario de consulta así lo necesite

• Atronamiento personalizado en escenarios y soluciones de confidencialidad de información

Arquitectura

Es una función de protección de datos que enmascara los datos sensibles en el conjunto de resultados de una consulta de base de datos sobre los campos elegidos

Arquitectura• Característica incorporada para

SQL Server 2016 y Azure SQL Database v12

• El enmascaramiento de datos se ejecuta al momento de ser consultados, no modificando los datos subyacentes

• Gestión de resultados sobre como se publicaran los Result Set

Beneficios• Proteger contra la propagación no autorizada de datos

sensibles en un requerimiento de información• Muy fácil de configurar y consumir

Beneficios• No requiere variación en el código de la aplicación• Lógica de enmascaramiento centralizado

Tópico claveNo pretende evitar que usuarios conectados directamente a la base de datos, ejecuten consultas, evitando exponer puntos claves de los datos sensibles en su contexto de trabajo

Tópico clave• No es un procedimiento para el cifrado de datos físicos• Es suplementario a otras propiedades del entorno de

seguridad de SQL Server

Aplicando DDM• Mapa de ejecución • Funciones• Seguridad• Vista del Sistema (sys.masked_columns)

Mapa de ejecución • Decidir qué columnas (campos) deben enmascararse• Elegir la función de enmascaramiento que mejor se adapte

a sus necesidades para cada columna

Mapa de ejecución

• Modificar las columnas (ALTER TABLE) para agregar las reglas de enmascaramiento

• Los datos subyacentes no se ve afectados

Mapa de ejecución • Designar que usuarios

deben ver datos enmascarados y configurar los permisos respectivos

Funciones• Default• E-Mail• Random• Custom String (Partial)

Default Function• Enmascaramiento completo según los tipos de datos de las

columnas designadasTipos de datos Mascara de datos

String XXXX

Numeric 0

Date and Time 01.01.1900 00:00:00.0000000

Binary 0

E-Mail Function• Desenmascara el inicio de una dirección de correo

electrónico y el constante sufijo ".com" conforme a una dirección de correo electrónico.

Random Function• Un Random Masking Function aplica para el uso de

cualquier tipo de dato numérico con el fin de enmascarar el valor original con un valor aleatorio dentro de un rango especificado.

Custom String (Partial) Function• Permite visualizar las primeros y últimos caracteres,

añadiendo una cadena de relleno personalizado en el centro.

Seguridad• Para recuperar los datos originales, el usuario debe tener

permiso UNMASK• Para añadir, sustituir, eliminar el enmascarado de columnas

existente aplicar el permiso ALTER ANY MASK • El permiso CONTROL en la base de datos incluye los

permisos ALTER ANY MASK y UNMASK

Los usuarios sin permiso UNMASK pero con permiso UPDATE puede todavía actualizar los datos

Vista del Sistema (sys.masked_columns)• Permiten trabajar con las funciones del sistema de

enmascaramiento dinámico de datos

Las mismas columnas de sys.columnsview

Adiciona las siguientes:• is_masked (Indica si esta

seleccionada esta columna)

• masking_function (La función de enmascaramiento)

DEMO

Entornos Cloud con DDM• Establecer• Aplicar funciones

EstablecerConfigurar DDM bajo entorno cloud en Microsoft Azure SQL Database v12

Establecer

Establecer

Establecer

EstablecerTips:• Definir usuarios excluidos a partir de enmascaramiento• Definir reglas de enmascaramiento• Establecer las columnas designadas para tal función y

aplicar enmascaramiento a cada uno

En la actualidad, existen cientos de recomendaciones que propone columnas potencialmente sensibles al enmascaramiento.

Aplicar funciones

Default Enmascaramiento completo de acuerdo al tipo de dato

Tarjeta de Crédito XXXX-XXXX-XXXX-1234Numero de Seguro Social XXX-XX-1234Correo Electrónico aXX@XXXX.com

Numero aleatorioNumero aleatorio entre delimitaciones establecidas con anterioridad

Texto personalizado Prefix, Padding String, Suffix

Aplicar funciones

DEMO

Tips• Limitaciones• Consideraciones• Optimización

Limitaciones• No compatible con:

• Columnas Always Encrypted• File Stream• Conjunto de columnas

• Índices FULLTEXT• No permite claves

• No aplica para columnas computadas

Consideraciones• Aplica cuando ejecutas las funciones de importar y

exportar en SQL Server• Aplica cuando utilizas SELECT INTO y INSERT INTO al copiar

datos desde columnas con enmascaramiento establecido

ATENCION:• Sea cuidadoso con las actualizaciones

Optimización• Impacto mínimo en su ejecución primaria• Se ejecuta justamente antes de que los datos retornen del

query

DEMO

Preguntas y Respuestas

Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016 y SQL Database v12

Jose RedondoMicrosoft Data Platform MVP

Gracias por su atención

Recommended