Partilhar via


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

APLICA-SE A: NoSQL MongoDB Gremlin Tabela

Habilitar uma segunda camada de criptografia para dados em repouso usando Chaves Gerenciadas pelo Cliente durante a criação de uma nova conta do Azure Cosmos DB está disponível em geral há algum tempo. Como próxima etapa natural, agora temos a capacidade de habilitar a CMK em contas existentes do Azure Cosmos DB.

Esse recurso elimina a necessidade de migração de dados para uma nova conta para habilitar a CMK. Ajuda a melhorar a postura de segurança e conformidade dos clientes.

A ativação da CMK inicia um processo assíncrono em segundo plano para criptografar todos os dados existentes na conta, enquanto os novos dados recebidos são criptografados antes de persistir. Não há necessidade de esperar que a operação assíncrona seja bem-sucedida. O processo de habilitação consome RUs não utilizadas/sobressalentes para que não afete suas cargas de trabalho de leitura/gravação. Você pode consultar este link para planejamento de capacidade assim que sua conta for criptografada.

Comece ativando a CMK em suas contas existentes

Importante

Percorra a seção de pré-requisitos minuciosamente. Estas são considerações importantes.

Pré-requisitos

Todas as etapas de pré-requisito necessárias durante a configuração das Chaves Gerenciadas pelo Cliente para novas contas são aplicáveis para habilitar a CMK em sua conta existente. Consulte os passos aqui

Nota

É importante observar que habilitar a criptografia em 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 a 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. Certifique-se de que você está usando o ponto de extremidade da sua propriedade de conta 'sqlEndpoint', independentemente da API selecionada.

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

Passos para ativar a CMK na sua conta existente

Para habilitar a CMK em uma conta existente, atualize a conta com um modelo ARM definindo um identificador de chave do Cofre da Chave na propriedade keyVaultKeyUri – assim como faria ao habilitar a CMK em uma nova conta. Esta etapa pode ser feita emitindo uma chamada PATCH com a seguinte carga útil:

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

A saída deste comando CLI para habilitar a CMK 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 a CMK em sua conta existente do Azure Cosmos DB com backup contínuo ou conta de armazenamento analítico

Para habilitar a CMK em uma conta existente que tenha backup contínuo e restauração point-in-time habilitados, precisamos seguir algumas etapas extras. Siga o passo 1 ao passo 5 e, em seguida, siga as instruções para ativar a CMK na conta existente.

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

  2. Atualizar a conta cosmos para definir a identidade padrão para apontar para a identidade gerenciada adicionada na etapa anterior

    Para identidade gerenciada pelo sistema:

    az cosmosdb update--resource-group $resourceGroupName --name $accountName --default-identity "SystemAssignedIdentity"
    

    Para identidade gerenciada 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. Configure o Keyvault conforme indicado na documentação aqui

  4. Adicionar política de acesso no keyvault para a identidade padrão definida na etapa anterior

  5. Atualize a conta cosmos para definir o URI do keyvault, esta atualização aciona a ativação da CMK na conta

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

Limitações conhecidas

  • Não suportamos a ativação da CMK em contas existentes do Azure Cosmos DB para Apache Cassandra.
  • A ativação da CMK está disponível apenas em um nível de conta do Cosmos DB e não em coleções.
  • Não suportamos a ativação da CMK em contas existentes que estão habilitadas para Visualizações Materializadas e todas as versões e excluem o modo de feed de alterações.
  • Certifique-se de que a conta não deve ter documentos com IDs grandes maiores que 990 bytes antes de ativar a CMK. Caso contrário, receberá um erro devido ao limite máximo suportado de 1024 bytes após a encriptação.
  • Durante a criptografia de dados existentes, as ações do plano de controle, como "adicionar região", são bloqueadas. Essas ações são desbloqueadas e podem ser usadas logo após a conclusão da criptografia.

Monitorar o progresso da criptografia resultante

Habilitar a CMK em uma conta existente é uma operação assíncrona que inicia uma tarefa em segundo plano que criptografa todos os dados existentes. Como tal, a solicitação de API REST para habilitar a CMK fornece em sua resposta uma URL "Azure-AsyncOperation". A sondagem desse URL com solicitações GET retorna o status da operação geral, que eventualmente terá êxito. Este mecanismo é descrito na íntegra neste artigo.

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

Para permitir que uma conta existente do Cosmos DB seja usada para CMK, uma verificação precisa ser feita para garantir que a conta não tenha "IDs grandes". Um "ID grande" é um ID de documento que excede 990 caracteres. Essa verificação é obrigatória para a migração CMK e é feita pela Microsoft automaticamente. Durante este processo, poderá ver um erro.

ERRO: (InternalServerError) Erro inesperado na verificação de documentos para migração CMK. Repita a operação.

Isso acontece quando o processo de verificação usa mais RUs do que os provisionados na coleção, lançando um erro 429. Uma solução para este problema será aumentar temporariamente as suas RUs significativamente. Como alternativa, você pode usar o aplicativo de console fornecido hospedado aqui para verificar suas coleções.

Nota

Se você deseja desativar a validação do lado do servidor para isso durante a migração, entre em contato com o suporte. Isso é aconselhável apenas se você tiver certeza de que não há IDs grandes. Se o Large ID for encontrado durante a criptografia, o processo será interrompido até que o documento Large Id tenha sido abordado.

Se tiver mais perguntas, contacte o Suporte da Microsoft.

FAQs

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

A habilitação da CMK é uma operação assíncrona e depende da disponibilidade de RUs não utilizadas suficientes. Sugerimos ativar a CMK fora do horário de pico e, se aplicável, você pode aumentar as RUs antes da mão, para acelerar a criptografia. É também uma função direta do tamanho dos dados.

Precisamos nos preparar para o tempo de inatividade?

A ativação da CMK inicia um processo assíncrono em segundo plano para criptografar todos os dados. Não há necessidade de esperar que a operação assíncrona seja bem-sucedida. A conta do Azure Cosmos DB está disponível para leituras e gravações e não há necessidade de um tempo de inatividade.

Você pode aumentar os RU's uma vez que a CMK foi acionada?

Sugere-se aumentar as RUs antes de acionar a CMK. Uma vez que a CMK é acionada, algumas operações do plano de controle são bloqueadas até que a criptografia seja concluída. Esse bloqueio pode impedir que o usuário aumente as RU's uma vez que a CMK é acionada.

Para permitir que uma conta existente do Cosmos DB seja usada na CMK, uma verificação de ID grande é feita automaticamente pela Microsoft para resolver uma das limitações conhecidas listadas anteriormente. Este processo também consome RUs adicionais e é uma boa ideia aumentar significativamente os RUs para evitar o erro 429.

Existe uma maneira de reverter a criptografia ou desativar a criptografia depois de acionar a CMK?

Uma vez que o processo de criptografia de dados usando CMK é acionado, ele não pode ser revertido.

A ativação da criptografia usando CMK na conta existente terá impacto no tamanho dos dados e nas leituras/gravações?

Como seria de esperar, ao ativar a CMK, há um ligeiro aumento no tamanho dos dados e nas RUs para acomodar o processamento extra de encriptação/desencriptação.

Você deve fazer backup dos dados antes de ativar a CMK?

Ativar a CMK não representa nenhuma ameaça de perda de dados.

Os backups antigos são feitos como parte do backup periódico criptografado?

N.º Os backups periódicos antigos não são criptografados. Os backups recém-gerados após a ativação da CMK são criptografados.

Qual é o comportamento em contas existentes habilitadas para backup contínuo?

Quando a CMK está ativada, a criptografia também é ativada para backups contínuos. Quando a CMK estiver ativada, todas as contas restauradas daqui para frente serão habilitadas para CMK.

Qual é o comportamento se a CMK estiver habilitada na conta habilitada para PITR e restaurarmos a conta para o momento em que a CMK foi desativada?

Nesse caso, a CMK está explicitamente habilitada na conta de destino restaurada pelos seguintes motivos:

  • Depois que a CMK estiver habilitada na conta, não haverá opção para desativar a CMK.
  • Esse comportamento está de acordo com o design atual de restauração da conta habilitada para CMK com backup periódico

O que acontece quando o usuário revoga a chave enquanto a migração CMK está em andamento?

O estado da chave é verificado quando a criptografia CMK é acionada. Se a chave no cofre da Chave do Azure estiver em situação regular, a criptografia será iniciada e o processo será concluído sem verificação adicional. Mesmo que a chave seja revogada ou o cofre de chaves do Azure seja excluído ou indisponível, o processo de criptografia será bem-sucedido.

Podemos ativar a criptografia CMK em nossa conta de produção existente?

Sim. Percorra minuciosamente a seção de pré-requisitos. Recomendamos testar todos os cenários primeiro em contas de não produção e, quando estiver confortável, poderá considerar contas de produção.

Próximos passos