Uma visão geral dos recursos de segurança do Banco de Dados SQL do Azure e da Instância Gerenciada SQL

Aplica-se a:Banco de Dados SQL do Azure Azure SQLManaged InstanceAzure Synapse Analytics

Este artigo descreve as noções básicas de proteção da camada de dados de um aplicativo usando o Banco de Dados SQL do Azure, a Instância Gerenciada SQL do Azure e o Azure Synapse Analytics. A estratégia de segurança descrita segue a abordagem de defesa em camadas profunda, conforme mostrado na figura abaixo, e se move de fora para dentro:

Diagram of layered defense-in-depth. Customer data is encased in layers of network security, access management and threat and information protections.

Nota

Microsoft Entra ID é o novo nome para o Azure Ative Directory (Azure AD). Estamos atualizando a documentação neste momento.

Segurança da rede

O Banco de Dados SQL do Microsoft Azure, a Instância Gerenciada SQL do Azure e o Azure Synapse Analytics fornecem um serviço de banco de dados relacional para aplicativos corporativos e na nuvem. Para ajudar a proteger os dados do cliente, os firewalls impedem o acesso à rede ao servidor até que o acesso seja explicitamente concedido com base no endereço IP ou na origem do tráfego da rede Virtual do Azure.

Regras de firewall de IP

As regras de firewall IP concedem acesso a bancos de dados com base no endereço IP de origem de cada solicitação. Para obter mais informações, consulte Visão geral do Banco de Dados SQL do Azure e Regras de firewall do Azure Synapse Analytics.

Regras de firewall de rede virtual

Os pontos de extremidade do serviço de rede virtual estendem sua conectividade de rede virtual pelo backbone do Azure e permitem que o Banco de Dados SQL do Azure identifique a sub-rede de rede virtual da qual o tráfego se origina. Para permitir que o tráfego chegue ao Banco de Dados SQL do Azure, use as marcas de serviço SQL para permitir o tráfego de saída por meio dos Grupos de Segurança de Rede.

As regras de rede virtual permitem que o Banco de Dados SQL do Azure aceite apenas comunicações enviadas de sub-redes selecionadas dentro de uma rede virtual.

Nota

O controle de acesso com regras de firewall não se aplica à Instância Gerenciada SQL. Para obter mais informações sobre a configuração de rede necessária, consulte Conectando-se a uma instância gerenciada

Gestão de acesso

Importante

O gerenciamento de bancos de dados e servidores no Azure é controlado pelas atribuições de função da sua conta de usuário do portal. Para obter mais informações sobre este artigo, consulte Controle de acesso baseado em função do Azure no portal do Azure.

Autenticação

A autenticação é o processo de provar que o utilizador é quem diz ser. O Banco de Dados SQL e a Instância Gerenciada SQL dão suporte à autenticação SQL com a ID do Microsoft Entra (anteriormente Azure Ative Directory). A instância gerenciada do SQL também oferece suporte à autenticação do Windows para entidades do Microsoft Entra.

  • Autenticação SQL:

    A autenticação SQL refere-se à autenticação de um usuário ao se conectar ao Banco de Dados SQL do Azure ou à Instância Gerenciada SQL do Azure usando nome de usuário e senha. Um login de administrador do servidor com um nome de usuário e senha deve ser especificado quando o servidor está sendo criado. Usando essas credenciais, um administrador de servidor pode autenticar em qualquer banco de dados nesse servidor ou instância como o proprietário do banco de dados. Depois disso, logins SQL adicionais e usuários podem ser criados pelo administrador do servidor, que permitem que os usuários se conectem usando nome de usuário e senha.

  • Autenticação do Microsoft Entra:

    A autenticação do Microsoft Entra é um mecanismo para se conectar ao Banco de Dados SQL do Azure, à Instância Gerenciada SQL do Azure e ao Azure Synapse Analytics usando identidades na ID do Microsoft Entra. A autenticação do Microsoft Entra permite que os administradores gerenciem centralmente as identidades e permissões dos usuários do banco de dados, juntamente com outros serviços do Azure, em um local central. Isso minimiza o armazenamento de senhas e permite políticas centralizadas de rotação de senhas.

    Um administrador de servidor chamado administrador do Microsoft Entra deve ser criado para usar a autenticação do Microsoft Entra com o Banco de dados SQL. Para obter mais informações, consulte Conectando-se ao Banco de Dados SQL com a autenticação do Microsoft Entra. A autenticação do Microsoft Entra suporta contas gerenciadas e federadas. As contas federadas suportam usuários e grupos do Windows para um domínio de cliente federado com o Microsoft Entra ID.

    O Microsoft Entra suporta várias opções de autenticação diferentes, incluindo autenticação multifator, autenticação integrada do Windows e acesso condicional.

  • Autenticação do Windows para entidades do Microsoft Entra:

    A autenticação Kerberos para entidades do Microsoft Entra habilita a autenticação do Windows para a Instância Gerenciada SQL do Azure. A autenticação do Windows para instâncias gerenciadas permite que os clientes movam os serviços existentes para a nuvem, mantendo uma experiência de usuário perfeita e fornece a base para a modernização da infraestrutura.

    Para habilitar a autenticação do Windows para entidades do Microsoft Entra, você transformará seu locatário do Microsoft Entra em um realm Kerberos independente e criará uma confiança de entrada no domínio do cliente. Saiba como a autenticação do Windows para Instância Gerenciada SQL do Azure é implementada com o Microsoft Entra ID e Kerberos.

Importante

O gerenciamento de bancos de dados e servidores no Azure é controlado pelas atribuições de função da sua conta de usuário do portal. Para obter mais informações sobre este artigo, consulte Controle de acesso baseado em função do Azure no portal do Azure. O controle de acesso com regras de firewall não se aplica à Instância Gerenciada SQL. Consulte o seguinte artigo sobre como se conectar a uma instância gerenciada para obter mais informações sobre a configuração de rede necessária.

Autorização

Autorização refere-se ao controle de acesso em recursos e comandos dentro de um banco de dados. Isso é feito atribuindo permissões a um usuário em um banco de dados no Banco de Dados SQL do Azure ou na Instância Gerenciada SQL do Azure. As permissões são idealmente gerenciadas adicionando contas de usuário a funções de banco de dados e atribuindo permissões no nível de banco de dados a essas funções . Como alternativa, um usuário individual também pode receber determinadas permissões no nível do objeto. Para obter mais informações, consulte Logins e usuários

Como prática recomendada, crie funções personalizadas quando necessário. Adicione usuários à função com o mínimo de privilégios necessários para executar sua função de trabalho. Não atribua permissões diretamente aos usuários. A conta de administrador do servidor é um membro da função db_owner interna, que tem permissões extensas e só deve ser concedida a alguns usuários com tarefas administrativas. Para limitar ainda mais o escopo do que um usuário pode fazer, o EXECUTE AS pode ser usado para especificar o contexto de execução do módulo chamado. Seguir estas boas práticas é também um passo fundamental para a separação de funções.

Segurança ao nível da linha

A Segurança em Nível de Linha permite que os clientes controlem o acesso a linhas em uma tabela de banco de dados com base nas características do usuário que executa uma consulta (por exemplo, associação a grupo ou contexto de execução). A Segurança em Nível de Linha também pode ser usada para implementar conceitos de segurança personalizados baseados em Rótulo. Para obter mais informações, veja Segurança ao Nível da Linha.

Diagram showing that Row-Level Security shields individual rows of a SQL database from access by users via a client app.

Proteção contra ameaças

O Banco de Dados SQL e a Instância Gerenciada SQL protegem os dados dos clientes fornecendo recursos de auditoria e deteção de ameaças.

Auditoria SQL em logs do Azure Monitor e Hubs de Eventos

A auditoria do Banco de Dados SQL e da Instância Gerenciada SQL rastreia as atividades do banco de dados e ajuda a manter a conformidade com os padrões de segurança registrando eventos do banco de dados em um log de auditoria em uma conta de armazenamento do Azure de propriedade do cliente. A auditoria permite que os usuários monitorem as atividades contínuas do banco de dados, bem como analisem e investiguem atividades históricas para identificar ameaças potenciais ou suspeitas de abuso e violações de segurança. Para obter mais informações, veja Get started with SQL Database Auditing (Introdução à Auditoria da Base de Dados SQL).

Advanced Threat Protection

A Proteção Avançada contra Ameaças está analisando seus logs para detetar comportamentos incomuns e tentativas potencialmente prejudiciais de acessar ou explorar bancos de dados. Os alertas são criados para atividades suspeitas, como injeção de SQL, potencial infiltração de dados e ataques de força bruta ou para anomalias nos padrões de acesso para capturar escalonamentos de privilégios e uso de credenciais violadas. Os alertas são visualizados a partir do Microsoft Defender for Cloud, onde são fornecidos os detalhes das atividades suspeitas e são dadas recomendações para investigação adicional, juntamente com ações para mitigar a ameaça. A Proteção Avançada contra Ameaças pode ser ativada por servidor por uma taxa adicional. Para obter mais informações, consulte Introdução à proteção avançada contra ameaças do Banco de dados SQL.

Diagram showing SQL Threat Detection monitoring access to the SQL database for a web app from an external attacker and malicious insider.

Proteção e encriptação de informações

Transport Layer Security (Encriptação em trânsito)

O Banco de Dados SQL, a Instância Gerenciada SQL e o Azure Synapse Analytics protegem os dados do cliente criptografando dados em movimento com TLS (Transport Layer Security).

O Banco de Dados SQL, a Instância Gerenciada SQL e o Azure Synapse Analytics impõem a criptografia (SSL/TLS) o tempo todo para todas as conexões. Isso garante que todos os dados sejam criptografados "em trânsito" entre o cliente e o servidor, independentemente da configuração de Encrypt ou TrustServerCertificate na cadeia de conexão.

Como prática recomendada, recomende que, na cadeia de conexão usada pelo aplicativo, você especifique uma conexão criptografada e não confie no certificado do servidor. Força, assim, a aplicação a verificar o certificado de servidor e a impedir que fique vulnerável a ataques do tipo man-in-the-middle.

Por exemplo, ao usar o driver ADO.NET, isso é feito via Encrypt=True e TrustServerCertificate=False. Se obtiver a cadeia de ligação a partir do portal do Azure, terá as definições corretas.

Importante

Observe que alguns drivers que não são da Microsoft podem não usar TLS por padrão ou depender de uma versão mais antiga do TLS (<1.2) para funcionar. Neste caso, o servidor ainda permite que você se conecte ao seu banco de dados. No entanto, recomendamos que você avalie os riscos de segurança de permitir que esses drivers e aplicativos se conectem ao Banco de dados SQL, especialmente se você armazenar dados confidenciais.

Para obter mais informações sobre TLS e conectividade, consulte Considerações sobre TLS

Criptografia de dados transparente (criptografia em repouso)

A criptografia de dados transparente (TDE) para Banco de Dados SQL, Instância Gerenciada SQL e Azure Synapse Analytics adiciona uma camada de segurança para ajudar a proteger os dados em repouso contra acesso não autorizado ou offline a arquivos brutos ou backups. Cenários comuns incluem roubo de data center ou descarte não seguro de hardware ou mídia, como drives de disco e fitas de backup. A TDE criptografa todo o banco de dados usando um algoritmo de criptografia AES, que não exige que os desenvolvedores de aplicativos façam alterações nos aplicativos existentes.

No Azure, todos os bancos de dados recém-criados são criptografados por padrão e a chave de criptografia do banco de dados é protegida por um certificado de servidor interno. A manutenção e a rotação do certificado são gerenciadas pelo serviço e não exigem entrada do usuário. Os clientes que preferem assumir o controle das chaves de criptografia podem gerenciar as chaves no Cofre de Chaves do Azure.

Gerenciamento de chaves com o Azure Key Vault

O suporte Bring Your Own Key (BYOK) para Criptografia de Dados Transparente (TDE) permite que os clientes se apropriem do gerenciamento e da rotação de chaves usando o Azure Key Vault, o sistema de gerenciamento de chaves externo baseado em nuvem do Azure. Se o acesso do banco de dados ao cofre de chaves for revogado, um banco de dados não poderá ser descriptografado e lido na memória. O Azure Key Vault fornece uma plataforma central de gerenciamento de chaves, aproveita módulos de segurança de hardware (HSMs) rigorosamente monitorados e permite a separação de tarefas entre o gerenciamento de chaves e dados para ajudar a atender aos requisitos de conformidade de segurança.

Sempre criptografado (criptografia em uso)

Diagram showing the basics of the Always Encrypted feature. An SQL database with a lock is only accessed by an app containing a key.

Always Encrypted é um recurso projetado para proteger dados confidenciais armazenados em colunas de banco de dados específicas do acesso (por exemplo, números de cartão de crédito, números de identificação nacionais/regionais ou dados com base na necessidade de saber ). Isso inclui administradores de banco de dados ou outros usuários privilegiados que estão autorizados a acessar o banco de dados para executar tarefas de gerenciamento, mas não têm necessidade comercial de acessar os dados específicos nas colunas criptografadas. Os dados são sempre encriptados, o que significa que os dados encriptados são desencriptados apenas para processamento por aplicações cliente com acesso à chave de encriptação. A chave de criptografia nunca é exposta ao Banco de Dados SQL ou à Instância Gerenciada do SQL e pode ser armazenada no Repositório de Certificados do Windows ou no Cofre de Chaves do Azure.

Máscara de dados dinâmica

Diagram showing dynamic data masking. A business app sends data to a SQL database which masks the data before sending it back to the business app.

A máscara de dados dinâmicos limita a exposição a dados confidenciais ao mascará-los para utilizadores sem privilégios. O mascaramento de dados dinâmicos descobre automaticamente dados potencialmente confidenciais no Banco de Dados SQL do Azure e na Instância Gerenciada SQL e fornece recomendações acionáveis para mascarar esses campos, com impacto mínimo na camada de aplicativo. Funciona ao ofuscar os dados confidenciais no conjunto de resultados de uma consulta em campos de base de dados designados, enquanto os dados na base de dados não são alterados. Para obter mais informações, consulte Introdução ao Banco de dados SQL e mascaramento de dados dinâmicos da Instância Gerenciada SQL.

Gestão de segurança

Avaliação de vulnerabilidades

A avaliação de vulnerabilidades é um serviço fácil de configurar que pode descobrir, rastrear e ajudar a corrigir possíveis vulnerabilidades do banco de dados com o objetivo de melhorar proativamente a segurança geral do banco de dados. A avaliação de vulnerabilidades (VA) faz parte da oferta do Microsoft Defender for SQL, que é um pacote unificado para recursos avançados de segurança do SQL. A avaliação de vulnerabilidades pode ser acedida e gerida através do Microsoft Defender central do portal do SQL.

Deteção e classificação de dados

A descoberta e a classificação de dados (atualmente em visualização) fornecem recursos básicos incorporados ao Banco de Dados SQL do Azure e à Instância Gerenciada do SQL para descobrir, classificar e rotular os dados confidenciais em seus bancos de dados. Descobrir e classificar seus dados mais confidenciais (comerciais/financeiros, de saúde, dados pessoais, etc.) pode desempenhar um papel fundamental em sua estatura organizacional de proteção de informações. Pode funcionar como infraestrutura para:

  • Vários cenários de segurança, como monitoramento (auditoria) e alerta sobre acesso anômalo a dados confidenciais.
  • Controlar o acesso e reforçar a segurança de bases de dados que contenham dados altamente sensíveis.
  • Ajudar a cumprir as normas de privacidade dos dados e os requisitos de conformidade regulamentares.

Para obter mais informações, consulte Introdução à descoberta e classificação de dados.

Conformidade

Além dos recursos e funcionalidades acima que podem ajudar seu aplicativo a atender a vários requisitos de segurança, o Banco de Dados SQL do Azure também participa de auditorias regulares e foi certificado de acordo com vários padrões de conformidade. Para obter mais informações, consulte a Central de Confiabilidade do Microsoft Azure, onde você pode encontrar a lista mais atual de certificações de conformidade do Banco de Dados SQL.

Próximos passos

  • Para obter uma discussão sobre o uso de logons, contas de usuário, funções de banco de dados e permissões no Banco de Dados SQL e na Instância Gerenciada SQL, consulte Gerenciar logons e contas de usuário.
  • Para uma discussão sobre auditoria de banco de dados, consulte auditoria.
  • Para obter uma discussão sobre deteção de ameaças, consulte Deteção de ameaças.