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

Este artigo descreve as noções básicas da proteção da camada de dados de um aplicativo usando 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 segue a abordagem de defesa em profundidade em camadas conforme mostrado na imagem abaixo e se movimenta de fora para dentro:

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

Segurança de rede

O Banco de Dados SQL do Microsoft 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 empresariais e de nuvem. Para ajudar a proteger os dados do cliente, os firewalls impedem o acesso de rede ao servidor até que ele seja concedido explicitamente 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.

Observação

O controle do 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

Gerenciamento 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 saber mais sobre esse artigo, confira Controle de acesso baseado em função do Azure no portal do 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 do Azure dão suporte à autenticação SQL e a autenticação do Azure AD. A Instância Gerenciada de SQL adicionalmente dá suporte à Autenticação do Windows para entidades de segurança do Azure AD.

  • Autenticação do SQL:

    A autenticação via SQL consiste na 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 o nome de usuário e a senha. Um logon de administrador de servidor 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 banco de dados nesse servidor ou instância como o proprietário do banco de dados. Depois disso, os usuários e logons do SQL adicionais podem ser criados pelo administrador do servidor, que permite que os usuários se conectem usando nome de usuário e senha.

  • Autenticação do Azure Active Directory:

    A autenticação do Azure Active Directory é 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 Azure AD (Azure Active Directory). A autenticação do Azure AD permite que os administradores gerenciem centralmente as identidades e permissões de usuários de banco de dados juntamente com outros serviços do Azure em uma localização central. Isso inclui a minimização do armazenamento de senha e habilita políticas centralizadas de rotação de senha.

    Um administrador do servidor chamado o administrador do Active Directory deve ser criado para usar autenticação do Azure AD com o Banco de Dados SQL. Para saber mais, confira Connecting to SQL Database By Using Azure Active Directory Authentication (Conectando-se ao Banco de Dados SQL usando a Autenticação do Azure Active Directory). A autenticação do Azure AD 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 Azure AD.

    Mais opções de autenticação do Azure AD disponíveis são conexões de Autenticação Universal do Active Directory para SQL Server Management Studio, incluindo autenticação multifator e Acesso Condicional.

  • Autenticação do Windows para entidades de segurança do Azure AD:

    A autenticação Kerberos para entidades de segurança do Azure AD 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 de usuário perfeita e fornece a base para a modernização da infraestrutura.

    Para habilitar a Autenticação do Windows para entidades de segurança do Azure AD (Azure Active Directory), você vai transformar seu locatário do Azure AD em um realm Kerberos independente e criar uma relação de confiança de entrada no domínio do cliente. Saiba como a Autenticação do Windows para a Instância Gerenciada de SQL do Azure é implementada com Azure Active Directory 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 saber mais sobre esse artigo, confira Controle de acesso baseado em função do Azure no portal do Azure. O controle do acesso com regras de firewall não se aplica à Instância Gerenciada de SQL. Para obter mais informações sobre a configuração de rede necessária, confira o seguinte artigo sobre conectar-se a uma instância gerenciada.

Autorização

A autorização refere-se ao controle de acesso em recursos e comandos em um banco de dados. Isso é feito atribuindo permissões a um usuário em um banco de dados no Banco de Dados SQL do Microsoft Azure ou na Instância Gerenciada de SQL do Azure. As permissões são gerenciadas idealmente pela adição de contas de usuário em funções de banco de dados e a atribuição de permissões de nível de banco de dados a essas funções. Como alternativa, um usuário individual também pode ter determinadas permissões no nível do objeto. Para saber mais, confira Logins and users (Logons e usuários)

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 do administrador do servidor é um membro da função db_owner interna, que tem permissões extensas e só deve ser concedida a poucos usuários com tarefas administrativas. Para limitar ainda mais o escopo do que um usuário pode fazer, EXECUTE AS pode ser usado para especificar o contexto de execução do módulo chamado. Seguir as melhores práticas também é uma etapa fundamental para a separação de tarefas.

Segurança em nível de linha

A segurança em nível de linha permite aos clientes controlar o acesso às linhas em uma tabela de banco de dados com base nas características do usuário executando uma consulta (por exemplo, associação a grupo ou contexto de execução). A segurança em nível de linha pode ser usada 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 a segurança em nível de linha protege as 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 e a Instância Gerenciada de SQL protegem os dados do cliente fornecendo funcionalidades de auditoria e de 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 que os usuários monitorem as atividades do banco de dados em andamento, além de analisar e investigar a atividade de histórico para identificar possíveis ameaças ou suspeitas de violações de segurança e de abuso. 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 está analisando seus logs para detectar comportamento incomum e tentativas potencialmente prejudiciais de acessar ou explorar bancos de dados. Os alertas são criados para atividades suspeitas, como a injeção de SQL, potencial infiltração de dados e ataques de força bruta ou para anomalias em padrões de acesso para capturar as elevações de privilégio e uso de credenciais violadas. Os alertas são exibidos no Microsoft defender para Nuvem, onde as informações das atividades suspeitas são fornecidas e recomendações de uma investigação mais detalhada são fornecidas junto às ações para atenuar a ameaça. A proteção avançada contra ameaças pode ser habilitada por servidor por um valor adicional. Para obter mais informações, confira Introdução à Proteção Avançada contra Ameaças do Banco de Dados SQL.

Diagrama mostrando o acesso do monitoramento de Detecção de Ameaças do SQL ao banco de dados SQL para um aplicativo Web de um invasor externo e uma pessoa mal-intencionada interna.

Proteção e criptografia de informações

Protocolo TLS (Criptografia em 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.

O Banco de Dados SQL, a Instância Gerenciada de SQL e o Azure Synapse Analytics impõem a criptografia (SSL/TLS) em todos os momentos 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 Criptografar ou TrustServerCertificate na cadeia de conexão.

Como melhor prática, recomendamos que na cadeia de conexão usada pelo aplicativo, você especifique uma conexão criptografada e não confie no certificado do servidor. Isso força seu aplicativo a verificar o certificado do servidor e, portanto, impede que o aplicativo fique vulnerável a ataques de tipo man-in-the-middle.

Por exemplo, ao usar o driver ADO.NET, isso é realizado por meio de 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 não podem usar o TLS por padrão ou contar com uma versão mais antiga do TLS (<1,2) para funcionar. Nesse caso, o servidor ainda permite que você se conecte ao seu banco de dados. No entanto, é recomendável 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, confira Considerações sobre TLS

Transparent Data Encryption (Criptografia em repouso)

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. 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 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. A rotação e a manutenção de certificados são gerenciadas pelo serviço e não requerem a intervenção do usuário. Os clientes que preferirem assumir controle das chaves de criptografia podem gerenciá-las no Azure Key Vault.

Gerenciamento de chaves com o Azure Key Vault

O suporte BYOK (Bring Your Own Key) para TDE (Transparent Data Encryption) permite que os clientes assumam a propriedade da rotação e gerenciamento de chaves usando o Azure Key Vault, sistema de gerenciamento de chaves externas 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 nem lido na memória. O Azure Key Vault fornece uma plataforma de gerenciamento central de chaves, utiliza HSMs (Módulos de Segurança de Hardware) rigidamente monitorados e permite a separação de funções entre o gerenciamento de chaves e dados para ajudar nos requisitos de conformidade de segurança.

Always Encrypted (Criptografia em uso)

Diagrama mostrando os conceitos básicos do recurso Always Encrypted. Um banco de dados SQL com um bloqueio é acessado somente por um aplicativo que contém uma chave.

Always Encrypted é um recurso criado 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 ou dados de conhecimento obrigatório). Isso inclui administradores de banco de dados ou outros usuários com privilégios que têm autorização para acessar o banco de dados para executar tarefas de gerenciamento, mas não têm a necessidade comercial de 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 o mascaramento de dados dinâmico. Um aplicativo de negócios envia dados para um banco de dados SQL que os mascara antes de enviá-los de volta ao aplicativo de negócios.

O mascaramento de dados dinâmicos limita a exposição de dados confidenciais mascarando-os 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. Funciona ao ocultar os dados confidenciais no conjunto de resultados de uma consulta em relação aos campos do banco de dados designado, 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.

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. A avaliação de vulnerabilidade pode ser acessada e gerenciada por meio do portal central do Microsoft Defender para SQL.

Descoberta e classificação de dados

A descoberta e a classificação de dados (atualmente em versão prévia) fornece recursos internos básicos no Banco de Dados SQL do Microsoft Azure e na Instância Gerenciada de SQL para descobrir, classificar e rotular os dados confidenciais em seus bancos de dados. Descobrir e classificar seus dados confidenciais mais importantes (negócios/financeiros, serviços de saúde, dados pessoais, etc.) pode desempenhar uma função essencial na estatura de proteção das informações organizacionais. Esse recurso pode funcionar como a 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 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 em relação a vários 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.

Próximas etapas

  • Para encontrar 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 de SQL, confira Gerenciar logons e contas de usuário.
  • Para uma discussão sobre auditoria de banco de dados, confira Auditoria.
  • Para uma discussão sobre detecção de ameaças, confira Detecção de ameaças.