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 para proteger o nível de dados de uma aplicação que utiliza Azure SQL Database, Azure SQL Managed Instance e Azure Synapse Analytics. A estratégia de segurança descrita neste artigo segue a abordagem de defesa em profundidade em camadas, conforme mostrado no diagrama seguinte, e move-se de fora para dentro:

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

Segurança da rede

Azure SQL Database, Azure SQL Managed Instance e Azure Synapse Analytics fornecem um serviço de base de dados relacional para aplicações cloud e empresariais. Para ajudar a proteger os dados dos clientes, os firewalls impedem o acesso da rede ao servidor até que conceda explicitamente o acesso com base no endereço IP ou na origem do tráfego de rede Azure Virtual.

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

Observação

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

Perímetro de segurança da rede

Um perímetro de segurança de rede Azure cria limites lógicos de rede em torno dos seus recursos de plataforma como serviço (PaaS) que implementa fora das suas redes virtuais.

  • Um perímetro de segurança de rede Azure ajuda-o a controlar o acesso público à Base de Dados Azure SQL.
  • Controlar o acesso com um perímetro de segurança de rede Azure não se aplica ao Azure SQL Managed Instance.

Importante

A base de dados Azure SQL com perímetro de segurança de rede está atualmente em pré-visualização. As pré-visualizações são fornecidas sem um acordo de nível de serviço, e não é recomendado para cargas de trabalho em produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Autenticação

A autenticação é o processo de provar que o usuário é quem afirma ser. Azure SQL Database e SQL Managed Instance suportam autenticação com Microsoft Entra ID (anteriormente Azure Active Directory) e autenticação SQL. A instância gerenciada do SQL também oferece suporte a de autenticação do Windows para entidades do Microsoft Entra.

  • Autenticação do Microsoft Entra:

    A autenticação Microsoft Entra é um mecanismo para se ligar à Azure SQL Database, Azure SQL Managed Instance e Azure Synapse Analytics utilizando identidades no 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. Esta funcionalidade pode ajudar a eliminar o uso de segredos e palavras-passe.

    Para usar autenticação Microsoft Entra com a base de dados SQL, crie um administrador de servidor chamado administrador Microsoft Entra. 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 ativar a autenticação do Windows para os princípios Microsoft Entra, transforme o seu tenant Microsoft Entra num domínio Kerberos independente e crie 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.

  • autenticação SQL:

    A autenticação SQL refere-se à autenticação de um utilizador ao ligar-se à Azure SQL Database ou Azure SQL Managed Instance, utilizando um nome de utilizador e palavra-passe. Deve especificar um login de administrador do servidor com nome de utilizador e palavra-passe ao criar o servidor. 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, o administrador do servidor pode criar outros logins e utilizadores SQL, que permitem que os utilizadores se liguem usando um nome de utilizador e palavra-passe.

Autorização e gestão de acessos

Autorização refere-se ao controlo do acesso à gestão de servidores e bases de dados, bem como a dados, recursos e comandos dentro de uma base de dados. Atribui permissões a um utilizador dentro de uma base de dados no Azure SQL Database ou Azure SQL Managed Instance. As atribuições de funções da sua conta de utilizador do portal controlam a gestão de bases de dados e servidores dentro do Azure. Para obter mais informações, consulte Controle de acesso baseado em função do Azure no portal do Azure.

Gerir permissões adicionando contas de utilizador aos papéis da base de dados e atribuindo permissões ao nível da base de dados a esses papéis. Alternativamente, conceda certas permissões ao nível do objeto a um utilizador individual. Para obter mais informações, consulte Logins e usuários.

Além disso, o Azure SQL Managed Instance fornece funções ao nível do servidor (fixas ou personalizadas) para gerir permissões para uma instância. Os papéis de nível de servidor têm um âmbito de permissões em todo o servidor. Podes adicionar princípios ao nível do servidor em funções ao nível do servidor.

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 é membro da função incorporada db_owner, que tem permissões extensas e só deve ser concedida a alguns utilizadores com funções administrativas. Para limitar ainda mais o âmbito do que um utilizador pode fazer, use o EXECUTE AS 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

A Segurança ao Nível da Linha permite controlar o acesso a linhas numa tabela de base de dados com base nas características do utilizador que executa uma consulta (por exemplo, filiação a um grupo ou contexto de execução). Utilize Row-Level Security para implementar conceitos personalizados de segurança baseados em Labels. 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 dos usuários por meio de um aplicativo cliente.

Proteção contra ameaças

Azure SQL Database e SQL Managed Instance protegem os dados dos clientes ao fornecer capacidades 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-lhe monitorizar as atividades em curso na base de dados, bem como analisar e investigar atividades históricas para identificar potenciais ameaças ou suspeitas de abuso e violações de segurança. Para mais informações, consulte Começar com Auditoria de Banco de Dados SQL .

Advanced Threat Protection

A Advanced Threat Protection analisa os seus registos para detetar comportamentos invulgares e tentativas potencialmente prejudiciais de aceder ou explorar bases de dados. Cria alertas para atividades suspeitas como injeção SQL, potencial infiltração de dados e ataques de força bruta, ou para anomalias nos padrões de acesso para detetar escalonamentos de privilégios e uso de credenciais violadas. Pode visualizar alertas do Microsoft Defender for Cloud, onde são fornecidos os detalhes das atividades suspeitas e são dadas recomendações para investigação adicional, bem como ações para mitigar a ameaça. Pode ativar a Proteção Avançada contra Ameaças por servidor mediante uma taxa adicional. Para obter mais informações, consulte Introdução à Proteção Avançada contra Ameaças do Banco de Dados SQL.

Diagrama que mostra a Deteção de Ameaças SQL monitorizando o acesso ao banco de dados SQL para uma aplicação web de um atacante externo e colaborador mal-intencionado.

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

Segurança da Camada de Transporte (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 Transport Layer Security (TLS). Estes serviços aplicam sempre ligações encriptadas TLS para garantir que todos os dados são encriptados durante o trânsito entre o cliente e o servidor.

Especificamente, SQL Database, SQL Managed Instance e Azure Synapse Analytics definem o flag ForceEncryption de configuração para Yes. Os clientes e controladores devem suportar ligações cifradas para se conectarem a estes serviços. A versão mais baixa do protocolo TDS que consegue ligar é a TDS 7.1.

Como boa prática, se tiver drivers SQL compatíveis com TDS 8.0, use encriptação de ligação rigorosa.

Se os teus drivers não suportam TDS 8.0, usa encriptação obrigatória e não confies 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 ligação que recebes do portal Azure já está configurada com estes valores.

Evite definir o parâmetro TrustServerCertificate para True uso em produção. TrustServerCertificate=True é demasiado permissivo e não protege contra ataques de homem no meio. 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 ligar à sua instância contoso-instance.123456.database.windows.net gerida através de um nome contoso-instance.contoso.comde domínio personalizado , defina os parâmetros Encrypt=True de ligação e defina HostNameInCertificate=contoso-instance.123456.database.windows.net. Esta configuração permite que o driver valide o certificado do servidor contra um nome de domínio endpoint local VNet esperado.

Importante

Alguns drivers de outros fabricantes podem não usar TLS por padrão ou podem depender de uma versão mais antiga do TLS (anterior à versão 1.2) para funcionar. Neste caso, o servidor ainda permite que se ligue à sua base de dados. No entanto, avalie os riscos de segurança de permitir que esses drivers e aplicações se liguem à base de dados SQL, especialmente se armazenar dados sensíveis.

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

Encriptação de dados transparente (encriptação em repouso) com chaves geridas por serviços

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. O TDE encripta toda a base de dados usando um algoritmo de encriptação AES, que não exige que os programadores de aplicações façam alterações às aplicações 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. O serviço gere a manutenção e rotação dos certificados e não requer qualquer intervenção do utilizador. Se preferires assumir o controlo das chaves de encriptação, podes gerir as chaves no Azure Key Vault.

Encriptação de dados transparente (encriptação em repouso) com chaves geridas pelo cliente

Se precisar de maior controlo sobre as chaves de encriptação, a encriptação de dados transparentes (TDE) suporta chaves geridas pelo cliente (CMK). Esta CMK está associada ao servidor lógico e envolve as chaves de encriptação da base de dados para todas as bases de dados dentro desse servidor. Em alternativa, pode configurar um CMK ao nível individual da base de dados. Ao gerir o CMK, pode controlar a rotação de chaves, revogação e auditoria, o que é frequentemente necessário para políticas de conformidade ou de segurança rigorosas.

Sempre Criptografado e Sempre Criptografado com enclaves seguros (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.

Sempre Encriptado e Sempre Encriptado com enclaves seguros são funcionalidades concebidas para proteger dados sensíveis armazenados em colunas específicas da base de dados contra o acesso (por exemplo, números de cartão de crédito, números de identificação nacionais/regionais, ou dados de necessidade de saber ). Esta proteção inclui administradores de bases de dados ou outros utilizadores privilegiados autorizados a aceder à base de dados para realizar tarefas de gestão, mas que não têm necessidade de aceder aos dados específicos nas colunas encriptadas. 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 a mostrar o mascaramento dinâmico dos dados. Uma aplicação empresarial envia dados para uma base de dados SQL que os mascara antes de os enviar de volta para a aplicação empresarial.

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. 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.

Ledger

Ledger no Azure SQL Database e SQL Managed Instance é uma funcionalidade que fornece provas criptográficas da integridade dos dados. Com o livro de registo, tens capacidades de inviolação para os teus dados. Você pode atestar criptograficamente a outras partes, como auditores ou outras partes comerciais, que seus dados não foram adulterados.

O Ledger utiliza tecnologia inviolável para registar alterações na base de dados num registo imutável, garantindo que quaisquer modificações não autorizadas possam ser detetadas. Esta funcionalidade é particularmente útil para cenários que exigem conformidade regulatória, auditabilidade e confiança entre múltiplas partes. Ao ativar o livro de registo, pode verificar a integridade dos seus dados, reduzindo o risco de fraude ou manipulação de dados.

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. Pode aceder e gerir a avaliação de vulnerabilidades através do portal central Microsoft Defender for SQL.

Descoberta e classificação de dados

A descoberta e classificação de dados fornece capacidades básicas integradas no Azure SQL Database e SQL Managed Instance para descobrir, classificar e rotular os dados sensíveis nas suas bases de dados. Descobrir e classificar os seus dados mais sensíveis (empresariais, financeiros, de saúde, dados pessoais e outros) desempenha um papel fundamental na reputação da sua proteção de informação organizacional. Serve 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.
  • 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

Para além das funcionalidades e funcionalidades que ajudam a sua aplicação a cumprir vários requisitos de segurança, a Azure SQL Database também participa em auditorias regulares. Foi certificado segundo várias normas 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.