Uma visão geral dos recursos de segurança do Banco de Dados SQL do AzureAn overview of Azure SQL Database security capabilities

Este artigo apresenta os conceitos básicos da proteção da camada de dados de um aplicativo que usa o Banco de Dados SQL do Azure.This article outlines the basics of securing the data tier of an application using Azure SQL Database. 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:The security strategy described follows the layered defense-in-depth approach as shown in the picture below, and moves from the outside in:

sql-security-layer.png

Segurança de redeNetwork security

O Banco de Dados SQL do Microsoft Azure fornece um serviço de banco de dados relacional para aplicativos na nuvem e empresariais.Microsoft Azure SQL Database provides a relational database service for cloud and enterprise applications. Para ajudar a proteger os dados do cliente, os firewalls impedem o acesso de rede ao servidor de banco de dados até que ele seja concedido explicitamente com base no endereço IP ou na origem do tráfego de rede virtual do Azure.To help protect customer data, firewalls prevent network access to the database server until access is explicitly granted based on IP address or Azure Virtual network traffic origin.

Regras de firewall de IPIP firewall rules

As regras de firewall de IP permitem acesso a bancos de dados com base no endereço IP de origem de cada solicitação.IP firewall rules grant access to databases based on the originating IP address of each request. Para saber mais, confira Overview of Azure SQL Database and SQL Data Warehouse firewall rules (Visão geral de regras de firewall do Banco de Dados SQL do Azure e do SQL Data Warehouse).For more information, see Overview of Azure SQL Database and SQL Data Warehouse firewall rules.

Regras de firewall de rede virtualVirtual network firewall rules

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.Virtual network service endpoints extend your virtual network connectivity over the Azure backbone and enable Azure SQL Database to identify the virtual network subnet that traffic originates from. 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.To allow traffic to reach Azure SQL Database, use the SQL service tags to allow outbound traffic through Network Security Groups.

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.Virtual network rules enable Azure SQL Database to only accept communications that are sent from selected subnets inside a virtual network.

Observação

O controle do acesso com regras de firewall não se aplica a uma instância gerenciada.Controlling access with firewall rules does not apply to a managed instance. Para saber mais sobre a configuração de rede necessária, confira conectar-se a uma instância gerenciadaFor more information about the networking configuration needed, see connecting to a managed instance

gerenciamento de acessoAccess management

Importante

O gerenciamento de bancos de dados e de servidores de banco de dados no Azure é controlado por atribuições de função da sua conta de usuário do portal.Managing databases and database servers within Azure is controlled by your portal user account's role assignments. Para saber mais sobre esse artigo, confira Controle de acesso baseado em função no Portal do Azure.For more information on this article, see Role-based access control in Azure portal.

AuthenticationAuthentication

A autenticação é o processo de provar que o usuário é quem diz ser.Authentication is the process of proving the user is who they claim to be. O Banco de Dados SQL do Azure dá suporte a dois tipos de autenticação:Azure SQL Database supports two types of authentication:

  • Autenticação do SQL:SQL authentication:

    A autenticação do banco de dados SQL refere-se à autenticação de um usuário ao se conectar ao Banco de Dados SQL do Azure usando nome de usuário e senha.SQL database authentication refers to the authentication of a user when connecting to Azure SQL Database using username and password. Durante a criação do servidor de banco de dados do banco de dados, o logon “Administrador do servidor” com um nome de usuário e senha deve ser especificado.During the database server creation for the database, a "Server admin" login with a username and password must be specified. Usando essas credenciais, um “administrador do servidor” pode autenticar-se em qualquer banco de dados nesse servidor de banco de dados como o proprietário do banco de dados.Using these credentials, a “server admin” can authenticate to any database on that database server as the database owner. 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.After that, additional SQL logins and users can be created by the server admin, which enable users to connect using username and password.

  • Autenticação do Azure Active Directory:Azure Active Directory authentication:

    A autenticação do Azure Active Directory é um mecanismo de conexão com o Banco de Dados SQL do Azure e o SQL Data Warehouse usando identidades no Azure AD (Azure Active Directory).Azure Active Directory authentication is a mechanism of connecting to Azure SQL Database and SQL Data Warehouse by using identities in Azure Active Directory (Azure AD). 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 da Microsoft em uma única localização central.Azure AD authentication allows administrators to centrally manage the identities and permissions of database users along with other Microsoft services in one central location. Isso inclui a minimização do armazenamento de senha e habilita políticas centralizadas de rotação de senha.This includes the minimization of password storage and enables centralized password rotation policies.

    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.A server admin called the Active Directory administrator must be created to use Azure AD authentication with SQL Database. 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).For more information, see Connecting to SQL Database By Using Azure Active Directory Authentication. A autenticação do Azure AD dá suporte a contas gerenciadas e federadas.Azure AD authentication supports both managed and federated accounts. As contas federadas dão suporte a grupos e usuários do Windows para um domínio de cliente federado com o Azure AD.The federated accounts support Windows users and groups for a customer domain federated with 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.Additional Azure AD authentication options available are Active Directory Universal Authentication for SQL Server Management Studio connections including Multi-Factor Authentication and Conditional Access.

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.Managing databases and servers within Azure is controlled by your portal user account's role assignments. Para saber mais sobre esse artigo, confira Controle de acesso baseado em função no Portal do Azure.For more information on this article, see Role-based access control in Azure portal. O controle do acesso com regras de firewall não se aplica a uma instância gerenciada.Controlling access with firewall rules does not apply to a managed instance. 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.Please see the following article on connecting to a managed instance for more information about the networking configuration needed.

A autorização refere-se às permissões atribuídas a um usuário em um Banco de Dados SQL do Azure e determina o que o usuário tem permissão para fazer.Authorization refers to the permissions assigned to a user within an Azure SQL Database, and determines what the user is allowed to do. As permissões são controladas pela adição de contas de usuário a funções de banco de dados que definem permissões de nível de banco de dados ou concessão ao usuário de determinadas permissões de nível de objeto.Permissions are controlled by adding user accounts to database roles that define database-level permissions or granting the user certain object-level permissions. Para saber mais, confira Logins and users (Logons e usuários)For more information, see Logins and users

Como melhor prática, adicione usuários à função com os privilégios mínimos necessários para fazer sua função de trabalho.As a best practice, add users to the role with the least privileges required to do their job function. A conta do administrador do servidor é um membro da função db_owner, que tem permissões abrangentes e deve ser concedida aos usuários com cuidado.The server admin account is a member of the db_owner role, which has extensive permissions, and should be granted to users cautiously. Ao usar aplicativos com o Banco de Dados SQL do Azure, use Funções de Aplicativo com permissões limitadas.When using applications with Azure SQL Database, use Application Roles with limited permissions. Isso garante que o aplicativo que se conecta ao banco de dados tem os privilégios mínimos exigidos pelo aplicativo.This ensures that the application connecting to the database has the least privileges needed by the application.

Segurança em nível de linhaRow-level security

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 está executando uma consulta (por exemplo, associação ao grupo ou contexto de execução).Row-Level Security enables customers to control access to rows in a database table based on the characteristics of the user executing a query (for example, group membership or execution context). Para saber mais, confira Segurança em nível de linha.For more information, see Row-Level security.

azure-database-rls.png

Este método de autenticação usa um nome de usuário e senha.This authentication method uses a username and password.

Para obter uma visão geral de permissões no Banco de Dados SQL do Azure, confira Logins and users (Logons e usuários)For an overview of permissions in Azure SQL Database, see Logins and users

Proteção contra ameaçasThreat protection

O Banco de Dados SQL protege os dados do cliente fornecendo funcionalidades de auditoria e de detecção de ameaças.SQL Database secures customer data by providing auditing and threat detection capabilities.

Auditoria do SQL no Azure Monitor logs e Hubs de eventosSQL auditing in Azure Monitor logs and Event Hubs

A Auditoria do Banco de Dados 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.SQL Database auditing tracks database activities and helps to maintain compliance with security standards by recording database events to an audit log in a customer-owned Azure storage account. 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.Auditing allows users to monitor ongoing database activities, as well as analyze and investigate historical activity to identify potential threats or suspected abuse and security violations. Para saber mais, confira Introdução à Auditoria do Banco de Dados SQL.For more information, see Get started with SQL Database Auditing.

Proteção Avançada contra AmeaçasAdvanced Threat Protection

Proteção avançada contra ameaças está analisando os logs do SQL Server para detectar comportamento incomuns e potencialmente prejudicial tenta acessar ou explorar bancos de dados.Advanced Threat Protection is analyzing your SQL Server logs to detect unusual behavior and potentially harmful attempts to access or exploit databases. Alertas são criados para atividades suspeitas, como ataques de força bruta, infiltração de dados potencial e injeção SQL ou anomalias no acesso de usam padrões para capturar os escalonamentos de privilégio e credenciais de "violado".Alerts are created for suspicious activities such as SQL injection, potential data infiltration, and brute force attacks or for anomalies in access patterns to catch privilege escalations and breached credentials use. Alertas são exibidos a partir de Central de segurança do Azure, onde os detalhes de atividades suspeitas são fornecidos e recomendações para ainda mais a investigação fornecida junto com ações para atenuar a ameaça.Alerts are viewed from the Azure Security Center, where the details of the suspicious activities are provided and recommendations for further investigation given along with actions to mitigate the threat. Proteção avançada contra ameaças podem ser habilitada por servidor para uma taxa adicional.Advanced Threat Protection can be enabled per server for an additional fee. Para obter mais informações, consulte Introdução ao SQL banco de dados do Advanced Threat Protection.For more information, see Get started with SQL Database Advanced Threat Protection.

azure-database-td.jpg

Proteção e criptografia de informaçõesInformation protection and encryption

Protocolo TLS (Criptografia em trânsito)Transport Layer Security TLS (Encryption-in-transit)

O Banco de Dados SQL protege os dados do cliente por meio da criptografia de dados em movimento com o protocolo TLS.SQL Database secures customer data by encrypting data in motion with Transport Layer Security.

SQL Server impõe a criptografia (SSL/TLS) em todos os momentos para todas as conexões.Sql Server enforces encryption (SSL/TLS) at all times for all connections. Isso garante que todos os dados são criptografados "em trânsito" entre o cliente e servidor, independentemente da configuração da Encrypt ou TrustServerCertificate na cadeia de conexão.This ensures all data is encrypted "in transit" between the client and server irrespective of the setting of Encrypt or TrustServerCertificate in the connection string.

Como prática recomendada, é recomendável que, na conexão do seu aplicativo, de cadeia de caracteres você especificar uma conexão criptografada e não confiar no certificado do servidor.As a best practice, recommend that in your application's connection string you specify an encrypted connection and not trust the server certificate. Isso força o seu aplicativo para verificar o certificado do servidor e, portanto, impede que seu aplicativo seja vulnerável as ataques do tipo intermediária de.This forces the your application to verify the server certificate and thus prevents your application from being vulnerable to man in the middle type attacks .

Por exemplo, ao usar o driver do ADO.NET, isso é feito por meio Encrypt = True e TrustServerCertificate = False. Se você obtiver sua cadeia de caracteres de conexão do portal do Azure, ele terá as configurações corretas.For example when using the ADO.NET driver this is accomplished via Encrypt=True and TrustServerCertificate=False.If you obtain your connection string from the Azure portal, it will have the correct settings.

Importante

Observe que alguns drivers não sejam da Microsoft não podem usar o TLS por padrão ou contam com uma versão mais antiga do TLS (< 1.2) para funcionar.Note that some non-Microsoft drivers may not use TLS by default or rely on an older version of TLS (<1.2) in order to function. Nesse caso, o SQL Server ainda permite que você se conecte ao seu banco de dados.In this case SQL Server still allows you to connect to your database. No entanto, é recomendável que você avalie os riscos de segurança de permitir tais drivers e aplicativos para se conectar ao banco de dados SQL, especialmente se você armazenar dados confidenciais.However, we recommend that you evaluate the security risks of allowing such drivers and application to connect to SQL Database, especially if you store sensitive data.

Para obter mais informações sobre TLS e conectividade, consulte considerações de TLSFor further information about TLS and connectivity, see TLS considerations

Transparent Data Encryption (Criptografia em repouso)Transparent Data Encryption (Encryption-at-rest)

A TDE (Transparent Data Encryption) para Banco de Dados SQL do Azure adiciona uma camada de segurança para ajudar a proteger os dados em repouso contra acesso não autorizado ou offline para backups ou arquivos brutos.Transparent Data Encryption (TDE) for Azure SQL Database adds a layer of security to help protect data at rest from unauthorized or offline access to raw files or 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.Common scenarios include datacenter theft or unsecured disposal of hardware or media such as disk drives and backup tapes. 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. TDE encrypts the entire database using an AES encryption algorithm, which doesn’t require application developers to make any changes to existing applications.

No Azure, todos os bancos de dados SQL recém-criados são criptografados por padrão e a chave de criptografia de banco de dados é protegida por um certificado de servidor interno.In Azure, all newly created SQL databases are encrypted by default and the database encryption key is protected by a built-in server certificate. 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.Certificate maintenance and rotation are managed by the service and requires no input from the user. Os clientes que preferirem assumir controle das chaves de criptografia podem gerenciá-las no Azure Key Vault.Customers who prefer to take control of the encryption keys can manage the keys in Azure Key Vault.

Gerenciamento de chaves com o Azure Key VaultKey management with 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.Bring Your Own Key (BYOK) support for Transparent Data Encryption (TDE) allows customers to take ownership of key management and rotation using Azure Key Vault, Azure’s cloud-based external key management system. 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.If the database's access to the key vault is revoked, a database cannot be decrypted and read into memory. 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.Azure Key Vault provides a central key management platform, leverages tightly monitored hardware security modules (HSMs), and enables separation of duties between management of keys and data to help meet security compliance requirements.

Always Encrypted (Criptografia em uso)Always Encrypted (Encryption-in-use)

azure-database-ae.png

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).Always Encrypted is a feature designed to protect sensitive data stored in specific database columns from access (for example, credit card numbers, national identification numbers, or data on a need to know basis). 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.This includes database administrators or other privileged users who are authorized to access the database to perform management tasks, but have no business need to access the particular data in the encrypted columns. 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.The data is always encrypted, which means the encrypted data is decrypted only for processing by client applications with access to the encryption key. A chave de criptografia nunca é exposta ao SQL e pode ser armazenada no Repositório de Certificados do Windows ou no Azure Key Vault.The encryption key is never exposed to SQL and can be stored either in the Windows Certificate Store or in Azure Key Vault.

MascaramentoMasking

azure-database-ddm.png

Mascaramento de dados dinâmicosDynamic data masking

A máscara de dados dinâmicos do Banco de Dados SQL limita a exposição de dados confidenciais através do mascaramento dos dados para usuários sem privilégios.SQL Database dynamic data masking limits sensitive data exposure by masking it to non-privileged users. O mascaramento de dados dinâmicos detecta de forma automática os dados potencialmente confidenciais no Banco de Dados SQL do Azure e fornece recomendações viáveis para mascarar esses campos, com impacto mínimo sobre a camada de aplicativo.Dynamic data masking automatically discovers potentially sensitive data in Azure SQL Database and provides actionable recommendations to mask these fields, with minimal impact on the application layer. 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.It works by obfuscating the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed. Para obter mais informações, consulte Introdução à máscara de dados dinâmicos do Banco de Dados SQL.For more information, see Get started with SQL Database dynamic data masking.

Mascaramento de dados estáticosStatic data masking

O mascaramento de dados estáticos é uma ferramenta de cliente disponível no SQL Server Management Studio 18.0 versão prévia 5 e superior.Static Data Masking is a client-side tool available in SQL Server Management Studio 18.0 preview 5 and higher. O mascaramento de dados estáticos permite aos usuários criar uma cópia de um banco de dados no qual os dados nas colunas selecionadas foram mascarados permanentemente.Static Data Masking allows users to create a copy of a database where the data in selected columns has been permanently masked. As funções de mascaramento disponíveis incluem o mascaramento NULL, mascaramento de valor único, ordem aleatória e máscara de ordem aleatória de grupo e mascaramento composto de cadeia de caracteres.The masking functions available include NULL masking, single value masking, shuffle and group shuffle masking, and string composite masking. Com a cópia mascarada do banco de dados, as organizações são capazes de separar os ambientes de produção e de teste por meio do compartilhamento da cópia mascarada.With the masked copy of the database, organizations are able to separate production and test environments by sharing the masked copy. Os dados confidenciais são suficientemente protegidos e todas as outras características do banco de dados foram mantidas.The sensitive data is sufficiently protected and all other database characteristics have been maintained. O mascaramento de bancos de dados é recomendado quando é necessário que terceiros tenham acesso a bancos de dados.Masking databases is recommended where third-party access to databases is required.

Gerenciamento de segurançaSecurity management

Avaliação de vulnerabilidadeVulnerability assessment

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.Vulnerability assessment is an easy to configure service that can discover, track, and help remediate potential database vulnerabilities with the goal to proactively improve overall database security. A avaliação de vulnerabilidade (VA) faz parte da oferta de segurança de dados avançada (ADS), um pacote unificado para funcionalidades avançadas de segurança do SQL.Vulnerability assessment (VA) is part of the advanced data security (ADS) offering, which is a unified package for advanced SQL security capabilities. A avaliação de vulnerabilidade pode ser acessada e gerenciada por meio do portal central da ADS do SQL.Vulnerability assessment can be accessed and managed via the central SQL ADS portal.

Descoberta de dados e classificaçãoData discovery & classification

A descoberta e classificação de dados (atualmente em versão prévia) fornece recursos internos avançados no Banco de Dados SQL do Azure para descobrir, classificar, rotular e proteger os dados confidenciais em seus bancos de dados.Data discovery & classification (currently in preview) provides advanced capabilities built into Azure SQL Database for discovering, classifying, labeling, and protecting the sensitive data in your databases. 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.Discovering and classifying your utmost sensitive data (business/financial, healthcare, personal data, etc.) can play a pivotal role in your organizational Information protection stature. Pode servir como infraestrutura para:It can serve as infrastructure for:

  • Vários cenários de segurança, como monitoramento (auditoria) e alertas sobre acesso anômalo a dados confidenciais.Various security scenarios, such as monitoring (auditing) and alerting on anomalous access to sensitive data.
  • Controlando o acesso e fortalecendo a segurança de bancos de dados que contêm dados altamente confidenciais.Controlling access to, and hardening the security of, databases containing highly sensitive data.
  • Ajudar a cumprir os padrões de privacidade de dados e os requisitos de conformidade a normas.Helping meet data privacy standards and regulatory compliance requirements.

Para obter mais informações, confira Introdução à descoberta e classificação de dados.For more information, see Get started with data discovery & classification.

ConformidadeCompliance

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.In addition to the above features and functionality that can help your application meet various security requirements, Azure SQL Database also participates in regular audits, and has been certified against a number of compliance standards. Para obter mais informações, consulte o Microsoft Azure Trust Center onde você pode encontrar a lista mais atual das certificações de conformidade do banco de dados SQL.For more information, see the Microsoft Azure Trust Center where you can find the most current list of SQL Database compliance certifications.

Próximas etapasNext steps