Configurar chaves gerenciadas pelo cliente para sua conta existente do Azure Cosmos DB com o Azure Key Vault

APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table

Habilitar uma segunda camada de criptografia para dados inativos usando Chaves Gerenciadas pelo Cliente (CMK) ao criar uma nova conta do Azure Cosmos DB já está em disponibilidade geral há algum tempo. Como uma próxima etapa natural, agora temos a capacidade de habilitar as CMKs nas contas existentes do Azure Cosmos DB.

Esse recurso elimina a necessidade de migrar dados para uma nova conta para habilitar as CMK. Além disso, ajuda a aprimorar a postura de segurança e conformidade dos clientes.

Habilitar as CMKs inicia um processo assíncrono em segundo plano para criptografar todos os dados existentes na conta, enquanto os novos dados que chegam são criptografados antes de persistir. Não é necessário aguardar que a operação assíncrona seja bem-sucedida. O processo de habilitação consome RUs não utilizadas/sobressalentes de forma a não afetar suas cargas de trabalho de leitura/gravação. Você pode consultar esse link para saber como planejar sua capacidade depois que sua conta for criptografada.

Comece por habilitar as CMKs nas suas contas existentes

Importante

Confira a seção de pré-requisitos com a maior atenção. Essas são considerações importantes.

Pré-requisitos

Todas as etapas necessárias como pré-requisito ao configurar Chaves Gerenciadas pelo Cliente para contas novas se aplicam para habilitar as CMKs em sua conta existente. Confira as etapas aqui

É importante observar que habilitar a criptografia na sua conta do Azure Cosmos DB adicionará uma pequena sobrecarga à ID do documento, limitando o tamanho máximo da ID do documento a 990 bytes, em vez de 1024 bytes. Se sua conta tiver documentos com IDs maiores que 990 bytes, o processo de criptografia falhará até que esses documentos sejam excluídos.

Para verificar se sua conta está em conformidade, você pode usar o aplicativo de console fornecido hospedado aqui para verificar sua conta. Verifique se você está usando o ponto de extremidade da propriedade da sua conta 'sqlEndpoint', independentemente da API selecionada.

Se você quiser desabilitar a validação do lado do servidor para isso durante a migração, entre em contato com o suporte.

Etapas para habilitar as CMKs na sua conta existente

Para habilitar as CMKs em uma conta existente, atualize a conta com um modelo do ARM para configurar um identificador de chave do Key Vault na propriedade keyVaultKeyUri — como você faria para habilitar as CMKs em uma nova conta. Essa etapa pode ser feita emitindo uma chamada de PATCH com o seguinte conteúdo:

    {
        "properties": {
        "keyVaultKeyUri": "<key-vault-key-uri>"
        }
    }

A saída desse comando da CLI para habilitar as CMKs aguarda a conclusão da criptografia de dados.

    az cosmosdb update --name "testaccount" --resource-group "testrg" --key-uri "https://keyvaultname.vault.azure.net/keys/key1"

Etapas para habilitar as CMKs na sua conta existente do Azure Cosmos DB com uma conta de backup Contínuo ou de armazenamento Analítica

Para habilitar as CMKs em uma conta existente que tenha backup contínuo e pontos de restauração habilitados, precisamos seguir algumas etapas adicionais. Siga as etapa 1 a 5 e, em seguida, as instruções para habilitar as CMKs na conta existente.

Observação

Atualmente, a identidade atribuída pelo sistema e o modo de backup contínuo estão em versão prévia pública e podem ser alterados no futuro. Atualmente, somente as identidades gerenciadas atribuídas pelo usuário têm suporte para a habilitação de CMKs em contas com backup contínuo.

  1. Configurar uma identidade gerenciada para sua conta do Cosmos Configurar identidades gerenciadas com o Microsoft Entra ID para a sua conta do Azure Cosmos DB

  2. Atualizar a conta do Cosmos para configurar a identidade padrão para apontar para a identidade gerenciada adicionada na etapa anterior

    Para identidades gerenciadas pelo Sistema:

    az cosmosdb update --resource-group $resourceGroupName  --name $accountName  --default-identity "SystemAssignedIdentity=subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyRG/providers/Microsoft.ManagedIdentity/ systemAssignedIdentities/MyID"
    

    Para identidades gerenciadas pelo Usuário:

    az cosmosdb update -n $sourceAccountName -g $resourceGroupName --default-identity "UserAssignedIdentity=subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyID"
    
  3. Configurar o Keyvault conforme mostrado na documentação aqui

  4. Adicionar uma política de acesso no keyvault para a identidade padrão que foi configurada na etapa anterior

  5. Atualizar a conta do Cosmos para configurar o uri do keyvault; essa atualização aciona a habilitação das CMKs na conta

    az cosmosdb update --name $accountName --resource-group $resourceGroupName --key-uri $keyVaultKeyURI  
    

Limitações conhecidas

  • A habilitação das CMKs está disponível apenas no nível de conta do Cosmos DB e não em coleções.
  • Não oferecemos suporte para habilitar as CMKs em contas existentes do Azure Cosmos DB for Apache Cassandra.
  • Não damos suporte à habilitação do CMK em contas existentes habilitadas para Exibições Materializadas e todas as versões e exclui o modo de feed de alterações.
  • Certifique-se de que a conta não tenha documentos com IDs grandes, com mais de 990 bytes, antes de habilitar as CMKs. Caso contrário, você receberá uma mensagem de erro devido ao limite máximo com suporte de 1024 bytes após a criptografia.
  • Durante a criptografia de dados existentes, certas ações do painel de controle, como "adicionar região", ficarão bloqueadas. Essas ações serão desbloqueadas e poderão ser usadas logo após a conclusão da criptografia.

Monitorar o andamento da criptografia resultante

Habilitar as CMKs em uma conta existente é uma operação assíncrona que dá início a uma tarefa em segundo plano que criptografa todos os dados existentes. Como tal, a solicitação da API REST para habilitar as CMKs fornece um URL de "Azure-AsyncOperation" em sua resposta. Sondar esse URL com solicitações GET irá retornar o status da operação de modo geral, que eventualmente será "Bem-sucedido". Esse mecanismo é inteiramente descrito nesse artigo.

A conta do Cosmos DB pode continuar a ser usada e os dados a serem gravados sem ser preciso aguardar que a operação assíncrona seja bem-sucedida. O comando da CLI para habilitar as CMKs aguarda a conclusão da criptografia de dados.

Se tiver outras perguntas, entre em contato com o Suporte da Microsoft.

Perguntas Frequentes

Quais são os fatores dos quais o momento de criptografia depende?

Habilitar as CMKs é uma operação assíncrona e depende de um número suficiente de RUs não usadas estar disponível. Sugerimos habilitar as CMKs fora do horário de pico. Se for o caso, você poderá aumentar as RUs com antecedência para acelerar a criptografia. Trata-se, também, de um fator diretamente proporcional ao tamanho de dados.

Precisamos nos preparar para um tempo de inatividade?

Habilitar as CMKs dá início a um processo assíncrono em segundo plano para criptografar todos os dados. Não é necessário aguardar que a operação assíncrona seja bem-sucedida. A conta do Azure Cosmos DB fica disponível para leituras e gravações e não há necessidade de um tempo de inatividade.

É possível aumentar as RUs após as CMKs terem sido acionadas?

Sugerimos aumentar as RUs antes de acionar as CMKs. Após as CMKs terem sido acionadas, algumas operações do painel de controle ficarão bloqueadas até que a criptografia esteja concluída. Esse bloqueio poderá impedir que o usuário aumente as RUs após as CMKs terem sido acionadas.

Existe uma maneira de reverter ou desabilitar a criptografia após acionar as CMKs?

Após ter sido acionado, o processo de criptografia de dados usando CMKs não poderá ser revertido.

Habilitar a criptografia usando CMKs em uma conta existente irá afetar o tamanho dos dados e as leituras/gravações?

Como seria de se esperar, ao habilitar as CMKs teremos um ligeiro aumento no tamanho dos dados e nas RUs para acomodar o processamento da criptografia/descriptografia adicional.

Devo fazer backup dos dados antes de habilitar as CMKs?

Habilitar as CMKs não representa nenhuma ameaça de perda de dados.

Os backups antigos serão considerados como uma parte do backup periódico criptografado?

Não. Os backups periódicos antigos não são criptografados. Os novos backups gerados após as CMKs terem sido habilitadas são criptografados.

Qual é o comportamento nas contas existentes habilitadas para backup Contínuo?

Quando as CMKs estão ativadas, a criptografia também fica ativada para os backups contínuos. Depois que o CMK estiver ativado, todas as contas restauradas daqui para frente serão habilitadas para CMK.

Qual é o comportamento se as CMKs estiverem habilitadas na conta habilitada para PITR e restaurarmos a conta para um ponto no tempo em que as CMKs estavam desabilitadas?

Nesse caso, as CMKs serão explicitamente habilitadas na conta de destino restaurada pelos seguintes motivos:

  • Depois que as CMKs estiverem habilitadas na conta, não haverá nenhuma opção para desabilitar as CMKs.
  • Esse comportamento está de acordo com o design atual da restauração da conta habilitada para CMKs com backup periódico

O que acontece quando o usuário revoga a chave enquanto a migração para CMKs estiver em andamento?

O estado da chave é verificado quando a criptografia de CMKs é acionada. Se a chave no Azure Key Vault tiver uma boa reputação, a criptografia será iniciada e o processo será concluído sem verificações adicionais. O processo de criptografia será bem-sucedido mesmo que a chave seja revogada ou o Azure Key Vault seja excluído ou se tornar indisponível.

Podemos habilitar a criptografia com CMK na nossa conta de produção existente?

Sim. Confira a seção de pré-requisitos com a maior atenção. Recomendamos primeiro testar todas as situações existentes em contas que não forem de produção e, assim que se sentir confiante, você poderá pensar nas contas de produção.

Próximas etapas