Encriptação de dados
APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível
Todos os dados gerenciados por uma instância flexível do Banco de Dados do Azure para PostgreSQL são sempre criptografados em repouso. Esses dados incluem todos os bancos de dados do sistema e do usuário, arquivos temporários, logs do servidor, segmentos de log write-ahead e backups.
Para obter a criptografia de seus dados, o Banco de Dados do Azure para PostgreSQL - Servidor Flexível usa a criptografia do Armazenamento do Azure para dados em repouso, fornecendo chaves para criptografar e descriptografar dados nos serviços de Armazenamento de Blob e Arquivos do Azure. Essas chaves devem ser armazenadas no Azure Key Vault ou no Azure Key Vault Managed Hardware Security Module (HSM). Para obter mais informações, consulte chaves gerenciadas pelo cliente para criptografia de Armazenamento do Azure.
O Banco de Dados do Azure para PostgreSQL - Servidor Flexível dá suporte à configuração da criptografia de dados em dois modos diferentes: chave gerenciada pelo serviço e chave gerenciada pelo cliente. O modo de configuração só pode ser selecionado no momento da criação do servidor. Ele não pode ser alterado de um modo para outro durante o tempo de vida do servidor.
Com a chave de criptografia gerenciada pelo serviço, o Banco de Dados do Azure para PostgreSQL - Servidor Flexível cuida do provisionamento do Cofre de Chaves do Azure no qual as chaves são mantidas e assume toda a responsabilidade de fornecer a chave com a qual os dados são criptografados e descriptografados. O serviço também cuida de armazenar, proteger, auditar o acesso, configurar a rede e girar automaticamente a chave.
Com a chave de criptografia gerenciada pelo cliente, você assume toda a responsabilidade. Portanto, você deve implantar seu próprio Azure Key Vault ou Azure Key Vault HSM. Você deve gerar ou importar sua própria chave. Você deve conceder as permissões necessárias no Cofre da Chave, para que seu servidor flexível do Banco de Dados do Azure para PostgreSQL possa executar as ações necessárias na chave. Você precisa cuidar da configuração de todos os aspetos de rede do Cofre da Chave do Azure no qual a chave é mantida, para que seu servidor flexível do Banco de Dados do Azure para PostgreSQL possa acessar a chave. Auditar o acesso à chave também é sua responsabilidade. Finalmente, você é responsável por girar a chave e, quando necessário, atualizar a configuração do seu Banco de Dados do Azure para o servidor flexível PostgreSQL para que ele faça referência à versão girada da chave.
Quando você configura chaves gerenciadas pelo cliente para uma conta de armazenamento, o Armazenamento do Azure encapsula a chave de criptografia de dados raiz (DEK) da conta com a chave gerenciada pelo cliente no cofre de chaves associado ou no HSM gerenciado. A proteção da chave de criptografia raiz muda, mas os dados em sua conta de Armazenamento do Azure permanecem sempre criptografados. Não é necessária nenhuma ação extra da sua parte para garantir que os seus dados permaneçam encriptados. A proteção por chaves gerenciadas pelo cliente entra em vigor imediatamente.
O Azure Key Vault é um sistema de gerenciamento de chaves externo baseado em nuvem. É altamente disponível e fornece armazenamento escalável e seguro para chaves criptográficas RSA, opcionalmente apoiado por módulos de segurança de hardware (HSMs) validados FIPS 140. Não permite o acesso direto a uma chave armazenada, mas fornece serviços de encriptação e desencriptação a entidades autorizadas. O Cofre de Chaves pode gerar a chave, importá-la ou recebê-la transferida de um dispositivo HSM local.
Benefícios proporcionados por cada modalidade
A criptografia de dados com chaves gerenciadas de serviço para o servidor flexível do Banco de Dados do Azure para PostgreSQL oferece os seguintes benefícios:
- O serviço controla automática e totalmente o acesso aos dados.
- O serviço controla automática e totalmente o ciclo de vida da sua chave, incluindo a rotação da mesma.
- Você não precisa se preocupar com o gerenciamento de chaves de criptografia de dados.
- A criptografia de dados baseada em chaves gerenciadas por serviço não afeta negativamente o desempenho de suas cargas de trabalho.
- Simplifica a gestão de
A criptografia de dados com chaves gerenciadas pelo cliente para o servidor flexível do Banco de Dados do Azure para PostgreSQL oferece os seguintes benefícios:
- Você controla totalmente o acesso aos dados. Você pode remover uma chave para tornar um banco de dados inacessível.
- Você controla totalmente o ciclo de vida de uma chave, incluindo a rotação da chave, para alinhá-la com as políticas corporativas.
- Você pode gerenciar e organizar centralmente todas as suas chaves de criptografia em suas próprias instâncias do Cofre de Chaves do Azure.
- A criptografia de dados baseada em chaves gerenciadas pelo cliente não afeta negativamente o desempenho de suas cargas de trabalho.
- Você pode implementar a separação de tarefas entre agentes de segurança, administradores de banco de dados e administradores de sistema.
Requisitos
A seguir está a lista de requisitos para configurar a criptografia de dados para o Banco de Dados do Azure para o servidor flexível PostgreSQL:
- O Key Vault e o servidor flexível do Banco de Dados do Azure para PostgreSQL devem pertencer ao mesmo locatário do Microsoft Entra. Não há suporte para o Cofre da Chave entre locatários e interações de servidor. Mover o recurso Cofre da Chave depois requer que você reconfigure a criptografia de dados.
- Recomenda-se definir a configuração Dias para manter cofres excluídos para o Cofre de Chaves para 90 dias. Se você configurou uma instância existente do Cofre da Chave com um número menor, ela ainda deverá ser válida. No entanto, se você deseja modificar essa configuração e aumentar o valor, é necessário criar uma nova instância do Cofre da Chave. Depois que uma instância é criada, não é possível modificar essa configuração.
- Habilite o recurso de exclusão suave no Cofre de Chaves para ajudá-lo a se proteger contra perda de dados, se uma chave ou uma instância do Cofre de Chaves for excluída acidentalmente. O Key Vault retém recursos excluídos por 90 dias, a menos que o usuário os recupere ou limpe enquanto isso. As ações de recuperação e limpeza têm suas próprias permissões associadas a um Cofre de Chaves, uma função RBAC ou uma permissão de política de acesso. O recurso de exclusão suave está ativado por padrão. Se você tiver algum Cofre de Chaves que foi implantado há muito tempo, ele ainda pode ter a exclusão suave desabilitada. Nesse caso, você pode ativá-lo usando a CLI do Azure.
- Habilite a proteção contra limpeza para impor um período de retenção obrigatório para cofres e objetos do cofre excluídos.
- Conceda ao Banco de Dados do Azure para PostgreSQL acesso de identidade gerenciada atribuída pelo usuário à chave da seguinte forma:
- Preferencial: o Cofre de Chaves do Azure deve ser configurado com o modelo de permissão RBAC e a identidade gerenciada deve receber a função Usuário de Criptografia do Serviço de Criptografia do Cofre da Chave.
- Legado: Se o Cofre da Chave do Azure estiver configurado com o modelo de permissão de política de acesso, conceda as seguintes permissões à identidade gerenciada:
- get: Para recuperar as propriedades e a parte pública da chave no Cofre da Chave.
- list: Para listar e iterar através das chaves armazenadas no Cofre de Chaves.
- wrapKey: Para criptografar a chave de criptografia de dados.
- unwrapKey: Para desencriptar a chave de encriptação de dados.
- A chave usada para criptografar a chave de criptografia de dados pode ser apenas assimétrica, RSA ou RSA-HSM. São suportados tamanhos de chave de 2.048, 3.072 e 4.096. Recomendamos o uso de uma chave de 4.096 bits para melhor segurança.
- A data e a hora para a ativação da chave (se definidas) devem estar no passado. A data e a hora de expiração (se definidas) devem ser no futuro.
- A chave deve estar no estado Habilitado .
- Se estiver a importar uma chave existente para o Cofre da Chave, forneça-a nos formatos de ficheiro suportados (
.pfx
,.byok
ou.backup
).
Recomendações
Quando estiver a utilizar uma chave gerida pelo cliente para encriptação de dados, siga estas recomendações para configurar o Cofre de Chaves:
- Defina um bloqueio de recursos no Cofre da Chave, para evitar a exclusão acidental ou não autorizada desse recurso crítico.
- Habilite a auditoria e a geração de relatórios sobre todas as chaves de criptografia. O Key Vault fornece logs que são fáceis de injetar em outras ferramentas de gerenciamento de eventos e informações de segurança (SIEM). O Azure Monitor Logs é um exemplo de um serviço que já está integrado.
- Bloqueie o Cofre da Chave selecionando Desativar acesso público e Permitir que serviços confiáveis da Microsoft ignorem esse firewall.
Nota
Depois de selecionar Desativar acesso público e Permitir que serviços fidedignos da Microsoft ignorem esta firewall, poderá receber um erro semelhante ao seguinte quando tentar utilizar o acesso público para administrar o Cofre da Chave através do portal: "Ativou o controlo de acesso à rede. Apenas as redes permitidas terão acesso a este cofre de chaves." Este erro não impede a capacidade de fornecer chaves durante a configuração de chaves gerenciadas pelo cliente ou buscar chaves do Cofre de Chaves durante as operações do servidor.
- Mantenha uma cópia da chave gerenciada pelo cliente em um local seguro ou deposite-a no serviço de depósito.
- Se o Cofre da Chave gerar a chave, crie um backup de chave antes de usá-la pela primeira vez. Você só pode restaurar o backup para o Cofre da Chave.
Considerações especiais
Revogação acidental do acesso à chave do Cofre da Chave
Alguém com direitos de acesso suficientes ao Cofre da Chave pode desativar acidentalmente o acesso do servidor à chave ao:
- Cancelar a atribuição da função RBAC Key Vault Crypto Service Encryption User ou revogar as permissões da identidade usada para recuperar a chave no Key Vault.
- Excluindo a chave.
- Excluindo a instância do Cofre da Chave.
- Alterar as regras de firewall do Cofre da Chave.
- Excluindo a identidade gerenciada do servidor no Microsoft Entra ID.
Monitorando as chaves mantidas no Azure Key Vault
Para monitorar o estado do banco de dados e ativar alertas de perda de acesso ao protetor de criptografia de dados, configure os seguintes recursos do Azure:
- Integridade do recurso: um banco de dados que perdeu o acesso à CMK aparece como Inacessível depois que a primeira conexão com o banco de dados é negada.
- Registro de atividades: quando o acesso à CMK na instância do Cofre de Chaves gerenciada pelo cliente falha, as entradas são adicionadas ao registro de atividades. Você pode restabelecer o acesso se criar alertas para esses eventos o mais rápido possível.
- Grupos de ação: defina esses grupos para receber notificações e alertas com base em suas preferências.
Restaurando backups de um servidor configurado com uma chave gerenciada pelo cliente
Depois que o servidor flexível do Banco de Dados do Azure para PostgreSQL é criptografado com uma chave gerenciada pelo cliente armazenada no Cofre da Chave, qualquer cópia de servidor recém-criada também é criptografada. Você pode fazer essa nova cópia por meio de uma operação de restauração point-in-time (PITR) ou ler réplicas.
Ao configurar a criptografia de dados com chave gerenciada pelo cliente, durante operações como restauração de um backup ou criação de uma réplica de leitura, você pode evitar problemas seguindo estas etapas nos servidores primário e restaurado ou de réplica:
- Inicie o processo de restauração ou o processo de criação de uma réplica de leitura da instância de servidor flexível principal do Banco de Dados do Azure para PostgreSQL.
- No servidor restaurado ou de réplica, você pode alterar a chave gerenciada pelo cliente e a identidade gerenciada atribuída ao usuário usada para acessar o Cofre da Chave. Verifique se a identidade atribuída no servidor recém-criado tem as permissões necessárias no Cofre da Chave.
- Não revogue a chave original após a restauração. No momento, não oferecemos suporte à revogação de chaves depois que você restaura um servidor com chave gerenciada pelo cliente para outro servidor.
HSMs gerenciados
Os módulos de segurança de hardware (HSMs) são dispositivos de hardware invioláveis que ajudam a proteger processos criptográficos gerando, protegendo e gerenciando chaves usadas para criptografar dados, descriptografar dados, criar assinaturas digitais e criar certificados digitais. Os HSMs são testados, validados e certificados de acordo com os mais altos padrões de segurança, incluindo FIPS 140 e Common Criteria.
O Azure Key Vault Managed HSM é um serviço de nuvem totalmente gerenciado, altamente disponível, de locatário único e compatível com os padrões. Você pode usá-lo para proteger chaves criptográficas para seus aplicativos na nuvem por meio de HSMs validados pelo FIPS 140-3.
Ao criar novas instâncias de servidor flexíveis do Banco de Dados do Azure para PostgreSQL no portal do Azure com a chave gerenciada pelo cliente, você pode escolher o Azure Key Vault Managed HSM como um armazenamento de chaves, como uma alternativa ao Azure Key Vault. Os pré-requisitos, em termos de identidade e permissões definidas pelo usuário, são os mesmos do Cofre da Chave do Azure (conforme listado anteriormente neste artigo). Para obter mais informações sobre como criar uma instância do HSM gerenciado, suas vantagens e diferenças de um armazenamento de certificados compartilhado baseado no Cofre de Chaves e como importar chaves para o HSM gerenciado, consulte O que é o HSM gerenciado do Azure Key Vault?.
Condição chave gerenciada pelo cliente inacessível
Quando você configura a criptografia de dados com uma chave gerenciada pelo cliente armazenada no Cofre da Chave, o acesso contínuo a essa chave é necessário para que o servidor permaneça online. Se o servidor perder o acesso à chave mantida no Cofre da Chave, o servidor começará a negar todas as conexões em 10 minutos. O servidor emite uma mensagem de erro correspondente e altera o estado do servidor para Inacessível.
Algumas das possíveis razões pelas quais o estado do servidor pode se tornar Inacessível são:
- Se você girar a chave e esquecer de atualizar a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL, para que ela aponte para a nova versão da chave. A chave antiga, para a qual a instância estava apontando, eventualmente expira e transforma o estado do servidor em Inacessível. Para evitar isso, toda vez que você girar a chave, certifique-se de atualizar também a instância do seu servidor para apontar para a nova versão. Para fazer isso, você pode usar o
az postgres flexible-server update
, seguindo o exemplo que descreve "Alterar chave/identidade para criptografia de dados. A criptografia de dados não pode ser habilitada após a criação do servidor, isso apenas atualizará a chave/identidade." Como alternativa, você pode invocar a API Servers - Update REST do serviço. - Se você excluir a instância do Cofre da Chave, a instância flexível do servidor do Banco de Dados do Azure para PostgreSQL não poderá acessar a chave e será movida para um estado Inacessível . Para disponibilizar o servidor, recupere a instância do Cofre da Chave e revalide a criptografia de dados.
- Se você excluir a chave do Cofre da Chave, a instância flexível do servidor do Banco de Dados do Azure para PostgreSQL não poderá acessar a chave e será movida para um estado Inacessível . Para tornar o servidor disponível, recupere a chave e revalide a criptografia de dados.
- Se você excluir, da ID do Microsoft Entra, uma identidade gerenciada usada para recuperar uma chave do Cofre da Chave, ou excluindo a atribuição de função RBAC do Azure com a função Usuário de Criptografia do Serviço de Criptografia do Cofre da Chave. a instância flexível do servidor do Banco de Dados do Azure para PostgreSQL não pode acessar a chave e se move para um estado Inacessível . Para tornar o servidor disponível, recupere a identidade e revalide a criptografia de dados.
- Se você revogar a lista Cofre da Chave, as políticas de acesso get, wrapKey e unwrapKey da identidade gerenciada usada para recuperar uma chave do Cofre da Chave, a instância flexível do servidor do Banco de Dados do Azure para PostgreSQL não poderá acessar a chave e passará para um estado Inacessível. Adicione as políticas de acesso necessárias à identidade no Cofre da Chave.
- Se você configurar regras de firewall do Cofre de Chaves excessivamente restritivas, o servidor flexível do Banco de Dados do Azure para PostgreSQL não poderá se comunicar com o Cofre de Chaves para recuperar chaves. Ao configurar um firewall do Cofre da Chave, certifique-se de selecionar a opção para permitir que serviços confiáveis da Microsoft ignorem o firewall.
Nota
Quando uma chave é desativada, excluída, expirada ou inacessível, um servidor que tem dados criptografados por meio dessa chave se torna Inacessível, como dito anteriormente. O servidor não fica disponível até que você reative a chave ou atribua uma nova chave.
Geralmente, um servidor torna-se Inacessível dentro de 60 minutos depois que uma chave é desativada, excluída, expirada ou inacessível. Depois que a chave ficar disponível, o servidor pode levar até 60 minutos para se tornar acessível novamente.
Recuperando-se da exclusão de identidade gerenciada
Se o usuário atribuído identidade gerenciada usada para acessar a chave de criptografia armazenada no Cofre da Chave for excluído no ID do Microsoft Entra, você deverá seguir estas etapas para recuperar:
- Recupere a identidade ou crie uma nova identidade gerenciada do Entra ID.
- Se você criou uma nova identidade, mesmo que ela tenha exatamente o mesmo nome que tinha antes de ser excluída, atualize o Banco de Dados do Azure para propriedades de servidor flexíveis para que ele saiba que precisa usar essa nova identidade para acessar a chave de criptografia.
- Verifique se essa identidade tem permissões adequadas para operações na chave no Cofre de Chaves do Azure (AKV).
- Aguarde cerca de uma hora até que o servidor revalide a chave.
Importante
A simples criação de uma nova identidade de ID do Entra com o mesmo nome da identidade excluída não se recupera da exclusão de identidade gerenciada.
Usando criptografia de dados com chaves gerenciadas pelo cliente e recursos de continuidade de negócios com redundância geográfica
O servidor flexível do Banco de Dados do Azure para PostgreSQL dá suporte a recursos avançados de recuperação de dados, como réplicas e backup com redundância geográfica. A seguir estão os requisitos para configurar a criptografia de dados com CMKs e esses recursos, além dos requisitos básicos para criptografia de dados com CMKs:
- A chave de criptografia de backup com redundância geográfica precisa ser criada em uma instância do Cofre de Chaves que deve existir na região onde o backup com redundância geográfica está armazenado.
- A versão da API REST do Azure Resource Manager para dar suporte a servidores CMK habilitados para backup com redundância geográfica é 2022-11-01-preview. Se você quiser usar modelos do Azure Resource Manager para automatizar a criação de servidores que usam criptografia com CMKs e recursos de backup com redundância geográfica, use esta versão da API.
- Não é possível usar a mesma identidade gerenciada pelo usuário para autenticar a instância do Cofre da Chave do banco de dados primário e a instância do Cofre da Chave que contém a chave de criptografia para backup com redundância geográfica. Para manter a resiliência regional, recomendamos que você crie a identidade gerenciada pelo usuário na mesma região dos backups com redundância geográfica.
- Se você configurar um banco de dados de réplica de leitura para ser criptografado com CMKs durante a criação, sua chave de criptografia precisará estar em uma instância do Cofre da Chave na região onde reside o banco de dados de réplica de leitura. A identidade atribuída pelo usuário para autenticação nessa instância do Cofre da Chave precisa ser criada na mesma região.
Rotação de chaves gerenciada pelo cliente e chaves sem versão (visualização)
Como medida de precaução, recomendamos que rode a chave periodicamente ou sempre que esta estiver comprometida.
Nota
A maioria das empresas tem requisitos externos ou internos para alternar suas chaves periodicamente, por exemplo, a cada 90 dias. Para chaves geradas pelo Cofre de Chaves, você pode configurar a rotação automática de chaves criptográficas no Cofre de Chaves do Azure. Se você habilitar a rotação automática, deverá usar uma CMK sem versão (visualização) para criptografia de dados no Banco de Dados do Azure para servidor flexível PostgreSQL para aproveitar esse recurso.
Girar manualmente a chave ajuda a proteger seus dados caso a chave seja comprometida. Para girar a chave, crie ou importe uma nova geração de chaves para a chave comprometida.
- Se você estiver usando chaves gerenciadas pelo cliente sem versão (visualização), o servidor pegará a nova chave automaticamente.
- Se você estiver usando chaves versionadas, deverá atualizar o Banco de Dados do Azure para instância de servidor flexível do PostgreSQL para usar a nova versão da chave. Só então, o servidor começa a usar a nova chave para criptografar e descriptografar dados.
Chaves gerenciadas pelo cliente sem versão (visualização)
As chaves sem versão são recomendadas para criptografia de dados no Banco de Dados do Azure para o servidor flexível PostgreSQL. Ele cobre corretamente qualquer um dos cenários de rotação de chaves descritos anteriormente. Depois que uma nova versão de chave estiver disponível, o servidor usará automaticamente a nova versão da chave para criptografar e descriptografar dados.
A API não muda para chaves sem versão. Em vez de fornecer todo o URI do identificador de chave, omita a parte da versão do identificador de chave. Isso se aplica à API, à CLI do Azure, aos modelos ARM e aos modelos do Bicep. O portal do Azure tem uma caixa de seleção para habilitar o versionless, que você pode usar para selecionar apenas o identificador de chave versionless.
Limitações
Aqui estão as limitações atuais para configurar a chave gerenciada pelo cliente no Banco de Dados do Azure para o servidor flexível PostgreSQL:
- Você pode configurar a criptografia de chave gerenciada pelo cliente somente durante a criação de um novo servidor, não como uma atualização para uma instância de servidor flexível existente do Banco de Dados do Azure para PostgreSQL. Em vez disso, você pode restaurar um backup PITR para um novo servidor com criptografia CMK.
- Depois de configurar a criptografia de chave gerenciada pelo cliente, não é possível reverter para a chave gerenciada pelo sistema. Se você quiser reverter, você deve restaurar o servidor para um novo com criptografia de dados configurada com chave gerenciada pelo sistema.
- A instância do Azure Key Vault Managed HSM ou a instância do Azure Key Vault na qual você planeja armazenar a chave de criptografia deve existir na mesma região na qual a instância do Banco de Dados do Azure para servidor flexível está sendo criada.