Compartilhar via


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

Aplica-se a:Banco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse Analytics

Este artigo descreve os conceitos básicos da proteção da camada de dados de um aplicativo que usa o Banco de Dados SQL do Azure, a Instância Gerenciada de SQL do Azure e o Azure Synapse Analytics. A estratégia de segurança descrita neste artigo segue a abordagem detalhada da defesa em camadas, conforme mostrado no diagrama a seguir, e se move de fora para dentro:

Diagrama de defesa em camadas em profundidade. Os dados do cliente são envoltos em camadas de segurança de rede, gerenciamento de acesso e proteções contra ameaças e informações.

Segurança de rede

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

Regras de firewall de IP

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

Regras de firewall de rede virtual

Os pontos de extremidade de serviço de rede virtual estendem a conectividade de rede virtual por meio do 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 é originado. Para permitir que o tráfego alcance o Banco de Dados SQL do Azure, use as marcas de serviço do SQL para permitir o tráfego de saída por meio de Grupos de Segurança de Rede.

  • As regras da 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.
  • Controlar o acesso com regras de firewall não se aplica à Instância Gerenciada de SQL. Para saber mais sobre a configuração de rede necessária, confira Conectar-se a uma instância gerenciada

Observação

Controlar o acesso com regras de firewall não se aplica à Instância Gerenciada de SQL. Para saber mais sobre a configuração de rede necessária, confira Conectar-se a uma instância gerenciada

Perímetro de segurança da rede

Um perímetro de segurança de rede do Azure cria limites lógicos de rede em torno de seus recursos paaS (plataforma como serviço) que você implanta fora de suas redes virtuais.

  • Um perímetro de segurança de rede do Azure ajuda você a controlar o acesso à rede pública ao Banco de Dados SQL do Azure.
  • Controlar o acesso com um perímetro de segurança de rede do Azure não se aplica à Instância Gerenciada de SQL do Azure.

Importante

O Banco de Dados SQL do Azure com Perímetro de Segurança de Rede está atualmente em versão prévia. As pré-visualizações são fornecidas sem um acordo de nível de serviço e não são recomendadas para cargas de trabalho em produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.

Autenticação

A autenticação é o processo de provar que o usuário é quem diz ser. O Banco de Dados SQL do Azure e a Instância Gerenciada de SQL dão suporte à autenticação com a ID do Microsoft Entra (antigo Azure Active Directory) e a autenticação SQL. A Instância Gerenciada de SQL adicionalmente dá suporte à autenticação do Windows para entidades de segurança do Microsoft Entra.

  • 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 de SQL do Azure e ao Azure Synapse Analytics usando identidades no Microsoft Entra ID. A autenticação do Microsoft Entra permite que os administradores gerenciem centralmente as identidades e permissões de usuários de banco de dados com outros serviços do Azure em uma localização central. Esse recurso pode ajudar a eliminar o uso de segredos e senhas.

    Para usar a autenticação do Microsoft Entra com o Banco de Dados SQL, crie um administrador de servidor chamado administrador do Microsoft Entra. Para obter mais informações, confira Conectar ao Banco de Dados SQL com a autenticação do Microsoft Entra. A autenticação do Microsoft Entra dá suporte a contas gerenciadas e federadas. As contas federadas dão suporte a grupos e usuários do Windows para um domínio de cliente federado com o Microsoft Entra ID.

    O Microsoft Entra oferece suporte a 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 de segurança do Microsoft Entra:

    A autenticação Kerberos para entidades de segurança do Microsoft Entra permite a Autenticação do Windows para a Instância Gerenciada de 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 do usuário integrada e fornecendo a base para a modernização da infraestrutura.

    Para habilitar a autenticação do Windows para entidades de segurança do Microsoft Entra, transforme seu locatário do Microsoft Entra em um realm Kerberos independente e crie uma confiança de entrada no domínio do cliente. Aprenda Como a Autenticação do Windows da Instância Gerenciada de SQL do Azure é implementada com o Microsoft Entra ID e o Kerberos.

  • Autenticação do 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 de SQL do Azure usando um nome de usuário e uma senha. Você deve especificar um logon de administrador do servidor com um nome de usuário e senha ao criar o servidor. Usando essas credenciais, um administrador do servidor pode autenticar-se em qualquer banco de dados nesse servidor ou instância como o proprietário do banco de dados. Depois disso, o administrador do servidor pode criar outros logons e usuários do SQL, que permitem que os usuários se conectem usando um nome de usuário e uma senha.

Gerenciamento de autorização e acesso

A autorização refere-se ao controle do acesso ao gerenciamento de servidores e bancos de dados e a dados, recursos e comandos em um banco de dados. Você atribui permissões a um usuário em um banco de dados no Banco de Dados SQL do Azure ou na Instância Gerenciada de SQL do Azure. As atribuições de função da conta de usuário do portal controlam o gerenciamento de bancos de dados e servidores no Azure. Para saber mais, veja Controle de acesso baseado em função no portal do Azure.

Gerencie permissões adicionando contas de usuário a funções de banco de dados e atribuindo permissões no nível do banco de dados a essas funções. Como alternativa, conceda certas permissões no nível do objeto a um usuário individual. Para obter mais informações, confira Logons e usuários.

Além disso, a Instância Gerenciada de SQL do Azure fornece funções no nível do servidor (fixas ou personalizadas) para gerenciar permissões para uma instância. As funções no nível do servidor têm escopo de permissões em todo o servidor. Você pode adicionar principais no nível do servidor em funções no nível do servidor.

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

Segurança em nível de linha

Row-Level Security permite controlar o acesso a linhas em uma tabela de banco de dados com base nas características do usuário executando uma consulta (por exemplo, associação de grupo ou contexto de execução). Use Row-Level Security para implementar conceitos de segurança personalizados baseados em rótulo. Para saber mais, confira Segurança em nível de linha.

Diagrama mostrando que o Row-Level Security protege linhas individuais de um banco de dados SQL do acesso por usuários por meio de um aplicativo cliente.

Proteção contra ameaças

O Banco de Dados SQL do Azure e a Instância Gerenciada de SQL protegem os dados do cliente fornecendo recursos de auditoria e detecção de ameaças.

Auditoria do SQL em logs do Azure Monitor e Hubs de Eventos

A auditoria do Banco de Dados SQL e da Instância Gerenciada de SQL rastreia as atividades do banco de dados e ajuda a manter a conformidade com os padrões de segurança registrando eventos de banco de dados em um log de auditoria em uma conta de Armazenamento do Azure de propriedade do cliente. A auditoria permite monitorar atividades de banco de dados em andamento, bem como analisar e investigar atividades históricas para identificar possíveis ameaças ou suspeitas de abuso e violações de segurança. Para saber mais, confira Introdução à Auditoria do Banco de Dados SQL.

Proteção Avançada contra Ameaças

A Proteção Avançada contra Ameaças analisa seus logs para detectar comportamentos incomuns e tentativas potencialmente prejudiciais de acessar ou explorar bancos de dados. Ele cria alertas para atividades suspeitas, como injeção de SQL, infiltração de dados potencial 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. Você pode exibir alertas do Microsoft Defender para Nuvem, em que os detalhes das atividades suspeitas são fornecidos e recomendações para uma investigação mais aprofundada, juntamente com ações para atenuar a ameaça. Você pode habilitar a Proteção Avançada contra Ameaças por servidor por uma taxa adicional. Para obter mais informações, confira Introdução à Proteção Avançada contra Ameaças do Banco de Dados SQL.

Diagrama mostrando a Detecção de Ameaças SQL monitorando o acesso ao banco de dados SQL por um aplicativo Web contra um invasor externo e um insider mal-intencionado.

Proteção e criptografia de informações

Segurança da Camada de Transporte (criptografia durante o trânsito)

O Banco de Dados SQL, a Instância Gerenciada de SQL e o Azure Synapse Analytics protege os dados do cliente criptografando os dados em movimento com o protocolo TLS. Esses serviços sempre impõem conexões criptografadas TLS para garantir que todos os dados sejam criptografados em trânsito entre o cliente e o servidor.

Especificamente, o Banco de Dados SQL, a Instância Gerenciada de SQL e o Azure Synapse Analytics definem o sinalizador ForceEncryption de configuração como Yes. Clientes e drivers devem dar suporte a conexões criptografadas para se conectar a esses serviços. A versão mais baixa do protocolo TDS que pode se conectar é o TDS 7.1.

Como prática recomendada, se você tiver drivers SQL compatíveis com TDS 8.0, use criptografia de conexão estrita.

Se os drivers não deem suporte ao TDS 8.0, use a criptografia obrigatória e não confie no certificado do servidor. Por exemplo, ao usar o driver ADO.NET, use Encrypt=True e TrustServerCertificate=False na cadeia de conexão para fazer isso. A cadeia de conexão que você obtém do portal do Azure já está configurada com esses valores.

Evite definir o parâmetro TrustServerCertificate para True o uso em produção. TrustServerCertificate=True é muito permissivo e não protege contra ataques de intermediário. Em vez disso, se o cliente espera um nome de domínio diferente no certificado do servidor, use o HostNameInCertificate parâmetro para fornecer o nome de domínio correto para validação.

Por exemplo, ao usar o driver ADO.NET para se conectar à instância contoso-instance.123456.database.windows.net gerenciada por meio de um nome contoso-instance.contoso.comde domínio personalizado, defina os parâmetros Encrypt=True de conexão e defina HostNameInCertificate=contoso-instance.123456.database.windows.net. Essa configuração permite que o driver valide o certificado do servidor em relação a um domínio de endpoint local da VNet esperado.

Importante

Alguns drivers que não são da Microsoft podem não usar o TLS por padrão ou podem depender de uma versão mais antiga do TLS (anterior à 1.2) para funcionar. Nesse caso, o servidor ainda permite que você se conecte ao banco de dados. No entanto, 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 as considerações do TLS.

Criptografia de dados transparente (criptografia em repouso) com chaves gerenciadas pelo serviço

A TDE (Transparent Data Encryption) para Banco de Dados SQL, Instância Gerenciada de SQL e Azure Synapse Analytics adiciona uma camada de segurança para ajudar a proteger dados inativos de acesso não autorizado ou offline a arquivos brutos ou backups. Os cenários comuns incluem o roubo de datacenter ou a eliminação não segura de hardware ou de mídia como discos rígidos e fitas de backup. O 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 em aplicativos existentes.

No Azure, todos os bancos de dados recém-criados são criptografados por padrão e a chave de criptografia de banco de dados é protegida por um certificado do servidor interno. O serviço gerencia a manutenção e rotação do certificado e não requer nenhuma entrada do usuário. Se você preferir assumir o controle das chaves de criptografia, poderá gerenciar as chaves no Azure Key Vault.

Criptografia de dados transparente (criptografia em repouso) com chaves gerenciadas pelo cliente

Se você precisar de maior controle sobre chaves de criptografia, a TDE (transparent Data Encryption) oferecerá suporte a CMK (chaves gerenciadas pelo cliente). Esse CMK é associado ao servidor lógico e encapsula as chaves de criptografia de banco de dados para todos os bancos de dados dentro desse servidor. Como alternativa, você pode configurar um CMK no nível de banco de dados individual. Ao gerenciar o CMK, você pode controlar a rotação de chaves, a revogação e a auditoria, o que geralmente é necessário para conformidade ou políticas de segurança rigorosas.

Always Encrypted e Always Encrypted com enclaves seguros (criptografia em uso)

Diagrama mostrando as noções básicas do recurso Always Encrypted. Um banco de dados SQL com um bloqueio só é acessado por um aplicativo que contém uma chave.

Always Encrypted e Always Encrypted com enclaves seguros são recursos projetados para proteger dados confidenciais armazenados em colunas de banco de dados específicas contra acesso (por exemplo, números de cartão de crédito, números de identificação nacional/regional ou dados com a necessidade de saber ). Essa proteção 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 precisam acessar os dados específicos nas colunas criptografadas. Os dados sempre são criptografados, o que significa que eles são descriptografados apenas para o processamento realizado por aplicativos cliente com acesso à chave de criptografia. A chave de criptografia nunca é exposta ao Banco de Dados SQL ou à Instância Gerenciada de SQL e pode ser armazenada no Repositório de Certificados do Windows ou no Azure Key Vault.

Mascaramento de dados dinâmicos

Diagrama mostrando máscara dinâmica de dados. Um aplicativo de negócios envia dados para um banco de dados SQL que mascara os dados antes de enviá-los de volta para o aplicativo de negócios.

O mascaramento dinâmico de dados limita a exposição de dados confidenciais por meio do mascaramento para usuários sem privilégios. A Máscara Dinâmica de Dados descobre de maneira automática os dados potencialmente confidenciais no Banco de Dados SQL do Azure e da Instância Gerenciada de SQL e fornece recomendações viáveis para mascarar esses campos, com impacto mínimo sobre a camada de aplicativo. Ele funciona ofuscando os dados confidenciais no conjunto de resultados de uma consulta em campos de banco de dados designados, enquanto os dados no banco de dados não são alterados. Para obter mais informações, confira Introdução à Máscara Dinâmica de Dados do Banco de Dados SQL e da Instância Gerenciada de SQL.

Ledger

Ledger no Banco de Dados SQL do Azure e na SQL Managed Instance é um recurso que fornece prova criptográfica de integridade dos dados. Com o livro-razão, você tem recursos de prova de adulteração para seus dados. Você pode comprovar criptograficamente a outras partes, como auditores ou outros parceiros comerciais, que seus dados não foram adulterados.

Ledger usa uma tecnologia à prova de adulterações para registrar alterações de banco de dados em um livro-razão imutável, garantindo que quaisquer modificações não autorizadas possam ser detectadas. Esse recurso é particularmente útil para cenários que exigem conformidade regulatória, auditoria e confiança entre várias partes. Ao habilitar o razão, você pode verificar a integridade de seus dados, reduzindo o risco de fraude ou manipulação de dados.

Gerenciamento de segurança

Avaliação de vulnerabilidade

A avaliação de vulnerabilidade é um serviço fácil de ser configurado que pode descobrir, acompanhar e ajudar a corrigir vulnerabilidades potenciais do banco de dados com o objetivo de melhorar de maneira proativa a segurança geral do banco de dados. A VA (avaliação de vulnerabilidades) faz parte da oferta do Microsoft Defender para SQL, que é um pacote unificado de recursos de segurança avançados do SQL. Você pode acessar e gerenciar a avaliação de vulnerabilidades por meio do portal central do Microsoft Defender para SQL.

Descoberta e classificação de dados

A descoberta e classificação de dados fornece recursos básicos integrados ao Banco de Dados SQL do Azure e à Instância Gerenciada de SQL para descobrir, classificar e rotular os dados confidenciais em seus bancos de dados. Descobrir e classificar seus dados mais confidenciais (negócios, financeiros, saúde, dados pessoais e muito mais) desempenha um papel fundamental em sua estatura de proteção de informações organizacionais. Ele serve como infraestrutura para:

  • Vários cenários de segurança, como monitoramento (auditoria) e alertas sobre acesso anômalo a dados confidenciais.
  • Controlando o acesso e fortalecendo a segurança de bancos de dados que contêm dados altamente confidenciais.
  • Ajudar a cumprir os padrões de privacidade de dados e os requisitos de conformidade a normas.

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

Conformidade

Além dos recursos e funcionalidades que ajudam seu aplicativo a atender a vários requisitos de segurança, o Banco de Dados SQL do Azure também participa de auditorias regulares. Ele foi certificado em relação a uma série de padrões de conformidade. Para saber mais, confira a Central de Confiabilidade do Microsoft Azure, onde é possível encontrar a lista mais atual de certificações de conformidade do Banco de Dados SQL.