Partilhar via


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 AzureInstância Gerenciada SQL do Azure do Azure Synapse Analytics

Este artigo descreve os conceitos básicos da proteção da camada de dados de um aplicativo usando do Banco de Dados SQL do Azure, de Instância Gerenciada SQL do Azure e do 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:

Diagrama de defesa em camadas em profundidade. Os dados dos clientes estão envoltos em camadas de segurança de rede, gerenciamento de acesso e proteção de ameaças e informações.

Observação

Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).

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 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 das regras de firewall do Banco de Dados SQL do Azure e do Azure Synapse Analytics.

Regras de firewall de rede virtual

Pontos de extremidade de serviço de rede virtual estendem a sua conectividade de rede virtual pela infraestrutura do Azure e habilitam o Azure SQL Database para identificar a sub-rede de rede virtual de onde 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 do SQL para permitir o tráfego de saída por meio de Grupos de Segurança de Rede.

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

Observação

O controle de acesso com regras de firewall não se aplica a 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 acessos

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 controlo de acesso baseado em funções no portal Azure.

Autenticação

A autenticação é o processo de provar que o usuário é quem afirma ser. A Base de Dados SQL e a Instância Gerida SQL suportam a autenticação SQL e a autenticação com a ID Microsoft Entra (anteriormente Azure Active Directory). A instância gerenciada do SQL também oferece suporte a de 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 administrador do servidor login com um nome de usuário e senha deve ser especificado quando o servidor está sendo criado. Usando essas credenciais, um administrador do servidor pode autenticar-se em qualquer base de dados nesse servidor ou instância como proprietário da base 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 Azure Synapse Analytics , usando identidades do Microsoft Entra ID. 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 de autenticação multifator, de autenticação integrada do Windows e de acesso condicional.

  • Autenticação do Windows para princípios do Microsoft Entra:

    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, irá transformar o seu tenant do Microsoft Entra em um domínio Kerberos independente e criar uma confiança de entrada no domínio do cliente. Saiba como a autenticação do Windows para a Instância Gerenciada SQL do Azure é implementada com a ID do Microsoft Entra e o 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 controlo de acesso baseado em funções do Azure no Portal do Azure. O controle de acesso com regras de firewall não se aplica a Instância Gerenciada SQL. Consulte o seguinte artigo sobre 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. Idealmente, as permissões são 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 em nível de linha

Row-Level Security 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 de grupo ou contexto de execução). Row-Level Security também pode ser usado para implementar conceitos de segurança personalizados baseados em rótulos. Para obter mais informações, consulte a segurança Row-Level.

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

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 mais informações, consulte Começar com Auditoria de Banco de Dados SQL .

Proteção avançada contra ameaças

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.

Diagrama mostrando a Deteção de Ameaças SQL monitorando o acesso ao banco de dados SQL para um aplicativo Web de um invasor externo e interno mal-intencionado.

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

Segurança da camada de transporte (criptografia 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 Transport Layer Security (TLS).

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 confiar no certificado do servidor. Isso força seu aplicativo a verificar o certificado do servidor e, portanto, evita que seu aplicativo fique vulnerável a ataques do tipo man in the middle.

Por exemplo, ao usar o driver ADO.NET, isso é feito por meio Encrypt=True e TrustServerCertificate=False. Se você obtiver sua cadeia de conexão do portal do Azure, ela terá as configuraçõ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)

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 Azure Key Vault.

Gerenciamento de chaves com o Azure Key Vault

suporte Bring Your Own Key (BYOK) para Transparent Data Encryption (TDE) permite que os clientes se apropriem do gerenciamento e da rotação de chaves usando 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)

Diagrama mostrando os conceitos básicos do recurso Sempre criptografado. Um banco de dados SQL com um cadeado só é acessado por um aplicativo que contém uma chave.

Always Encrypted é um recurso projetado para proteger dados confidenciais armazenados em colunas específicas do banco de dados contra o acesso (por exemplo, números de cartão de crédito, números de identificação nacionais/regionais ou dados em uma precisa saber base). 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 SQL e pode ser armazenada no Repositório de Certificados do Windows ou no Azure Key Vault.

Mascaramento dinâmico de dados

Diagrama mostrando mascaramento dinâmico 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, mascarando-os para usuários 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. Ele funciona ofuscando os dados confidenciais no conjunto de resultados de uma consulta sobre campos de banco de dados designados, enquanto os dados no banco de dados não são alterados. Para obter mais informações, consulte Introdução ao mascaramento dinâmico de dados do Banco de dados SQL e da Instância Gerenciada SQL.

Gestão de segurança

Avaliação da vulnerabilidade

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 acessada e gerenciada por meio do portal central do Microsoft Defender for SQL.

Descoberta 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 servir de 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.
  • Ajudando a atender aos padrões de privacidade de dados e requisitos de conformidade regulamentar.

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

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 bases de dados, consulte auditoria.
  • Para uma discussão sobre deteção de ameaças, consulte deteção de ameaças.