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

APLICA-SE AO: 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. Opcionalmente, você pode optar por adicionar uma segunda camada de criptografia com 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 hardware, o que não é uma tarefa fácil. Se você escolher um provedor de banco de dados de nuvem paaS (plataforma como serviço), como o Azure Cosmos DB, sua área de preocupação diminuirá consideravelmente. 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.

Screenshot that shows customer and database provider responsibilities.

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? Como você pode comparar soluções entre si?

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 fazer failover de um datacenter para outro
  • Replicação de dados local em um datacenter
  • 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 de servidores em datacenters protegidos
  • Certificações

Embora possa parecer óbvio, as recentes violações de banco de dados em larga escala nos lembram da importância simples, mas crítica dos seguintes requisitos:

  • 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 a lista anterior. Quantos desses requisitos de segurança o Azure Cosmos DB fornece? Todos.

Vamos explorar cada um 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 baseados em IP controlados por política para suporte ao 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. Para saber mais, confira o suporte ao firewall do Azure Cosmos DB.

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

O Azure Cosmos DB bloqueia todas as solicitações originadas de computadores fora dessa lista de permissões. 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 marcas de serviço de rede virtual para obter isolamento de rede e proteger seus recursos do Azure Cosmos DB da Internet geral. Use marcas de serviço em vez de endereços IP específicos ao criar regras de segurança. Ao especificar o nome da marca de serviço (por exemplo, AzureCosmosDB) no campo de origem ou destino apropriado 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 é hashada usando a chave de conta secreta e o hash codificado em base 64 subsequente é enviado com cada chamada para o Azure Cosmos DB. Para validar a solicitação, o Azure Cosmos DB usa a chave secreta correta e as propriedades para gerar um hash e, em seguida, compara o valor com o da solicitação. Se os dois valores corresponderem, a operação será autorizada com êxito 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.

Você pode usar uma chave primária ou um token de recurso, permitindo acesso refinado a um recurso como um documento.

Para saber mais, confira Acesso seguro aos recursos do Azure Cosmos DB.
Usuários e permissões Usando a chave primária da conta, você pode criar recursos de usuário e recursos 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 contêineres, 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.

Para saber mais, confira Acesso seguro 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, banco de dados, contêiner e ofertas do Azure Cosmos DB usando o IAM (taxa de transferência) 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 saber mais, confira integração do Active Directory.
Replicação global O Azure Cosmos DB oferece uma distribuição global turnkey, que permite replicar seus dados para qualquer um dos datacenters mundiais do Azure de maneira turnkey. 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.

Para saber mais, confira Distribuir dados globalmente.
Failovers regionais Se você tiver replicado seus dados em mais de um datacenter, o Azure Cosmos DB substituirá automaticamente suas operações se um datacenter regional ficar offline. Você pode criar uma lista priorizada de regiões de failover usando as regiões em que os dados são replicados.

Para saber mais, confira failovers regionais no Azure Cosmos DB.
Replicação local Mesmo em um único datacenter, o Azure Cosmos DB replica automaticamente os dados para alta disponibilidade, dando 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 são armazenados regularmente e armazenados em um repositório com redundância geográfica.

Para saber mais, confira backup e restauração online automáticos com o Azure Cosmos DB.
Restaurar dados excluídos Você pode usar os backups online automatizados para recuperar dados que podem ter excluído acidentalmente até cerca de 30 dias após o evento.

Para saber mais, confira 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 para contêineres específicos e leitura-gravação ou o acesso 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 entrar em contato com o suporte do Azure para relatar um possível ataque, um processo de resposta a incidentes de cinco etapas começa. A meta é restaurar a segurança e as operações normais de serviço. O processo restaura os serviços o mais rápido possível depois que um problema é detectado e uma investigação é iniciada.

Para saber mais, confira a resposta de segurança do Microsoft Azure na nuvem.
Isolamento geográfico O Azure Cosmos DB garante a governança de dados para regiões soberanas (por exemplo, Alemanha, China e Governo dos EUA).
Instalações protegidas Os dados no Azure Cosmos DB são armazenados em unidades de estado sólido nos datacenters protegidos do Azure.

Para saber mais, confira 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.2 (incluído).
É possível impor um nível mínimo de TLS no lado do servidor. Para fazer isso, consulte o guia Autoatendimento de imposição mínima de versão do TLS no Azure Cosmos DB.
Criptografia em repouso Todos os dados armazenados no Azure Cosmos DB são criptografados em repouso. Saiba mais na criptografia do Azure Cosmos DB em repouso.
Servidores com patches Como um banco de dados gerenciado, o Azure Cosmos DB elimina a necessidade de gerenciar e corrigir servidores porque ele é feito para você automaticamente.
Contas administrativas com senhas fortes É impossível ter uma conta administrativa sem senha no Azure Cosmos DB.

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

A captura de tela a seguir mostra como você pode usar logs de auditoria e logs de atividades para monitorar sua conta. Screenshot that shows activity logs for 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 consiste em duas chaves: uma chave primária e uma chave secundária. A finalidade das chaves duplas é para que você possa regenerar ou rolar 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 permitem operações de leitura na conta. Eles 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 na próxima seção. Para monitorar sua conta para atualizações de chave e regeneração de chave, consulte Monitorar atualizações de chave com métricas e alertas.

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

  1. Acesse sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Chaves no menu esquerdo e selecione Regenerar Chave Secundária nas reticências (...) à direita da chave secundária.

    Screenshot showing how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

  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.

    Screenshot showing how to regenerate the primary key in the Azure portal when used with the NoSQL API.

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

  1. Acesse sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Chaves no menu esquerdo e selecione Regenerar Chave Primária nas reticências (...) à direita da chave primária.

    Screenshot that shows how to regenerate the primary key in the Azure portal when used with the NoSQL API.

  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.

    Screenshot that shows how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

Acompanhar o status da regeneração da chave

Depois de girar ou regenerar uma chave, você poderá acompanhar seu status no log de atividades. Use as etapas a seguir para acompanhar o status.

  1. Entre no portal do Azure e acesse sua conta do Azure Cosmos DB.

  2. Selecione Chaves no menu à esquerda. Você verá a data de regeneração da última chave abaixo de cada chave.

    Screenshot that shows status of key regeneration from the activity log.

    Recomendamos regenerar as chaves pelo menos uma vez a cada 60 dias. Se sua última regeneração foi há mais de 60 dias, você verá um ícone de aviso. Além disso, você pode ver que sua chave não foi gravada. Se esse for o caso, sua conta foi criada antes de 18 de junho de 2022 e as datas não foram registradas. No entanto, você deve conseguir regenerar e ver sua nova data da última regeneração para a nova chave.

  3. Você deverá ver os principais eventos de regeneração junto com seu status, o tempo em que a operação foi emitida e os detalhes do usuário que iniciou a regeneração de chave. A operação de geração de chave inicia com o status Aceito. Ele é alterado para Iniciado e, em seguida, para Bem-sucedido quando a operação é concluída.

Próximas etapas