Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A: NoSQL
MongoDB
Cassandra
Gremlin
Tabela
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 (chaves gerenciadas pelo serviço). Você pode optar por adicionar uma segunda camada de criptografia com chaves gerenciadas por você (CMK, chaves gerenciadas pelo cliente).
Você deve armazenar chaves gerenciadas pelo cliente no Azure Key Vault e fornecer uma chave para cada conta do Azure Cosmos DB habilitada com chaves gerenciadas pelo cliente. Essa chave é usada para criptografar todos os dados armazenados nessa conta.
Observação
Se você quiser habilitar chaves gerenciadas pelo cliente em suas contas existentes do Azure Cosmos DB, consulte Configurar chaves gerenciadas pelo cliente para sua conta existente do Azure Cosmos DB com o Azure Key Vault.
Aviso
Os seguintes nomes de campo são reservados em tabelas de API do Cassandra em contas usando chaves gerenciadas pelo cliente:
id
ttl
_ts
_etag
_rid
_self
_attachments
_epk
Quando as chaves gerenciadas pelo cliente não estão habilitadas, somente os nomes de campo que começam com __sys_
são reservados.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
Registrar-se no provedor de recursos do Azure Cosmos DB
Se o provedor de recursos Microsoft.DocumentDB ainda não estiver registrado, você deverá registrar esse provedor como primeira etapa.
Entre no portal do Azure, acesse sua assinatura do Azure e selecione Provedores de recursos na guia configurações:
Pesquise o provedor de recursos do Microsoft.DocumentDB. Verifique se o provedor de recursos já está marcado como registrado. Caso contrário, escolha o provedor de recursos e selecione Registrar:
Configurar sua instância do Azure Key Vault
Importante
A instância do Key Vault do Azure deve estar disponível por meio do acesso à rede pública ou permitir que serviços confiáveis da Microsoft ignorem o firewall. Uma instância que é acessível exclusivamente por meio de pontos de extremidade privados não pode ser usada para hospedar suas chaves gerenciadas pelo cliente.
É altamente recomendável que o recurso do Azure Key Vault criado tenha a replicação de dados habilitada para garantir a disponibilidade contínua durante interrupções regionais inesperadas.
O uso de chaves gerenciadas pelo cliente com o Azure Cosmos DB exige que você defina duas propriedades na instância do Azure Key Vault que você pretende usar para hospedar suas chaves de criptografia: exclusão reversível e proteção contra limpeza.
- Se você criar uma nova instância do Azure Key Vault, habilite essas propriedades durante a criação:
- Se estiver usando uma instância existente do Azure Key Vault, você poderá verificar se essas propriedades estão habilitadas examinando a seção Propriedades no portal do Azure. Se qualquer uma dessas propriedades não estiver habilitada, consulte as seções Habilitar a exclusão reversível e Habilitar a proteção de limpeza em um dos seguintes artigos:
Escolher o modelo de segurança preferencial
Depois que a proteção contra exclusão completa e a exclusão reversível estiverem habilitadas, na guia de política de acesso, você pode escolher o modelo de permissão preferido a ser utilizado. As políticas de acesso são definidas por padrão, mas também há suporte para o controle de acesso baseado em função do Azure.
As permissões necessárias devem ser concedidas para permitir que o Cosmos DB use sua chave de criptografia. Essa etapa varia dependendo se o Azure Key Vault está usando políticas de acesso ou controle de acesso baseado em função.
Observação
É importante observar que apenas um modelo de segurança pode estar ativo por vez, portanto, não é necessário configurar o controle de acesso baseado em funções se o Azure Key Vault estiver definido para usar políticas de acesso e vice-versa.
Adicionar uma política de acesso
Nessa variação, use o principal do Azure Cosmos DB para criar uma política de acesso com as permissões apropriadas.
- No portal do Azure, vá até a instância do Azure Key Vault que você planeja usar para hospedar suas chaves de criptografia. Selecione Políticas de acesso no menu à esquerda:
Selecione + Adicionar política de acesso.
No menu suspenso Permissões de chave, selecione as permissões Obter, Desencapsular chave e Encapsular chave:
Em Selecionar entidade de segurança, escolha Nenhuma selecionada.
Pesquise a entidade de segurança do Azure Cosmos DB e selecione-a.
Dica
Isso registra a identidade primária do Azure Cosmos DB na política de acesso do Azure Key Vault. Se o principal do Azure Cosmos DB não estiver na lista, pode ser necessário re-registrar o provedor de recursos Microsoft.DocumentDB.
Escolha Selecionar na parte inferior da tela.
Selecione Adicionar para adicionar a nova política de acesso.
Selecione Salvar na instância do Key Vault para salvar todas as alterações.
Adicionar funções de controle de acesso baseadas em função
No portal do Azure, vá até a instância do Azure Key Vault que você planeja usar para hospedar suas chaves de criptografia. Selecione Controle de acesso (IAM) no menu à esquerda e, em seguida, Conceder acesso a esse recurso.
Pesquise a função "Administrador do Key Vault" e atribua a si mesmo. Essa atribuição é feita primeiro com a pesquisa do nome da função na lista e, em seguida, com um clique na guia Membros. Quando estiver na guia, selecione a opção Usuário, grupo ou entidade de serviço no botão de opção e procure sua conta do Azure. Depois que a conta for selecionada, a função poderá ser atribuída.
Em seguida, as permissões necessárias precisam ser atribuídas à entidade de segurança do Cosmos DB. Portanto, como a última atribuição de função, acesse a página de atribuição, mas desta vez procure a função Usuário do serviço de criptografia do Key Vault e, na guia membros, procure a entidade de segurança do Cosmos DB. Para localizar a entidade de segurança, procure a entidade de segurança do Azure Cosmos DB e selecione-a.
Selecione Examinar + atribuir e a função é atribuída ao Cosmos DB.
Validar se as funções estão definidas corretamente
Em seguida, use a página de controle de acesso para confirmar se todas as funções estão configuradas corretamente.
Depois que as funções forem atribuídas, selecione Exibir acesso a esse recurso na página IAM do Controle de Acesso para verificar se tudo está definido corretamente.
Na página, defina o escopo como este recurso e verifique se você tem a função Administrador do cofre de chaves e se a entidade de segurança do Cosmos DB tem a função Usuário de criptografia do cofre de chaves.
Gerar uma chave no Azure Key Vault
Aqui, crie uma chave usando o Azure Key Vault e recupere o identificador exclusivo.
No portal do Azure, vá até a instância do Azure Key Vault que você planeja usar para hospedar suas chaves de criptografia. Em seguida, selecione Chaves no menu à esquerda:
Selecione Gerar/Importar, forneça um nome para a nova chave e selecione um tamanho de chave RSA. Recomendamos um mínimo de 3072 para maior segurança. Em seguida, selecione Criar:
Dica
Como alternativa, você pode usar a CLI do Azure para gerar uma chave com:
az keyvault key create \ --vault-name <name-of-key-vault> \ --name <name-of-key>
Para obter mais informações sobre como gerenciar um cofre de chaves com a CLI do Azure, veja gerenciar Azure Key Vault com a CLI do Azure.
Depois que a chave for criada, selecione a chave recém-criada e, em seguida, sua versão atual.
Copie o Identificador de chave da chave, exceto a parte após a última barra "/":
Criar uma conta do Azure Cosmos DB
Crie uma conta do Azure Cosmos DB usando o portal do Azure ou a CLI do Azure.
Quando criar uma nova conta do Azure Cosmos DB no portal do Azure, escolha Chave gerenciada pelo cliente na etapa Criptografia. No campo URI da chave, cole o URI/identificador de chave da chave do Azure Key Vault que você copiou da etapa anterior:
Importante
Dependendo da configuração de rede, talvez seja necessário permitir o acesso ao Azure Cosmos DB de outros serviços do Azure.
Uso da identidade gerenciada na política de acesso do Azure Key Vault
Essa política de acesso garante que as chaves de criptografia possam ser acessadas pela conta do Azure Cosmos DB. A política de acesso é implementada concedendo acesso a uma identidade específica do Microsoft Entra. Dois tipos de identidades são suportados:
- A identidade primária do Azure Cosmos DB pode ser usada para conceder acesso ao serviço do Azure Cosmos DB.
- A identidade gerenciada da sua conta do Azure Cosmos DB pode ser usada para conceder acesso especificamente à ela.
Usar chaves gerenciadas pelo cliente com backup contínuo
Você pode criar uma conta de backup contínua usando a CLI do Azure ou um modelo do ARM.
Atualmente, somente a identidade gerenciada atribuída pelo usuário tem suporte para a criação de contas de backup contínuas.
Depois que a conta for criada, você poderá atualizar a identidade para a identidade gerenciada atribuída pelo sistema.
Como alternativa, os usuários também podem criar uma identidade do sistema com o modo de backup periódico primeiro e, em seguida, migrar a conta para o modo de backup contínuo. Para obter etapas detalhadas, consulte Migrar uma conta do Azure Cosmos DB do modo de backup periódico para contínuo.
Restaurar uma conta contínua configurada com a identidade gerenciada
Uma identidade atribuída pelo usuário é necessária na solicitação de restauração porque a identidade gerenciada da conta de origem (identidades atribuídas pelo usuário e atribuídas pelo sistema) não pode ser transferida automaticamente para a conta de banco de dados de destino.
Chaves gerenciadas pelo cliente e criptografia dupla
Os dados armazenados na conta do Azure Cosmos DB ao se usar chaves gerenciadas pelo cliente acabam sendo criptografados duas vezes:
- Uma vez por meio da criptografia padrão executada com chaves gerenciadas pela Microsoft.
- Uma vez por meio da criptografia extra executada com as chaves gerenciadas pelo cliente.
A criptografia dupla só se aplica ao principal armazenamento transacional do Azure Cosmos DB. Alguns recursos envolvem a replicação interna dos dados para uma segunda camada de armazenamento em que a criptografia dupla não é fornecida, mesmo com chaves gerenciadas pelo cliente. Esses recursos incluem:
Rotação de chaves
Rotacionar a chave gerenciada pelo usuário, usada pela sua conta do Azure Cosmos DB, pode ser feito de duas maneiras.
Crie uma nova versão da chave usada atualmente no Azure Key Vault:
Troque a chave usada atualmente por uma diferente atualizando o URI da chave em sua conta. No portal do Azure, vá para sua conta do Azure Cosmos DB e selecione Criptografia de Dados no menu à esquerda:
Substitua o URI da chave pela nova chave que você deseja usar e selecione Salvar:
Veja como obter o mesmo resultado usando PowerShell:
# Variable for resource group name $RESOURCE_GROUP_NAME = "<resource-group-name>" # Variable for account name $ACCOUNT_NAME = "<globally-unique-account-name>" # Variable for new key URI in the key vault $NEW_KEY_VAULT_KEY_URI="https://<key-vault-name>.vault.azure.net/keys/<new-key-name>" $parameters = @{ ResourceGroupName = $RESOURCE_GROUP_NAME Name = $ACCOUNT_NAME ResourceType = "Microsoft.DocumentDb/databaseAccounts" } $ACCOUNT = Get-AzResource @parameters $ACCOUNT.Properties.keyVaultKeyUri = $NEW_KEY_VAULT_KEY_URI $ACCOUNT | Set-AzResource -Force
A chave ou a versão da chave anterior pode ser desabilitada após os logs de auditoria do Azure Key Vault não mostrarem mais a atividade do Azure Cosmos DB nessa chave ou versão da chave. Não ocorrerá nenhuma atividade adicional na chave anterior ou na versão da chave após 24 horas da rotação de chaves.
Há suporte para a autorotação de chave no Azure Key Vault , desde que a chave anterior não seja desabilitada ou excluída. Os sistemas internos precisam de algum tempo para acompanhar a nova versão da chave depois de validar que a conta não está em estado revogado ou em transição para habilitar chaves gerenciadas pelo cliente.
Tratamento de erros
Se houver qualquer erro com as chaves gerenciadas pelo cliente no Azure Cosmos DB, o Azure Cosmos DB retornará os detalhes do erro junto com um código de substatus HTTP na resposta. Use esse código de substatus HTTP para depurar a causa raiz do problema. Para obter a lista de códigos de substatus HTTP com suporte, consulte códigos de status HTTP para o Azure Cosmos DB.
Perguntas frequentes
Aqui estão as perguntas frequentes sobre como configurar chaves gerenciadas pelo cliente no Azure Cosmos DB.
Existem mais custos para habilitar chaves gerenciadas pelo cliente?
Não, não há encargos para habilitar esse recurso.
Como as chaves gerenciadas pelo cliente influenciam o planejamento de capacidade?
As Unidades de Solicitação (RU) consumidas pelas suas operações de banco de dados aumentam para refletir o processamento extra necessário para realizar a criptografia e a descriptografia de seus dados ao utilizar chaves gerenciadas pelo cliente. O consumo extra de RU pode levar a uma utilização ligeiramente maior da capacidade provisionada. Use essa tabela para obter diretrizes:
Tipo de operação | Solicitar aumento da unidade |
---|---|
Leituras de ponto (busca de itens pela ID) | + 5% por operação |
Qualquer operação de gravação | + 6% por operação | Aproximadamente + 0,06 RU por propriedade indexada |
Consultas, leitura do feed de alterações ou do feed de conflitos | + 15% por operação |
Quais dados são criptografados com as chaves gerenciadas pelo cliente?
Todos os dados armazenados em sua conta do Azure Cosmos DB são criptografados com as chaves gerenciadas pelo cliente, exceto os seguintes metadados:
Os nomes das suas contas, bancos de dados e contêineres do Azure Cosmos DB
Os nomes dos seus procedimentos armazenados
Os caminhos de propriedade declarados em suas políticas de indexação
Os valores das chaves de partição dos seus contêineres
As chaves gerenciadas pelo cliente têm suporte para contas existentes do Azure Cosmos DB?
Sim. Para saber mais, confira Configurar chaves gerenciadas pelo cliente para sua conta existente do Azure Cosmos DB com o Azure Key Vault.
É possível usar chaves gerenciadas pelo cliente com o repositório analítico do Azure Cosmos DB?
Sim, o Link do Azure Synapse só dá suporte à configuração de chaves gerenciadas pelo cliente usando a identidade gerenciada da sua conta do Azure Cosmos DB. Você deve usar a identidade gerenciada da sua conta do Azure Cosmos DB em sua política de acesso do Azure Key Vault antes de habilitar o Link do Azure Synapse em sua conta. Para obter um guia de instruções sobre como habilitar a identidade gerenciada e usá-la em uma política de acesso, consulte Acessar o Azure Key Vault do Azure Cosmos DB usando uma identidade gerenciada.
Há um plano para oferecer suporte a uma granularidade mais refinada do que as chaves de nível de conta?
Atualmente não, mas as chaves de nível de contêiner estão sendo consideradas.
Como saber se as chaves gerenciadas pelo cliente estão habilitadas na minha conta do Azure Cosmos DB?
No portal do Azure, acesse sua conta do Azure Cosmos DB e procure a entrada Criptografia de Dados no menu à esquerda. Se essa entrada existir, as chaves gerenciadas pelo cliente serão habilitadas em sua conta:
Você pode buscar via programa os detalhes da sua conta do Azure Cosmos DB e verificar a presença da propriedade keyVaultKeyUri
.
Como as chaves gerenciadas pelo cliente afetam os backups periódicos?
O Azure Cosmos DB realiza backups regulares e automáticos dos dados armazenados em sua conta. Esta operação faz backup dos dados criptografados.
As seguintes condições são necessárias para restaurar um backup periódico com êxito:
- A chave de criptografia que você usou no momento do backup é necessária e deve estar disponível no Azure Key Vault. Essa condição demanda que nenhuma revogação tenha sido feita e a versão da chave que foi usada no momento do backup ainda esteja habilitada.
- Se você usou uma identidade gerenciada atribuída pelo sistema na política de acesso, conceda temporariamente acesso à identidade primária do Azure Cosmos DB antes de restaurar seus dados. Este requerimento existe porque uma identidade gerenciada atribuída pelo sistema é específica de uma conta e não pode ser reutilizada na conta de destino. Depois que os dados são totalmente restaurados para a conta de destino, é possível definir sua configuração de identidade desejada e remover a identidade de primeira parte da política de acesso do Key Vault.
Como as chaves gerenciadas pelo cliente afetam os backups contínuos?
O Azure Cosmos DB oferece a opção de configurar backups contínuos em sua conta. Com o backup contínuo, você pode restaurar seus dados para qualquer ponto no tempo nos últimos 30 dias. Para usar backups contínuos em uma conta em que as chaves gerenciadas pelo cliente estão ativadas, você deve usar uma identidade gerenciada atribuída pelo sistema ou pelo usuário na política de acesso do Key Vault. Atualmente, não há suporte para identidades de primeira parte do Azure Cosmos DB em contas que usam backups contínuos.
Etapas de pré-requisito para contas habilitadas com chaves gerenciadas pelo cliente para atualizar a identidade atribuída pelo usuário.
- Adicione uma identidade atribuída pelo usuário à conta do Cosmos DB e conceda permissões na política de acesso do cofre de chaves.
- Defina a identidade atribuída pelo usuário como padrão por meio da CLI do Azure ou do ARM (Azure Resource Manager).
az cosmosdb update --resource-group MyResourceGroup --name MyAccountName --default-identity UserAssignedIdentity=/subscriptions/MySubscriptionId/resourcegroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyUserAssignedIdentity
As seguintes condições são necessárias para realizar uma restauração pontual bem-sucedida:
O acesso à chave gerenciada pelo cliente deve estar disponível para a identidade padrão da conta. Se a chave tiver sido girada, o processo de rotação deverá ser totalmente concluído ou a conta deverá ter acesso às versões de chave antigas e novas.
Você deve garantir que a identidade gerenciada atribuída pelo usuário originalmente usada na conta de origem ainda seja declarada na política de acesso do Key Vault.
Importante
Se você revogar a chave de criptografia antes de excluir sua conta, o backup da sua conta poderá perder os dados gravados até uma hora antes da revogação ser feita.
Como fazer para revogar uma chave de criptografia?
A revogação de uma chave é feita desabilitando a versão mais recente da chave:
Como alternativa, para revogar todas as chaves de uma instância do Azure Key Vault, você pode excluir a política de acesso concedida ao principal do Azure Cosmos DB:
Quais operações estão disponíveis depois que uma chave gerenciada pelo cliente é revogada?
A exclusão da conta é a única operação possível quando a chave de criptografia foi revogada.
Atribuir uma nova identidade gerenciada à conta de banco de dados restaurada para continuar acessando ou recuperar o acesso à conta de banco de dados
A identidade atribuída pelo usuário está vinculada a uma conta do Cosmos DB especificada, sempre que atribuimos uma identidade atribuída pelo usuário a uma conta, o ARM encaminha a solicitação para identidades de serviço gerenciado para fazer essa conexão. Atualmente, transferimos as informações de identidade do usuário da conta de banco de dados de origem para a conta de banco de dados de destino durante a restauração (para a restauração de backup contínua e periódica) do CMK + identidade atribuída pelo usuário,
Os metadados de identidade estão vinculados à conta de banco de dados de origem, e o fluxo de trabalho de restauração não altera o escopo da identidade para a conta de banco de dados de destino. Isso faz com que as contas de banco de dados restauradas estejam em um estado inválido e fiquem inacessíveis depois que a conta de origem for excluída e o tempo de renovação da identidade expirar.
Etapas para atribuir uma nova identidade gerenciada:
- Criar uma nova identidade gerenciada atribuída pelo usuário
- Conceder acesso à chave do Key Vault a essa identidade
- Atribuir essa nova identidade à sua conta de banco de dados restaurada