Acerca da cópia de segurança da Base de Dados do Azure para PostgreSQL

O Backup do Azure e os Serviços de Banco de Dados do Azure se uniram para criar uma solução de backup de classe empresarial para o Banco de Dados do Azure para servidores PostgreSQL que retém backups por até 10 anos. Além da retenção a longo prazo, a solução oferece as seguintes capacidades:

  • Backups agendados e sob demanda controlados pelo cliente no nível do banco de dados individual.
  • Restaurações no nível de banco de dados para qualquer servidor PostgreSQL ou para qualquer armazenamento de blob.
  • Monitorização central de todos os trabalhos e operações.
  • Cópias de segurança armazenadas num domínio de segurança e falha separado. Se o servidor de origem ou a assinatura for comprometido em qualquer circunstância, os backups permanecerão seguros no cofre de Backup (nas contas de armazenamento gerenciado do Backup do Azure).
  • O uso de pg_dump permite uma maior flexibilidade nas restaurações. Isso ajuda a restaurar entre versões de banco de dados

Você pode usar essa solução de forma independente ou além da solução de backup nativa oferecida pelo Azure PostgreSQL que oferece retenção de até 35 dias. A solução nativa é adequada para recuperações operacionais, como quando você deseja se recuperar dos backups mais recentes. A solução de Backup do Azure ajuda você com suas necessidades de conformidade e backup/restauração mais granular e flexível.

Processo de cópia de segurança

  1. Como administrador de backup, você pode especificar os bancos de dados PostgreSQL do Azure dos quais pretende fazer backup. Além disso, você também pode especificar os detalhes do cofre de chaves do Azure que armazena as credenciais necessárias para se conectar ao(s) banco(s) de dados especificado(s). Essas credenciais são propagadas com segurança pelo administrador do banco de dados no cofre de chaves do Azure.
  2. Em seguida, o serviço de backup valida se tem permissões apropriadas para autenticar com o servidor PostgreSQL especificado e fazer backup de seus bancos de dados.
  3. O Backup do Azure cria uma função de trabalho (VM) com uma extensão de backup instalada nele para se comunicar com o servidor PostgreSQL protegido. Esta extensão consiste em um coordenador e um plugin PostgreSQL. O coordenador aciona fluxos de trabalho para várias operações, como backup e restauração, e o plug-in gerencia o fluxo de dados real.
  4. No horário agendado, o coordenador se comunica com o plugin, para que ele comece a transmitir os dados de backup do servidor PostgreSQL usando pg_dump (personalizado).
  5. O plug-in envia os dados diretamente para as contas de armazenamento gerenciado do Backup do Azure (mascaradas pelo cofre de Backup), eliminando a necessidade de um local de preparação. Os dados são criptografados usando chaves gerenciadas pela Microsoft e armazenados pelo serviço de Backup do Azure em contas de armazenamento.

Diagram showing the backup process.

Autenticação do Backup do Azure com o servidor PostgreSQL

O Backup do Azure segue diretrizes de segurança rígidas estabelecidas pelo Azure; As permissões no recurso para backup não são assumidas e precisam ser explicitamente dadas pelo usuário.

Modelo de autenticação baseada no Key Vault

O serviço de Backup do Azure precisa se conectar ao PostgreSQL do Azure enquanto faz cada backup. Embora 'nome de usuário + senha' (ou cadeia de conexão), correspondente ao banco de dados, sejam usados para fazer essa conexão, essas credenciais não são armazenadas com o Backup do Azure. Em vez disso, essas credenciais precisam ser propagadas com segurança pelo administrador do banco de dados no cofre de chaves do Azure como um segredo. O administrador da carga de trabalho é responsável por gerenciar e alternar as credenciais; O Backup do Azure solicita os detalhes secretos mais recentes do cofre de chaves para fazer o backup.

Diagram showing the workload or database flow.

Conjunto de permissões necessárias para o backup do banco de dados PostgreSQL do Azure

  1. Conceda as seguintes permissões de acesso ao MSI do cofre de backup:

    • Acesso de leitor no servidor PostgreSQL do Azure.
    • Segredos do Cofre da Chave Acesso do usuário (ou obter, listar segredos) no cofre de chaves do Azure.
  2. Acesso à linha de visão da rede em:

    • O servidor Azure PostgreSQL – Permitir que o acesso ao sinalizador de serviços do Azure seja definido como Sim.
    • O cofre de chaves – Permitir que o sinalizador de serviços confiáveis da Microsoft seja definido como Sim.
  3. Privilégios de backup do usuário do banco de dados no banco de dados

Nota

Você pode conceder essas permissões dentro do fluxo de backup configurado com um único clique se você (o administrador de backup) tiver acesso de "gravação" nos recursos pretendidos, ou usar um modelo ARM se não tiver as permissões necessárias (quando várias personas estiverem envolvidas).

Conjunto de permissões necessárias para a restauração do banco de dados PostgreSQL do Azure

As permissões para restauração são semelhantes às necessárias para backup e você precisa conceder as permissões no servidor PostgreSQL de destino e seu cofre de chaves correspondente. Ao contrário de configurar o fluxo de backup, a experiência para conceder essas permissões em linha não está disponível no momento. Portanto, você precisa conceder manualmente o acesso no servidor Postgres e no cofre de chaves correspondente.

Além disso, verifique se o usuário do banco de dados (correspondente às credenciais armazenadas no cofre de chaves) tem os seguintes privilégios de restauração no banco de dados:

  • ALTER USER username CREATEDB;
  • Atribua a função azure_pg_admin ao usuário do banco de dados.

Modelo de autenticação baseado no Microsoft Entra ID

Anteriormente, tínhamos lançado um modelo de autenticação diferente que era inteiramente baseado no Microsoft Entra ID. No entanto, agora fornecemos o novo modelo de autenticação baseado em cofre de chaves (como explicado acima) como uma opção alternativa, o que facilita o processo de configuração.

Faça o download deste documento para obter um script automatizado e instruções relacionadas para usar esse modelo de autenticação. Ele concederá um conjunto apropriado de permissões a um servidor PostgreSQL do Azure, para backup e restauração.

Nota

Toda a nova proteção de configuração ocorrerá apenas com o novo modelo de autenticação do cofre de chaves. No entanto, todas as instâncias de backup existentes configuradas com a autenticação baseada no Microsoft Entra ID continuarão a existir e terão backups regulares realizados. Para restaurar esses backups, você precisa seguir a autenticação baseada no Microsoft Entra ID.

Conceder acesso manualmente no servidor PostgreSQL do Azure e Key Vault

Para conceder todas as permissões de acesso necessárias ao Backup do Azure, consulte as seguintes seções:

Permissões de acesso no servidor PostgreSQL do Azure

  1. Defina o acesso do Leitor MSI do cofre de backup no servidor PostgreSQL do Azure.

    Screenshot showing the option to set Backup vault’s M S I Reader access on the Azure PostgreSQL server.

  2. Acesso à linha de visão da rede no servidor PostgreSQL do Azure: defina o sinalizador 'Permitir acesso aos serviços do Azure' como 'Sim'.

    Screenshot showing the option to set network line of sight access on the Azure PostgreSQL server.

Permissões de acesso no cofre da Chave do Azure (associado ao servidor PostgreSQL)

  1. Defina o acesso do usuário (ou obter, listar segredos) do cofre de backup no cofre de chaves do Azure. Para atribuir permissões, você pode usar atribuições de função ou políticas de acesso. Não é necessário adicionar a permissão usando ambas as opções, pois isso não ajuda.

    Screenshot showing the option to provide secret user access.

    Screenshot showing the option to grant the backup vault’s M S I Key Vault Secrets User access on the key vault.

  2. Acesso à linha de visão da rede no cofre da chave: defina o sinalizador Permitir serviços confiáveis da Microsoft como Sim.

    Screenshot showing to set the Allow trusted Microsoft services flag to yes for Network line of sight access on the key vault.

Privilégios de backup do usuário do banco de dados no banco de dados

Execute a seguinte consulta na ferramenta de administração PG (substitua username pelo ID de usuário do banco de dados):

DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$

)

Nota

Se um banco de dados para o qual o backup já foi configurado estiver falhando com UserErrorMissingDBPermissions Consulte este guia de solução de problemas para obter ajuda na resolução do problema.

Use a ferramenta de administração PG

Faça o download da ferramenta de administração PG se ainda não a tiver. Você pode se conectar ao servidor PostgreSQL do Azure por meio dessa ferramenta. Além disso, você pode adicionar bancos de dados e novos usuários a este servidor.

Screenshot showing the process to connect to Azure PostgreSQL server using P G admin tool.

Crie um novo servidor com um nome à sua escolha. Insira o nome do host/endereço igual ao nome do servidor exibido na exibição de recursos do Azure PostgreSQL no portal do Azure.

Screenshot showing the option to create new server using P G admin tool.

Screenshot showing the option to enter the Host name or address name same as the Server name.

Certifique-se de adicionar o endereço de ID do cliente atual às regras de Firewall para que a conexão seja realizada.

Screenshot showing the process to add the current client I D address to the Firewall rules.

Você pode adicionar novos bancos de dados e usuários de banco de dados ao servidor. Para usuários do banco de dados, adicione um novo Login/Group Roles'. Certifique-se de que Can login? está definido como Sim.

Screenshot showing the process to add new databases and database users to the server.

Screenshot showing the process to add a new login or group role for database users.

Screenshot showing the verification of the can login option is set to Yes.

Próximos passos

Backup do Banco de Dados do Azure para PostgreSQL