Gerenciar dados confidenciais com a Máscara Dinâmica de Dados
O Banco de Dados SQL do Azure, a Instância Gerenciada de SQL do Azure e o Azure Synapse Analytics dão suporte à Máscara Dinâmica de Dados. A Máscara Dinâmica de Dados garante exposição limitada de dados a usuários sem privilégios, de modo que eles não possam ver os dados que estão sendo mascarados. Ela também ajuda a impedir o acesso não autorizado a informações confidenciais com impacto mínimo sobre a camada de aplicativo. A Máscara Dinâmica de Dados é um recurso de segurança baseado em políticas. Ele oculta os dados confidenciais em um conjunto de resultados de uma consulta executada em campos de banco de dados designados.
Vamos dar um exemplo de como funciona. Digamos que você trabalhe em um banco como representante de serviço em um call center. Devido à conformidade, qualquer chamador deve se identificar fornecendo vários dígitos de seu número de cartão de crédito. Nesse cenário, o número de cartão de crédito completo não deve ser totalmente exposto ao representante de serviço no call center. É possível definir uma regra de mascaramento, que mascara tudo, exceto os quatro últimos dígitos de um número de cartão de crédito, de modo que você receba uma consulta que fornece como resultado apenas os quatro últimos dígitos do número do cartão de crédito. Esse é apenas um exemplo que pode ser igualmente aplicado a uma variedade de dados pessoais, de modo que a conformidade não seja violada. Para o Azure Synapse Analytics, a maneira de configurar uma política de Máscara Dinâmica de Dados é usar o PowerShell ou a API REST. A configuração da política de Máscara Dinâmica de Dados pode ser feita pelas funções administrador do Banco de Dados SQL do Azure, administrador do servidor ou Gerenciador de Segurança do SQL.
No Azure Synapse Analytics, você pode encontrar a Máscara Dinâmica de Dados aqui;
Analisando políticas de Máscara Dinâmica de Dados:
Usuários SQL excluídos das Políticas de Máscara Dinâmica de Dados
Os usuários de identidades do SQL ou do Microsoft Entra a seguir podem obter dados sem máscara nos resultados da consulta SQL. Usuários com privilégios de administrador sempre são excluídos do mascaramento e veem os dados originais sem qualquer máscara.
Regras de mascaramento – são um conjunto de regras que definem os campos designados que serão mascarados, incluindo a função de mascaramento que será usada. Os campos correspondentes podem ser definidos usando um nome de esquema de banco de dados, um nome de tabela e um nome da coluna.
Funções de mascaramento – são um conjunto de métodos que controlam a exposição de dados para cenários diferentes.
Configurar Máscara Dinâmica de Dados para seu banco de dados no Azure Synapse Analytics usando cmdlets do PowerShell
Nesta parte, vamos examinar a Máscara Dinâmica de Dados para um banco de dados no Azure Synapse Analytics usando cmdlets do PowerShell.
- Políticas de mascaramento de dados
- Get-AzSqlDatabaseDataMaskingPolicy
O Get-AzSqlDatabaseDataMaskingPolicy obtém a política de mascaramento de dados para um banco de dados.
A sintaxe para Get-AzSqlDatabaseDataMaskingPolicy no PowerShell é a seguinte:
Get-AzSqlDatabaseDataMaskingPolicy [-ServerName] <String> [-DatabaseName] <String>
[-ResourceGroupName] <String> [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
[<CommonParameters>]
O que o cmdlet Get-AzSqlDatabaseDataMaskingPolicy faz é obter a política de mascaramento de dados de um Banco de Dados SQL do Azure.
Para usar esse cmdlet no PowerShell, você precisaria especificar os seguintes parâmetros para identificar o banco de dados:
- ResourceGroupName: nome do grupo de recursos em que você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
O serviço de SQL Server Stretch Database no Azure também dá suporte a esse cmdlet.
- Set-AzSqlDatabaseDataMaskingPolicy
A Set-AzSqlDatabaseDataMaskingPolicy define o mascaramento de dados para um banco de dados.
A sintaxe para o Set-AzSqlDatabaseDataMaskingPolicy no PowerShell é a seguinte:
Set-AzSqlDatabaseDataMaskingPolicy [-PassThru] [-PrivilegedUsers <String>] [-DataMaskingState <String>]
[-ServerName] <String> [-DatabaseName] <String> [-ResourceGroupName] <String>
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
O que o cmdlet Set-AzSqlDatabaseDataMaskingPolicy faz é configurar a política de mascaramento de dados para um Banco de Dados SQL do Azure.
Para usar esse cmdlet no PowerShell, você precisaria especificar os seguintes parâmetros para identificar o banco de dados:
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
Além disso, será necessário definir o parâmetro DataMaskingState para especificar se as operações de mascaramento de dados estão habilitadas ou desabilitadas.
Se o cmdlet for bem-sucedido e o parâmetro PassThru for usado, ele retornará um objeto que descreve a política de mascaramento de dados atual, além dos identificadores de banco de dados.
Os identificadores de banco de dados podem incluir ResourceGroupName, ServerName e DatabaseName.
O serviço de SQL Server Stretch Database no Azure também dá suporte a esse cmdlet.
- Regras de mascaramento de dados
- Get-AzSqlDatabaseDataMaskingRule
O Get-AzSqlDatabaseDataMaskingRule obtém as regras de mascaramento de dados de um banco de dados.
A sintaxe para Get-AzSqlDatabaseDataMaskingRule no PowerShell é a seguinte:
Get-AzSqlDatabaseDataMaskingRule [-SchemaName <String>] [-TableName <String>] [-ColumnName <String>]
[-ServerName] <String> [-DatabaseName] <String> [-ResourceGroupName] <String>
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
O que o cmdlet Get-AzSqlDatabaseDataMaskingRule faz é obter uma regra de mascaramento de dados específica ou todas as regras de mascaramento de dados para um Banco de Dados SQL do Azure.
Para usar esse cmdlet no PowerShell, você precisaria especificar os seguintes parâmetros para identificar o banco de dados:
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
Você também precisaria especificar o parâmetro RuleId para definir a regra que esse cmdlet retorna.
Se você não fornecer RuleId, todas as regras de mascaramento de dados para esse banco de dados SQL do Azure serão retornadas.
O serviço de SQL Server Stretch Database no Azure também dá suporte a esse cmdlet.
- New-AzSqlDatabaseDataMaskingRule
A New-AzSqlDatabaseDataMaskingRule cria uma regra de mascaramento de dados para um banco de dados.
A sintaxe para a New-AzSqlDatabaseDataMaskingRule no PowerShell é a seguinte:
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>]
O que o cmdlet New-AzSqlDatabaseDataMaskingRule faz é criar uma regra de mascaramento de dados para um Banco de Dados SQL do Azure.
Para usar esse cmdlet no PowerShell, você precisaria especificar os seguintes parâmetros para identificar a regra:
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
É necessário fornecer o TableName e o ColumnName para especificar o destino da regra.
O parâmetro MaskingFunction é necessário para definir como os dados são mascarados.
Se a MaskingFunction tiver um valor de número ou texto, você poderá especificar os parâmetros NumberFrom e NumberTo para mascaramento de números ou PrefixSize, ReplacementString e SuffixSize para mascaramento de texto.
Se o comando for bem-sucedido e o parâmetro PassThru for usado, o cmdlet retornará um objeto que descreve as propriedades da regra de mascaramento de dados, além dos identificadores de regra.
Os identificadores de regra podem ser, por exemplo, ResourceGroupName, ServerName, DatabaseName e RuleID.
O serviço de SQL Server Stretch Database no Azure também dá suporte a esse cmdlet.
- Remove-AzSqlDatabaseDataMaskingRule
A Remove-AzSqlDatabaseDataMaskingRule remove uma regra de mascaramento de dados de um banco de dados.
A sintaxe para Remove-AzSqlDatabaseDataMaskingRule no PowerShell é a seguinte:
Remove-AzSqlDatabaseDataMaskingRule [-PassThru] [-Force] -SchemaName <String> -TableName <String>
-ColumnName <String> [-ServerName] <String> [-DatabaseName] <String> [-ResourceGroupName] <String>
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
O que o cmdlet Remove-AzSqlDatabaseDataMaskingRule faz é remover uma regra de mascaramento de dados específica de um Banco de Dados SQL do Azure.
Para usar esse cmdlet no PowerShell, você precisaria especificar os seguintes parâmetros para identificar a regra que precisa ser removida:
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
- RuleId: identificador da regra
O serviço de SQL Server Stretch Database no Azure também dá suporte a esse cmdlet.
- Set-AzSqlDatabaseDataMaskingRule
A Set-AzSqlDatabaseDataMaskingRule define as propriedades de uma regra de mascaramento de dados para um banco de dados.
A sintaxe para a Set-AzSqlDatabaseDataMaskingRule no PowerShell é a seguinte:
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>]
O que o cmdlet set-AzSqlDatabaseDataMaskingRule faz é configurar uma regra de mascaramento de dados para um Banco de Dados SQL do Azure.
Para usar esse cmdlet no PowerShell, você precisaria especificar os seguintes parâmetros para identificar a regra:
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
- RuleId: identificador da regra
Você pode fornecer qualquer um dos parâmetros de SchemaName, TableName e ColumnName para redirecionar a regra.
Especifique o parâmetro MaskingFunction para modificar como os dados são mascarados.
Se você especificar um valor de número ou texto para MaskingFunction, poderá especificar os parâmetros NumberFrom e NumberTo para o mascaramento de números ou os parâmetros PrefixSize, ReplacementString e SuffixSize para mascaramento de texto.
Se o comando for bem-sucedido e você especificar o parâmetro PassThru, o cmdlet retornará um objeto que descreve as propriedades da regra de mascaramento de dados e os identificadores de regra.
Os identificadores de regra podem ser ResourceGroupName, ServerName, DatabaseName e RuleId.
O serviço de SQL Server Stretch Database no Azure também dá suporte a esse cmdlet.
Configurar Máscara Dinâmica de Dados para seu banco de dados no Azure Synapse Analytics usando a API REST
Para configurar a Máscara Dinâmica de Dados no Azure Synapse Analytics, você também pode usar a API REST. Ela permitirá gerenciar programaticamente políticas e regras de mascaramento de dados.
A API REST dará suporte às seguintes operações:
- Políticas de mascaramento de dados
- Criar ou atualizar
A opção Criar ou atualizar política de mascaramento usando a API REST criará ou atualizará uma política de mascaramento de dados do banco de dados.
Em HTTP, a seguinte solicitação pode ser feita: >Observação: a data da API mudará com o tempo e a versão que você usar será determinada por suas necessidades e a funcionalidade exigida.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/dataMaskingPolicies/Default?api-version=2021-06-01
Os seguintes parâmetros precisam ser especificados:
- SubscriptionID: a ID da assinatura
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
- dataMaskingPolicyName: o nome da política de mascaramento de dados
- api version: versão da api usada.
- Obter
A política Get obtém uma política de mascaramento de dados do banco de dados.
Em HTTP, a seguinte solicitação pode ser feita:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/dataMaskingPolicies/Default?api-version=2021-06-01
Os seguintes parâmetros precisam ser especificados:
- SubscriptionID: a ID da assinatura
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
- dataMaskingPolicyName: o nome da política de mascaramento de dados
- api version: versão da api usada.
Regras de mascaramento de dados
Criar ou atualizar
A regra criar ou atualizar mascaramento cria ou atualiza uma regra de mascaramento de dados de banco de dados.
Em HTTP, a seguinte solicitação pode ser feita:
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
Os seguintes parâmetros precisam ser especificados:
- SubscriptionID: a ID da assinatura
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
- dataMaskingPolicyName: o nome da política de mascaramento de dados
- dataMaskingRuleName: o nome da regra para mascaramento de dados
- api version: versão da api usada.
- Listar por banco de dados
A solicitação Listar por Banco de Dados obtém uma lista de regras de mascaramento de dados do banco de dados.
Em HTTP, a seguinte solicitação pode ser feita:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/dataMaskingPolicies/Default/rules?api-version=2021-06-01
Os seguintes parâmetros precisam ser especificados:
- SubscriptionID: a ID da assinatura
- ResourceGroupName: o nome do grupo de recursos no qual você implantou o banco de dados
- ServerName: nome do SQL Server
- DatabaseName: nome do banco de dados
- dataMaskingPolicyName: o nome da política de mascaramento de dados
- api version: versão da api usada.