Sobre o backup do Banco 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 empresarial de backup para servidores do Banco de Dados do Azure para PostgreSQL que retém backups por até 10 anos. Além da retenção de longo prazo, a solução oferece os seguintes recursos:

  • Backup sob demanda e agendado controlado pelo cliente no nível de banco de dados individual.
  • Restaurações em nível de banco de dados para qualquer servidor PostgreSQL ou diretamente para qualquer armazenamento de blobs.
  • Monitoramento centralizado de todas as operações e trabalhos.
  • Backups armazenados em domínios separados de falha e segurança. Se o servidor de origem ou a assinatura estiverem comprometidos em qualquer circunstância, os backups permanecerão seguros no cofre de backup (em contas de armazenamento gerenciadas do Backup do Azure).
  • O uso de pg_dump permite uma maior flexibilidade nas restaurações. Isso ajuda a restaurar nas versões do banco de dados

Você pode usar essa solução de forma independente ou junto com a solução de backup nativo oferecida pelo Azure PostgreSQL que oferece retenção de até 35 dias. A solução nativa é adequada para recuperações operacionais, como quando se deseja recuperar os backups mais recentes. A solução de Backup do Azure ajuda nos requerimentos de conformidade e em backups e restaurações mais granulares e flexíveis.

Processo de backup

  1. Como administrador de backup, você pode especificar os bancos de dados do PostgreSQL do Azure que você 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 a(os) 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 ele tem as permissões apropriadas para autenticar com o servidor PostgreSQL especificado e para fazer backup de seus bancos de dados.
  3. O Backup do Azure gira uma função de trabalho (VM) com uma extensão de backup instalada nela para se comunicar com o servidor PostgreSQL protegido. Essa extensão consiste em um coordenador e um plugin do PostgreSQL. O coordenador dispara 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 que começa a transmissão dos dados de backup do servidor PostgreSQL usando o pg_dump (personalizado) .
  5. O plug-in envia os dados diretamente para as contas de armazenamento gerenciadas do Backup do Azure (mascaradas pelo cofre do Backup), eliminando a necessidade de um local de preparo. 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 de Backup do Azure com o servidor PostgreSQL

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

Modelo de autenticação baseada em cofre de chaves

O serviço de Backup do Azure precisa se conectar ao Azure PostgreSQL ao fazer cada backup. Embora ' username + password ' (ou cadeia de conexão) correspondentes 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 são propagadas com segurança pelo administrador do banco de dados no cofre de chaves do Azure como um segredo. O administrador de carga de trabalho é responsável por gerenciar e girar as credenciais; o Backup do Azure chama 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 do Azure para PostgreSQL

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

    • Acesso de leitor no servidor PostgreSQL do Azure.
    • Usuário secreto do Key Vault (ou obter, listar segredos), acesse o Azure Key Vault.
  2. Acesso de linha de visão de rede em:

    • O servidor PostgreSQL do Azure - Permite acesso aos serviços do Azure sinalizados para serem definidos como Sim.
    • O cofre de chaves - Permite que serviços de confiança da Microsoft marcados sejam definidos como Sim.
  3. Privilégios de backup do usuário do banco de dados no banco de dados

Observação

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

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

As permissões para restauração são semelhantes àquelas necessárias para o 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 embutidas 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 na ID do Microsoft Entra. No entanto, agora fornecemos o novo modelo de autenticação baseado em cofre de chaves (conforme explicado acima) como uma opção alternativa, que facilita o processo de configuração.

Baixe este documento para obter um script automatizado e as instruções relacionadas para usar esse modelo de autenticação. Ela concederá um conjunto apropriado de permissões para o servidor PostgreSQL do Azure, para fazer backup e restauração.

Observação

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

Conceder acesso no servidor PostgreSQL do Azure e no cofre de chaves manualmente

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

Permissões de acesso no servidor PostgreSQL do Azure

  1. Definir o acesso do leitor MSI do backup do cofre 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 de linha de visão de rede no servidor PostgreSQL do Azure: defina o sinalizador ' permitir acesso aos serviços do Azure ' para ' Sim '.

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

Permissões de acesso no Azure Key Vault (associado ao servidor PostgreSQL)

  1. Definir acesso do MSI do cofre do BackupUsuário secreto do Key Vault (ou obter, listar segredos), no Azure Key Vault. 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 as duas opções, pois isso não ajuda.

    • Usando a autorização do Azure RBAC (Controle de acesso baseado em função do Azure), ou seja, o modelo de permissão é definido como controle de acesso baseado em função do Azure:

    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 de linha de visão de rede no cofre de chaves: defina o sinalizador Permitir serviços de confiança 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 pela 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$

)

Observação

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 assistência para resolver o problema.

Usar a ferramenta de administração PG

Faça download da ferramenta de administração PG caso você não a tenha ainda. 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 esse servidor.

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

Crie um novo servidor com um nome de sua escolha. Insira o Nome do host/nome do endereço igual ao Nome do servidor exibido na exibição de recursos do PostgreSQL do Azure 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 aprovada.

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 de banco de dados, adicione uma nova Função de Grupo/Login. Verifique se Pode fazer logon? 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óximas etapas

Backup do Banco de Dados do Azure para PostgreSQL