Administración de datos confidenciales con Enmascaramiento dinámico de datos

Completado

Azure SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics admiten Enmascaramiento dinámico de datos. El Enmascaramiento dinámico de datos garantiza una exposición limitada de los datos a los usuarios sin privilegios, de modo que no puedan ver los datos que se enmascaran. También le ayuda a evitar el acceso no autorizado a información confidencial que tiene un impacto mínimo en el nivel de aplicación. Enmascaramiento dinámico de datos es una característica de seguridad basada en directivas. Ocultará la información confidencial en un conjunto de resultados de una consulta que se ejecuta en campos designados de la base de datos.

Vamos a ver un ejemplo de cómo funciona. Supongamos que trabaja en un banco como representante de atención al cliente en un centro de llamadas. Por razones de cumplimiento, cualquier autor de la llamada debe identificarse proporcionando varios dígitos de su número de tarjeta de crédito. En este escenario, el número completo de la tarjeta de crédito no debería exponerse totalmente expuesto al representante del servicio en el centro de llamadas. Puede definir una regla de enmascaramiento que enmascare todos los dígitos de un número de tarjeta de crédito excepto los cuatro últimos. De esta forma, obtendría una consulta que solo dé como resultado los cuatro últimos dígitos del número de tarjeta de crédito. Este es solo un ejemplo que se podría aplicar igualmente a una variedad de datos personales de modo que no se infrinjan las normas de cumplimiento. En Azure Synapse Analytics, la manera de configurar una directiva de Enmascaramiento dinámico de datos es usar PowerShell o la API REST. La configuración de la directiva de Enmascaramiento dinámico de datos se puede realizar mediante los roles de administrador de Azure SQL Database, de administrador del servidor o de administrador de seguridad SQL.

En Azure Synapse Analytics, puede encontrar Enmascaramiento dinámico de datos aquí:

Enmascaramiento dinámico de datos en Azure Synapse Analytics

Análisis de las directivas de Enmascaramiento dinámico de datos:

  • Usuarios de SQL excluidos de las directivas de Enmascaramiento dinámico de datos

    Los siguientes usuarios de SQL o identidades de Microsoft Entra pueden obtener datos sin máscara en los resultados de consulta SQL. Los usuarios con privilegios de administrador se excluirán siempre del enmascaramiento y verán los datos originales sin ninguna máscara.

  • Reglas de enmascaramiento: las reglas de enmascaramiento son un conjunto de reglas que definen los campos designados para el enmascaramiento y la función de enmascaramiento que se va a usar. Los campos designados se pueden definir mediante un nombre de esquema de base de datos, un nombre de tabla y un nombre de columna.

  • Funciones de enmascaramiento: las funciones de enmascaramiento son un conjunto de métodos que controlan la exposición de los datos en distintos escenarios.

Configuración de Enmascaramiento dinámico de datos de una base de datos en Azure Synapse Analytics con cmdlets de PowerShell

En esta parte, vamos a analizar el Enmascaramiento dinámico de datos de una base de datos en Azure Synapse Analytics con cmdlets de PowerShell.

  • Directivas de enmascaramiento de datos
  • Get-AzSqlDatabaseDataMaskingPolicy

Get-AzSqlDatabaseDataMaskingPolicy obtiene la directiva de enmascaramiento de datos de una base de datos.

La sintaxis de Get-AzSqlDatabaseDataMaskingPolicy en PowerShell es la siguiente:

Get-AzSqlDatabaseDataMaskingPolicy [-ServerName] <String> [-DatabaseName] <String>
 [-ResourceGroupName] <String> [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
 [<CommonParameters>]

El cmdlet Get-AzSqlDatabaseDataMaskingPolicy obtiene la directiva de enmascaramiento de datos de una base de datos de Azure SQL.

Para usar este cmdlet en PowerShell, tendría que especificar los parámetros siguientes para identificar la base de datos:

  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.

Este cmdlet también es compatible con el servicio SQL Server Stretch Database de Azure.

  • Set-AzSqlDatabaseDataMaskingPolicy

Set-AzSqlDatabaseDataMaskingPolicy establece el enmascaramiento de datos de una base de datos.

La sintaxis de Set-AzSqlDatabaseDataMaskingPolicy en PowerShell es la siguiente:

Set-AzSqlDatabaseDataMaskingPolicy [-PassThru] [-PrivilegedUsers <String>] [-DataMaskingState <String>]
 [-ServerName] <String> [-DatabaseName] <String> [-ResourceGroupName] <String>
 [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]

El cmdlet Set-AzSqlDatabaseDataMaskingPolicy obtiene la directiva de enmascaramiento de datos de una base de datos de Azure SQL.

Para usar este cmdlet en PowerShell, tendría que especificar los parámetros siguientes para identificar la base de datos:

  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.

Además, deberá establecer el parámetro DataMaskingState para especificar si las operaciones de enmascaramiento de datos están habilitadas o deshabilitadas.

Si el cmdlet se ejecuta correctamente y se usa el parámetro PassThru, se devolverá un objeto que describe la directiva de enmascaramiento de datos actual, además de los identificadores de bases de datos.

Los identificadores de bases de datos pueden incluir ResourceGroupName, ServerName y DatabaseName.

Este cmdlet también es compatible con el servicio SQL Server Stretch Database de Azure.

  • Reglas de enmascaramiento de datos
  • Get-AzSqlDatabaseDataMaskingRule

Get-AzSqlDatabaseDataMaskingRule obtiene las reglas de enmascaramiento de datos de una base de datos.

La sintaxis de Get-AzSqlDatabaseDataMaskingRule en PowerShell es la siguiente:

Get-AzSqlDatabaseDataMaskingRule [-SchemaName <String>] [-TableName <String>] [-ColumnName <String>]
 [-ServerName] <String> [-DatabaseName] <String> [-ResourceGroupName] <String>
 [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]

El cmdlet Get-AzSqlDatabaseDataMaskingRule obtiene una regla de enmascaramiento de datos específica o todas las reglas de enmascaramiento de datos de una base de datos de Azure SQL.

Para usar este cmdlet en PowerShell, tendría que especificar los parámetros siguientes para identificar la base de datos:

  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.

También tendría que especificar el parámetro RuleId para especificar la regla que devuelve este cmdlet.

Si no proporciona RuleId, se devuelven todas las reglas de enmascaramiento de datos de esa base de datos de Azure SQL.

Este cmdlet también es compatible con el servicio SQL Server Stretch Database de Azure.

  • New-AzSqlDatabaseDataMaskingRule

New-AzSqlDatabaseDataMaskingRule crea una regla de enmascaramiento de datos de una base de datos.

La sintaxis de New-AzSqlDatabaseDataMaskingRule en PowerShell es la siguiente:

New-AzSqlDatabaseDataMaskingRule -MaskingFunction <String> [-PrefixSize <UInt32>] [-ReplacementString <String>]
 [-SuffixSize <UInt32>] [-NumberFrom <Double>] [-NumberTo <Double>] [-PassThru] -SchemaName <String>
 -TableName <String> -ColumnName <String> [-ServerName] <String> [-DatabaseName] <String>
 [-ResourceGroupName] <String> [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
 [<CommonParameters>]

El cmdlet New-AzSqlDatabaseDataMaskingRule crea una regla de enmascaramiento de datos de una base de datos de Azure SQL.

Para usar este cmdlet en PowerShell, tendría que especificar los parámetros siguientes para identificar la regla:

  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.

Hay que proporcionar TableName y ColumnName para especificar el destino de la regla.

El parámetro MaskingFunction es necesario para definir cómo se enmascaran los datos.

Si MaskingFunction tiene un valor de número o texto, puede especificar los parámetros NumberFrom y NumberTo para el enmascaramiento de números, o PrefixSize, ReplacementString y SuffixSize para el enmascaramiento de textos.

Si el comando se ejecuta correctamente y se usa el parámetro PassThru, el cmdlet devuelve un objeto que describe las propiedades de la regla de enmascaramiento de datos, además de los identificadores de reglas.

Los identificadores de reglas pueden ser, por ejemplo, ResourceGroupName, ServerName, DatabaseName y RuleID.

Este cmdlet también es compatible con el servicio SQL Server Stretch Database de Azure.

  • Remove-AzSqlDatabaseDataMaskingRule

Remove-AzSqlDatabaseDataMaskingRule quita una regla de enmascaramiento de datos de una base de datos.

La sintaxis de Remove-AzSqlDatabaseDataMaskingRule en PowerShell es la siguiente:

Remove-AzSqlDatabaseDataMaskingRule [-PassThru] [-Force] -SchemaName <String> -TableName <String>
 -ColumnName <String> [-ServerName] <String> [-DatabaseName] <String> [-ResourceGroupName] <String>
 [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]

El cmdlet Remove-AzSqlDatabaseDataMaskingRule quita una regla de enmascaramiento de datos específica de la base de datos de Azure SQL.

Para usar este cmdlet en PowerShell, tendría que especificar los parámetros siguientes para identificar la regla que debe quitarse:

  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.
  • RuleId: el identificador de la regla.

Este cmdlet también es compatible con el servicio SQL Server Stretch Database de Azure.

  • Set-AzSqlDatabaseDataMaskingRule

Set-AzSqlDatabaseDataMaskingRule establece las propiedades de una regla de enmascaramiento de datos de una base de datos.

La sintaxis de Set-AzSqlDatabaseDataMaskingRule en PowerShell es la siguiente:

Set-AzSqlDatabaseDataMaskingRule [-MaskingFunction <String>] [-PrefixSize <UInt32>]
 [-ReplacementString <String>] [-SuffixSize <UInt32>] [-NumberFrom <Double>] [-NumberTo <Double>] [-PassThru]
 -SchemaName <String> -TableName <String> -ColumnName <String> [-ServerName] <String> [-DatabaseName] <String>
 [-ResourceGroupName] <String> [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
 [<CommonParameters>]

El cmdlet set-AzSqlDatabaseDataMaskingRule establece una regla de enmascaramiento de datos de una base de datos de Azure SQL.

Para usar este cmdlet en PowerShell, tendría que especificar los parámetros siguientes para identificar la regla:

  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.
  • RuleId: el identificador de la regla.

Puede proporcionar cualquiera de los parámetros de SchemaName, TableNamey ColumnName para redestinar la regla.

Especifique el parámetro MaskingFunction para modificar cómo se enmascaran los datos.

Si MaskingFunction tiene un valor de número o texto, puede especificar los parámetros NumberFrom y NumberTo para el enmascaramiento de números, o PrefixSize, ReplacementString y SuffixSize para el enmascaramiento de textos.

Si el comando se ejecuta correctamente y especifica el parámetro PassThru, el cmdlet devuelve un objeto que describe las propiedades de la regla de enmascaramiento de datos y los identificadores de reglas.

Los identificadores de reglas pueden ser ResourceGroupName, ServerName, DatabaseName y RuleId.

Este cmdlet también es compatible con el servicio SQL Server Stretch Database de Azure.

Configuración de Enmascaramiento dinámico de datos de la base de datos en Azure Synapse Analytics mediante la API REST

Para configurar el Enmascaramiento dinámico de datos en Azure Synapse Analytics, también puede usar la API de REST. Esto permitirá la administración mediante programación de las reglas y directivas de enmascaramiento de datos.

La API REST admiten las siguientes operaciones:

  • Directivas de enmascaramiento de datos
  • Crear o actualizar

La directiva enmascaramiento Crear o actualizar mediante la API REST creará o actualizará una directiva de enmascaramiento de datos de bases de datos.

En HTTP, se puede realizar la siguiente solicitud: >Nota: La fecha de la API cambiará con el tiempo y la versión que use vendrá determinada por sus necesidades y la funcionalidad necesaria.

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/dataMaskingPolicies/Default?api-version=2021-06-01

Es necesario especificar los parámetros siguientes:

  • SubscriptionID: el identificador de la suscripción.
  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.
  • dataMaskingPolicyName: el nombre de la directiva de enmascaramiento de datos.
  • api version: la versión de la API que se usa.
  • Obtener

La directiva Obtener obtiene una directiva de enmascaramiento de datos de bases de datos

En HTTP, se puede realizar la siguiente solicitud:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/dataMaskingPolicies/Default?api-version=2021-06-01

Es necesario especificar los parámetros siguientes:

  • SubscriptionID: el identificador de la suscripción.
  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.
  • dataMaskingPolicyName: el nombre de la directiva de enmascaramiento de datos.
  • api version: la versión de la API que se usa.
  • Reglas de enmascaramiento de datos

  • Crear o actualizar

La regla de enmascaramiento Crear o actualizar crea o actualiza una regla de enmascaramiento de datos de bases de datos.

En HTTP, se puede realizar la siguiente solicitud:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/dataMaskingPolicies/Default/rules/{dataMaskingRuleName}?api-version=2021-06-01

Es necesario especificar los parámetros siguientes:

  • SubscriptionID: el identificador de la suscripción.
  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.
  • dataMaskingPolicyName: el nombre de la directiva de enmascaramiento de datos.
  • dataMaskingRuleName: el nombre de la regla de enmascaramiento de datos.
  • api version: la versión de la API que se usa.
  • List By Database (Enumerar por base de datos)

La solicitud List By Database (Enumerar por base de datos) obtiene una lista de reglas de enmascaramiento de datos de bases de datos.

En HTTP, se puede realizar la siguiente solicitud:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/dataMaskingPolicies/Default/rules?api-version=2021-06-01

Es necesario especificar los parámetros siguientes:

  • SubscriptionID: el identificador de la suscripción.
  • ResourceGroupName: el nombre del grupo de recursos en el que ha implementado la base de datos.
  • ServerName: nombre del servidor SQL.
  • DatabaseName: nombre de la base de datos.
  • dataMaskingPolicyName: el nombre de la directiva de enmascaramiento de datos.
  • api version: la versión de la API que se usa.