Visão geral da segurança do banco de dados no Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Table

Este artigo aborda as melhores práticas de segurança de banco de dados e os principais recursos oferecidos pelo Azure Cosmos DB para ajudar você a prevenir, detectar e responder a violações de banco de dados.

Novidades na segurança do Azure Cosmos DB

A criptografia em repouso agora está disponível para documentos e backups armazenados no Azure Cosmos DB em todas as regiões do Azure. A criptografia em repouso é aplicada automaticamente para clientes novos e existentes nessas regiões. Não é necessário configurar nada. Você obtém a mesma latência, taxa de transferência, disponibilidade e funcionalidade excelentes de antes, com o benefício de saber que seus dados estão seguros e protegidos com a criptografia em repouso. Os dados armazenados em sua conta do Azure Cosmos DB são criptografados de forma automática e direta, com as chaves gerenciadas pela Microsoft usando chaves gerenciadas pelo serviço. Você pode optar por adicionar uma segunda camada de criptografia com chaves gerenciadas por você usando chaves gerenciadas pelo cliente ou CMK.

Como fazer para proteger meu banco de dados

A segurança dos dados é uma responsabilidade compartilhada por você, o cliente e seu provedor de banco de dados. Dependendo do provedor de banco de dados que você escolher, o tamanho da responsabilidade pode variar. Se você escolher uma solução local, precisará fornecer tudo, desde a proteção do ponto de extremidade até a segurança física do seu hardware, o que não é uma tarefa fácil. Se você escolher um provedor de banco de dados em nuvem PaaS, como o Azure Cosmos DB, sua área de interesse será consideravelmente reduzida. A imagem a seguir, retirada do white paper Responsabilidades compartilhadas para a computação em nuvem da Microsoft, mostra como sua responsabilidade diminui com um provedor de PaaS, como o Azure Cosmos DB.

Responsabilidades do cliente e do provedor de banco de dados

O diagrama anterior mostra componentes de segurança de nuvem de alto nível, mas com quais itens você precisa se preocupar especificamente para sua solução de banco de dados? E como você pode comparar as soluções?

Recomendamos a seguinte lista de verificação de requisitos para comparação dos sistemas de banco de dados:

  • Configurações de firewall e de segurança de rede
  • Autenticação de usuário e controles de usuário refinados
  • Capacidade de replicar dados globalmente para falhas regionais
  • Capacidade de failover de um data center para outro
  • Replicação de dados locais em um data center
  • Backup de dados automático
  • Restauração de dados excluídos de backups
  • Proteger e isolar dados confidenciais
  • Monitoramento de ataques
  • Resposta aos ataques
  • Capacidade de limitar os dados geograficamente a fim de aderir a restrições de controle de dados
  • Proteção física dos servidores em data centers protegidos
  • Certificações

E embora pareça óbvio, as falhas recentes em grande escala de banco de dados nos lembram da importância simples, mas fundamental, dos requisitos a seguir:

  • Servidores com patches que permanecem atualizados
  • Criptografia HTTPS por padrão/TLS
  • Contas administrativas com senhas fortes

Como o Azure Cosmos DB protege meu banco de dados

Vamos examinar novamente a lista anterior: quantos desses requisitos de segurança o Azure Cosmos DB fornece? Todos.

Vamos examinar cada um deles em detalhes.

Requisito de segurança Abordagem de segurança do Azure Cosmos DB
Segurança de rede O uso de um firewall de IP é a primeira camada de proteção de seu banco de dados. O Azure Cosmos DB dá suporte a controles de acesso baseado em IP controlados por política para suporte de firewall de entrada. Os controles de acesso baseados em IP são semelhantes às regras de firewall usadas pelos sistemas de banco de dados tradicionais. No entanto, eles são expandidos para que a conta do banco de dados do Azure Cosmos DB seja acessada somente a partir de um conjunto aprovado de computadores ou serviços de nuvem. Saiba mais no artigo Suporte ao firewall do Azure Cosmos DB.

O Azure Cosmos DB permite que você habilite um endereço IP específico (168.61.48.0), um intervalo de IPs (168.61.48.0/8) e combinações de IPs e intervalos.

Todas as solicitações provenientes de computadores fora dessa lista de permissões são bloqueadas pelo Azure Cosmos DB. As solicitações de computadores e de serviços de nuvem aprovados devem concluir o processo de autenticação para receber o controle de acesso aos recursos.

Você pode usar as marcas de serviço de rede virtual para obter o isolamento da rede e proteger os recursos do Azure Cosmos DB da Internet em geral. Use marcas de serviço em vez de endereços IP específicos ao criar regras de segurança. Especificando o nome da marca de serviço (por exemplo, AzureCosmosDB) no campo apropriado de origem ou destino de uma regra, você pode permitir ou negar o tráfego para o serviço correspondente.
Autorização O Azure Cosmos DB usa o HMAC (código de autenticação de mensagem baseado em hash) para autorização.

Cada solicitação recebe o hash usando a chave de conta segredo e o próximo hash codificado em base 64 é enviado com cada chamada ao Azure Cosmos DB. Para validar a solicitação, o serviço Azure Cosmos DB usa a chave segredo e as propriedades corretas para gerar um hash e, depois, compara o valor ao valor da solicitação. Se houver correspondência entre os dois valores, a operação será autorizada com sucesso e a solicitação será processada. Se não houver correspondência entre eles, haverá uma falha de autorização e a solicitação será rejeitada.

Use uma chave primária ou um token de recurso permitindo o acesso refinado a um recurso, como um documento.

Saiba mais em Protegendo o acesso aos recursos do Azure Cosmos DB.
Usuários e permissões Ao usar a chave primária para a conta, você pode criar recursos de usuário e de permissão por banco de dados. Um token de recurso está associado uma permissão em um banco de dados e determina se o usuário tem acesso (leitura/gravação, somente leitura ou nenhum acesso) a um recurso de aplicativo no banco de dados. Os recursos do aplicativo incluem o contêiner, documentos, anexos, procedimentos armazenados, gatilhos e UDFs. Em seguida, o token de recurso é usado durante a autenticação para fornecer ou negar acesso ao recurso.

Saiba mais em Protegendo o acesso aos recursos do Azure Cosmos DB.
Integração do Active Directory (controle de acesso baseado em função do Azure) Você também pode fornecer ou restringir o acesso à conta do Azure Cosmos DB, ao banco de dados, ao contêiner e às ofertas (taxa de transferência) usando o IAM (Controle de acesso) no portal do Azure. O IAM fornece controle de acesso baseado em função e integra-se ao Active Directory. Você pode usar funções internas ou personalizadas para indivíduos e grupos. Para obter mais informações, confira Integração do Active Directory.
Replicação global O Azure Cosmos DB oferece distribuição global turnkey, o que permite replicar os dados em qualquer um dos data centers do Azure em todo o mundo com de forma completa. A replicação global permite que você dimensione globalmente e forneça acesso de baixa latência aos seus dados no mundo inteiro.

No contexto de segurança, a replicação global garante a proteção dos dados contra falhas regionais.

Saiba mais em Distribuir dados globalmente.
Failovers regionais Se você replicou seus dados em mais de um data center, o Azure Cosmos DB reverterá automaticamente as operações, caso um data center regional fique offline. Crie uma lista de prioridade de regiões de failover usando as regiões nas quais seus dados são replicados.

Saiba mais em Failovers regionais no Azure Cosmos DB.
Replicação local Mesmo em um único data center, o Azure Cosmos DB replica automaticamente os dados para proporcionar alta disponibilidade, oferecendo a você a opção de níveis de consistência. Essa replicação garante SLA de disponibilidade de 99,99% para todas as contas de região única e todas as contas de várias regiões com consistência amena e 99,999% de disponibilidade de leitura em todas as contas de banco de dados de várias regiões.
Backups online automatizados Os bancos de dados do Azure Cosmos DB passam por backup regular e são armazenados em um repositório com redundância geográfica.

Saiba mais em Backup e restauração online automáticos com o Azure Cosmos DB.
Restaurar dados excluídos Os backups online automatizados podem ser usados para recuperar dados que você pode ter excluído acidentalmente até 30 dias após o evento.

Saiba mais em Backup e restauração online automáticos com o Azure Cosmos DB
Proteger e isolar dados confidenciais Todos os dados nas regiões listadas em Novidades agora serão criptografados em repouso.

Dados pessoais e outros dados confidenciais podem ser isolados em contêineres específicos, e o acesso de leitura/gravação ou somente leitura pode ser limitado a usuários específicos.
Monitorar ataques Com o log de auditoria e os logs de atividade, você pode monitorar as atividades normais e anormais de sua conta. Você pode exibir quais operações foram realizadas em seus recursos. Esses dados incluem quem iniciou a operação, quando a operação ocorreu, o status da operação e muito mais.
Responder a ataques Depois de contatar o Suporte do Azure para relatar um possível ataque, começa um processo de resposta ao incidente com cinco etapas. A meta do processo de cinco etapas é restaurar a segurança e as operações de serviço normais. O processo de cinco etapas restaura os serviços o mais rápido possível após a detecção de um problema e o início de uma investigação.

Saiba mais em Resposta da segurança do Microsoft Azure na nuvem.
Isolamento geográfico O Azure Cosmos DB garante a governança de dados em regiões soberanas (por exemplo, Alemanha, China, US Gov).
Instalações protegidas Os dados do Azure Cosmos DB são armazenados em SSDs, nos data centers protegidos do Azure.

Saiba mais em Datacenters globais da Microsoft
Criptografia HTTPS/SSL/TLS Todas as conexões com Azure Cosmos DB são compatíveis com HTTPS. O Azure Cosmos DB dá suporte a níveis TLS até 1.3 (incluído).
É possível impor um nível mínimo do TLS do lado do servidor. Para fazer isso, abra um tíquete de suporte do Azure.
Criptografia em repouso Todos os dados armazenados no Azure Cosmos DB são criptografados em repouso. Saiba mais em Criptografia em repouso do Azure Cosmos DB
Servidores com patches Por ser um banco de dados gerenciado, o Azure Cosmos DB elimina a necessidade de gerenciar e corrigir servidores, o que é feito automaticamente para você.
Contas administrativas com senhas fortes É difícil de acreditar que precisamos mencionar esse requisito, mas ao contrário de alguns de nossos concorrentes, é impossível ter uma conta administrativa sem senha no Azure Cosmos DB.

A segurança via autenticação baseada em segredo de TLS e HMAC está incorporada por padrão.
Certificações de proteção de dados e de segurança Para obter a lista mais atualizada de certificações, consulte Conformidade do Azure e o documento de conformidade do Azure mais recente com todas as certificações do Azure, incluindo a do Azure Cosmos DB.

A captura de tela a seguir mostra como você pode usar os logs de atividade e log de auditoria para monitorar sua conta: Logs de atividades do Azure Cosmos DB

Chaves primária/secundária

As chaves primária/secundária fornecem acesso a todos os recursos administrativos para a conta de banco de dados. Chaves primária/secundária:

  • Fornecem acesso a contas, a bancos de dados, a usuários e a permissões.
  • Não pode ser usado para fornecer acesso granular a contêineres e documentos.
  • São criadas durante a criação de uma conta.
  • Podem ser geradas novamente a qualquer momento.

Cada conta é formada por duas chaves: uma chave primária e uma chave secundária. A finalidade das chaves duplas é para que você possa gerar novamente, ou reverter as chaves, fornecendo acesso contínuo à sua conta e dados.

As chaves primária/secundária vêm em duas versões: leitura/gravação e somente leitura. As chaves somente leitura só permitem operações de leitura na conta, mas não fornecem acesso aos recursos de permissões de leitura.

Rotação e regeneração de chaves

O processo de rotação e regeneração de chave é simples. Primeiro, configure seu aplicativo para usar a chave primária ou secundária para acessar sua conta do Azure Cosmos DB. Em seguida, siga as etapas descritas abaixo. Para monitorar a conta quanto a atualizações de chave e regeneração de chave, confira o artigo Monitorar atualizações de chave com métricas e alertas.

Se seu aplicativo estiver usando a chave primária no momento

  1. Navegue até sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Chaves no menu à esquerda e, em seguida, selecione Regenerar a Chave Secundária nas reticências à direita da chave secundária.

    Captura de tela do portal do Azure mostrando como regenerar a chave secundária

  3. Valide se a nova chave secundária funciona corretamente em sua conta do Azure Cosmos DB. A regeneração de chaves pode demorar menos de um minuto ou até algumas horas, dependendo do tamanho da conta do Azure Cosmos DB.

  4. Substitua a chave primária pela chave secundária em seu aplicativo.

  5. Volte para o portal do Azure e dispare a regeneração da chave primária.

    Captura de tela do portal do Azure mostrando como regenerar a chave primária

Se seu aplicativo estiver usando a chave secundária no momento

  1. Navegue até sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Chaves no menu à esquerda e, em seguida, selecione Regenerar a Chave Primária nas reticências à direita da chave primária.

    Captura de tela do portal do Azure mostrando como regenerar a chave primária

  3. Valide se a nova chave primária funciona corretamente em sua conta do Azure Cosmos DB. A regeneração de chaves pode demorar menos de um minuto ou até algumas horas, dependendo do tamanho da conta do Azure Cosmos DB.

  4. Substitua a chave secundária pela chave primária em seu aplicativo.

  5. Volte ao portal do Azure e dispare a regeneração da chave secundária.

    Captura de tela do portal do Azure mostrando como regenerar a chave secundária

Acompanhar o status da regeneração da chave

Depois de girar ou regenerar uma chave, você pode acompanhar o status dela no log de atividades. Siga as seguintes etapas para acompanhar o status:

  1. Faça logon no portal do Azure e navegue até a sua conta do Azure Cosmos DB.

  2. Abra o painel Log de atividades e defina os seguintes filtros:

    • Defina o Tipo de recurso como Contas do Azure Cosmos DB.
    • Defina a Operação como Girar chaves.

    Status da regeneração de chaves do Log de atividades

  3. Você deve ver os eventos de regeneração de chaves junto aos seus status, a hora em que a operação foi emitida, os detalhes do usuário que iniciou a regeneração de chave. A operação de geração de chave é iniciada com o status Aceita, em seguida, mudando para Iniciada e, em seguida, para Bem-sucedida quando a operação é concluída.

Próximas etapas

Para saber mais sobre tokens de recursos e chaves primárias, confira Proteger o acesso aos dados do Azure Cosmos DB.

Para saber mais sobre o log de auditoria, confira Log de diagnósticos do Azure Cosmos DB.

Para saber mais sobre as certificações da Microsoft, confira a Central de Confiabilidade do Azure.