Implementando Dynamic Data Masking en Azure SQL Database

Dentro de Azure SQL Database se ofrecen una serie de características que ayudan a proteger la información que dentro de la base de datos se almacena. Una de ellas es la llamada “Dynamic Data Masking“, la cual fue introducida en la versión SQL Server 2016. Esta caracteristica permite enmascarar o cambiar la información cuando es consultada con el fin de no exponer información que puede ser confidencial o sensible. Un ejemplo clásico de este tipo de información son los números de tarjeta de crédito, los correos electrónicos, los números de documentos de identidad, etc.

Implementar “Dynamic Data Masking” en una base de datos Azure SQL Database, solo requiere hacer unos cuantos clics en el portal y todo estará listo. Para poder demostrar como se debe de hacer esta configuración tomaremos la base de datos ejemplo llamada AdventureWorksLT, la cual es ofrecida como base de datos de prueba dentro del portal Azure. Una vez que ya tenemos creada la base de datos AdventureWorksLT crearemos un usuario de pruebas llamado “testuser” el cual se conectara a nuestra base de datos y ejecutara la siguiente consulta:

select CustomerID, Title, FirstName, MiddleName, LastName, EmailAddress
from saleslt.customer
where CustomerID <span id="mce_SELREST_start" style="overflow:hidden;line-height:0;"></span>&lt; 20;

2018-03-06_17-30-18

Ahora desde el portal de Azure y en la pagina de la base de datos en cuestion, debemos ingresar a la opción “Dynamic Data Masking” y buscar en la lista de campos recomendados la dirección del correo electrónico de los clientes que deseamos enmascarar, en caso no aparezca, se debe dar clic en el botón “Load more” y cuando lo ubiquemos daremos clic en el botón “Add Mask“:

2018-03-06_17-19-36

Esto nos agregara la columna a la sección de “Masking Rules” ubicada al inicio de la página.

2018-03-08_09-10-30

Ahí se sugerirá un formato de mascara, sin embargo, si no estamos de acuerdo podemos cambiar esta configuración, y este es mi caso ya que me esta sugiriendo un formato de mascara genérico, pero el que yo deseo es uno dedicado a las direcciones de correo. Entonces para cambiarlo simplemente debemos dar clic sobre la regla de enmascaramiento y cambiar la mascara, seguidamente damos clic en el botón “Update” ubicado en la parte superior de la pagina de “Edit Masking Rule” y la cerramos para regresar a la pagina de “Masking Rules” donde grabaremos los cambios dando clic sobre el boton “Save“:

2018-03-08_09-19-19

2018-03-08_09-19-02

Ahora probaremos si efectivamente ya esta completa nuestra configuración. Para esto nos conectaremos a la base de datos nuevamente con el usuario “testuser” y ejecutaremos la misma consulta que lanzamos al inicio del post y veremos el resultado final donde los datos de la columna “EmailAddress” aparecerán enmascarados.

2018-03-08_09-22-38

Es importante notar que hemos utilizado el usuario “testuser” porque es un usuario regular, no es el usuario administrador del servidor SQL, ya que el enmascaramiento esta excluido para los usuarios administrador.tal y como lo menciona el portal.

2018-03-08_09-30-49

Si deseamos que solo el usuario de aplicación sea el que pueda ver los datos en texto claro, debemos de agregarlo a la lista de usuarios excluidos en la misma pagina de “Masking Rules“, y luego debemos grabar:

2018-03-08_09-32-44

Luego de esto, si volvemos a consultar la tabla “SalesLT.Customer” con el usuario “testuser” veremos que nuevamente podemos ver los datos en texto plano.

2018-03-06_17-30-18

Finalmente, podemos concluir que esta característica resulta muy útil para proteger nuestra información de ojos no autorizados a verla, y su implementación es bastante fácil y sencilla de realizar. Saludos.

Anuncios

2 comentarios sobre “Implementando Dynamic Data Masking en Azure SQL Database

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s