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

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

Este artigo discute as melhores práticas de segurança da base de dados e as principais funcionalidades disponibilizadas pelo Azure Cosmos DB para o ajudar a prevenir, detetar e responder a falhas de segurança da base de dados.

O que há de novo 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 há necessidade de configurar nada. Você obtém a mesma latência, taxa de transferência, disponibilidade e funcionalidade de antes, com o benefício de saber que seus dados estão seguros e protegidos com criptografia em repouso. Os dados armazenados em sua conta do Azure Cosmos DB são automaticamente e perfeitamente criptografados com chaves gerenciadas pela Microsoft usando chaves gerenciadas por serviço. Opcionalmente, você pode optar por adicionar uma segunda camada de criptografia com chaves gerenciadas pelo cliente usando chaves gerenciadas pelo cliente ou CMK.

Como posso proteger a minha base de dados?

A segurança dos dados é uma responsabilidade compartilhada entre você, o cliente e seu provedor de banco de dados. Dependendo do provedor de banco de dados escolhido, a quantidade de responsabilidade que você carrega pode variar. Se você escolher uma solução local, precisará fornecer tudo, desde proteção de ponto final até segurança física do seu hardware, o que não é tarefa fácil. Se você escolher um provedor de banco de dados em nuvem de plataforma como serviço (PaaS), como o Azure Cosmos DB, sua área de preocupação diminuirá consideravelmente. A imagem a seguir, emprestada do white paper Responsabilidades compartilhadas para 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 na nuvem de alto nível, mas com quais itens você precisa se preocupar especificamente para sua solução de banco de dados? Como comparar soluções entre si?

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

  • Configurações de firewall e 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 datacenter para outro
  • Replicação local de dados em um datacenter
  • Backups automáticos de dados
  • Restauração de dados excluídos de backups
  • Proteja e isole dados confidenciais
  • Monitorização de ataques
  • Resposta a ataques
  • Capacidade de cercar geograficamente os dados para aderir às restrições de governança de dados
  • Proteção física de servidores em datacenters protegidos
  • Certificações

Embora possa parecer óbvio, as recentes violações de bases de dados em grande escala recordam-nos a importância simples, mas crítica, dos seguintes requisitos:

  • Servidores corrigidos que são mantidos atualizados
  • Criptografia HTTPS por padrão/TLS
  • Contas administrativas com palavras-passe fortes

Como o Azure Cosmos DB protege meu banco de dados?

Vejamos a lista anterior. Quantos desses requisitos de segurança o Azure Cosmos DB fornece? Cada um.

Vamos explorar cada um em detalhes.

Requisito de segurança Abordagem de segurança do Azure Cosmos DB
Segurança da rede Usar um firewall IP é a primeira camada de proteção para proteger seu banco de dados. O Azure Cosmos DB dá suporte a controles de acesso baseados em IP orientados por políticas para suporte a 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 uma conta de banco de dados do Azure Cosmos DB só seja acessível a partir de um conjunto aprovado de máquinas ou serviços de nuvem. Para saber mais, consulte 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 máquinas fora dessa lista de permissões. As solicitações de máquinas aprovadas e serviços em nuvem devem concluir o processo de autenticação para receber 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. Utilize etiquetas de serviço em vez de endereços IP específicos quando criar regras de segurança. Ao especificar o nome da etiqueta de serviço (por exemplo, ) no campo de origem ou destino apropriado de uma regra, AzureCosmosDBvocê pode permitir ou negar o tráfego para o serviço correspondente.
Autorização O Azure Cosmos DB utiliza o HMAC (Hash-based Message Authentication Code) para a autorização.

Cada solicitação é colocada em hash 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 e as propriedades corretas para gerar um hash e, em seguida, compara o valor com o da solicitação. Se os dois valores corresponderem, a operação é autorizada com êxito e a solicitação é processada. Se eles não corresponderem, há uma falha de autorização e a solicitação é 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, consulte Acesso seguro aos recursos do Azure Cosmos DB.
Utilizadores e permissões Usando a chave primária para a conta, você pode criar recursos de usuário e recursos de permissão por banco de dados. Um token de recurso é associado a uma permissão em um banco de dados e determina se o usuário tem acesso (leitura-gravação, somente leitura ou sem acesso) a um recurso de aplicativo no banco de dados. Os recursos do aplicativo incluem contêineres, documentos, anexos, procedimentos armazenados, gatilhos e UDFs. O token de recurso é usado durante a autenticação para fornecer ou negar acesso ao recurso.

Para saber mais, consulte Acesso seguro aos recursos do Azure Cosmos DB.
Integração com o Ative 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 (taxa de transferência) do Azure Cosmos DB usando o controle de acesso (IAM) no portal do Azure. O IAM fornece controle de acesso baseado em função e integra-se ao Ative Directory. Você pode usar funções internas ou funções personalizadas para indivíduos e grupos. Para saber mais, consulte Integração com o Ative Directory.
Replicação global O Azure Cosmos DB oferece distribuição global chave-na-mão, que lhe permite replicar os seus dados para qualquer um dos centros de dados mundiais do Azure de uma forma chave-na-mão. A replicação global permite dimensionar globalmente e fornecer acesso de baixa latência aos seus dados em todo o mundo.

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

Para saber mais, consulte Distribuir dados globalmente.
Ativações pós-falha 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 nas quais seus dados são replicados.

Para saber mais, consulte 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, oferecendo a opção de níveis de consistência. Essa replicação garante um 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 relaxada e 99,999% de disponibilidade de leitura em todas as contas de banco de dados de várias regiões.
Backups online automatizados O backup dos bancos de dados do Azure Cosmos DB é feito regularmente e armazenado em um repositório com redundância geográfica.

Para saber mais, consulte Backup e restauração online automáticos com o Azure Cosmos DB.
Restaurar dados eliminados Você pode usar os backups on-line automatizados para recuperar dados que você pode ter excluído acidentalmente até ~30 dias após o evento.

Para saber mais, consulte Backup e restauração online automáticos com o Azure Cosmos DB
Proteja e isole dados confidenciais Todos os dados nas regiões listadas em Novidades? agora está criptografado em repouso.

Os dados pessoais e outros dados confidenciais podem ser isolados em recipientes específicos e leitura-gravação, ou o acesso somente leitura pode ser limitado a usuários específicos.
Monitorar ataques Usando o log de auditoria e os registros de atividades, você pode monitorar sua conta para atividades normais e anormais. Você pode visualizar quais operações foram executadas em seus recursos. Esses dados incluem quem iniciou a operação, quando ela 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 em cinco etapas é iniciado. O objetivo é restaurar a segurança e as operações normais do serviço. O processo restaura os serviços o mais rápido possível depois que um problema é detetado e uma investigação é iniciada.

Para saber mais, consulte Resposta de segurança do Microsoft Azure na nuvem.
Geo-fencing 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, consulte Datacenters globais da Microsoft.
Encriptação HTTPS/SSL/TLS Todas as conexões com o Azure Cosmos DB suportam HTTPS. O Azure Cosmos DB suporta níveis TLS até 1.2 (incluídos).
É possível impor um nível mínimo de TLS no lado do servidor. Para fazer isso, consulte o guia de autoatendimento Imposição de versão mínima de TLS de autoatendimento no Azure Cosmos DB.
Encriptação inativa Todos os dados armazenados no Azure Cosmos DB são criptografados em repouso. Saiba mais em Criptografia do Azure Cosmos DB em repouso.
Servidores corrigidos Como um banco de dados gerenciado, o Azure Cosmos DB elimina a necessidade de gerenciar e corrigir servidores porque é feito para você automaticamente.
Contas administrativas com palavras-passe fortes É impossível ter uma conta administrativa sem senha no Azure Cosmos DB.

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

A captura de tela a seguir mostra como você pode usar o log de auditoria e os registros de atividades para monitorar sua conta. Screenshot that shows activity logs for Azure Cosmos DB.

Chaves primárias/secundárias

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

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

Cada conta consiste em duas chaves: uma chave primária e uma chave secundária. O objetivo das chaves duplas é para que você possa regenerar, ou rolar, chaves, fornecendo acesso contínuo à sua conta e dados.

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

Rotação e regeneração de chaves

O processo de rotação e regeneração de chaves é simples. Primeiro, verifique se seu aplicativo está usando consistentemente a chave primária ou a chave secundária para acessar sua conta do Azure Cosmos DB. Em seguida, siga as etapas na próxima seção. Para monitorar sua conta em busca de atualizações e regeneração de chaves, consulte Monitorar atualizações importantes com métricas e alertas.

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

  1. Vá para sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Teclas no menu esquerdo e, em seguida, selecione Regenerar Chave Secundária nas reticências (...) à direita da sua 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 consistentemente na sua conta do Azure Cosmos DB. A regeneração de chaves pode levar de um minuto a várias horas, dependendo do tamanho da conta do Azure Cosmos DB.

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

  5. Volte para o portal do Azure e acione 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. Vá para sua conta do Azure Cosmos DB no portal do Azure.

  2. Selecione Teclas no menu esquerdo e, em seguida, selecione Regenerar Chave Primária a partir das reticências (...) à direita da sua 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 consistentemente na sua conta do Azure Cosmos DB. A regeneração de chaves pode levar de um minuto a várias horas, dependendo do tamanho da conta do Azure Cosmos DB.

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

  5. Volte para o portal do Azure e acione 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.

Acompanhe o status da regeneração de chaves

Depois de girar ou regenerar uma chave, você pode acompanhar seu status a partir do registro de atividades. Use as etapas a seguir para acompanhar o status.

  1. Entre no portal do Azure e vá para sua conta do Azure Cosmos DB.

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

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

    Recomendamos que regenere as chaves pelo menos uma vez a cada 60 dias. Se a sua última regeneração tiver sido há mais de 60 dias, verá um ícone de aviso. Além disso, você pode ver que sua chave não foi gravada. Se este 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 ser capaz de regenerar e ver sua nova data de última regeneração para a nova chave.

  3. Você deve ver os eventos de regeneração de chave juntamente com seu status, hora em que a operação foi emitida e detalhes do usuário que iniciou a regeneração de chave. A operação de geração de chaves é iniciada com o status Aceito . Ele muda para Iniciado e, em seguida, para Sucedido quando a operação é concluída.

Próximos passos

  • Para obter mais informações sobre chaves primárias e tokens de recursos, consulte Acesso seguro aos dados do Azure Cosmos DB.
  • Para obter mais informações sobre log de auditoria, consulte Log de diagnóstico do Azure Cosmos DB.
  • Para obter mais informações sobre certificações Microsoft, consulte Central de Confiabilidade do Azure.