Over back-up van Azure Database for PostgreSQL

Azure Backup en Azure Database Services zijn samengekomen om een zakelijke back-upoplossing te bouwen voor Azure Database for PostgreSQL-servers die back-ups tot 10 jaar bewaren. Naast langetermijnretentie biedt de oplossing de volgende mogelijkheden:

  • Door de klant beheerde geplande en on-demand back-ups op het niveau van de afzonderlijke database.
  • Databaseniveau herstelt naar elke PostgreSQL-server of naar een blobopslag.
  • Centrale controle van alle bewerkingen en taken.
  • Back-ups die zijn opgeslagen in een afzonderlijk beveiligings- en foutdomeinen. Als de bronserver of het abonnement in elke situatie wordt aangetast, blijven de back-ups veilig in de Backup-kluis (in door Azure Backup beheerde opslagaccounts).
  • Het gebruik van pg_dump biedt meer flexibiliteit bij herstelbewerkingen. Dit helpt u bij het herstellen van verschillende databaseversies

U kunt deze oplossing onafhankelijk of naast de systeemeigen back-upoplossing van Azure PostgreSQL gebruiken die retentie tot 35 dagen biedt. De systeemeigen oplossing is geschikt voor operationele herstelbewerkingen, zoals wanneer u wilt herstellen van de meest recente back-ups. De Azure Backup-oplossing helpt u bij uw nalevingsbehoeften en meer gedetailleerde en flexibele back-up/herstel.

Back-upproces

  1. Als back-upbeheerder kunt u de Azure PostgreSQL-databases opgeven waarvoor u een back-up wilt maken. Daarnaast kunt u ook de details opgeven van de Azure-sleutelkluis waarin de referenties worden opgeslagen die nodig zijn om verbinding te maken met de opgegeven database(s). Deze referenties worden veilig geseed door de databasebeheerder in de Azure-sleutelkluis.
  2. De back-upservice valideert vervolgens of deze de juiste machtigingen heeft om te verifiëren met de opgegeven PostgreSQL-server en een back-up van de databases te maken.
  3. Azure Backup draait een werkrol (VM) met daarin een back-upextensie geïnstalleerd om te communiceren met de beveiligde PostgreSQL-server. Deze extensie bestaat uit een coördinator en een PostgreSQL-invoegtoepassing. De coördinator activeert werkstromen voor verschillende bewerkingen, zoals back-up en herstel, en de invoegtoepassing beheert de werkelijke gegevensstroom.
  4. Op het geplande tijdstip communiceert de coördinator met de invoegtoepassing, zodat de back-upgegevens vanaf de PostgreSQL-server kunnen worden gestreamd met behulp van pg_dump (aangepast).
  5. De invoegtoepassing verzendt de gegevens rechtstreeks naar de door Azure Backup beheerde opslagaccounts (gemaskeerd door de Backup-kluis), waardoor er geen faseringslocatie meer nodig is. De gegevens worden versleuteld met door Microsoft beheerde sleutels en opgeslagen door de Azure Backup-service in opslagaccounts.

Diagram showing the backup process.

Azure Backup-verificatie met de PostgreSQL-server

Azure Backup volgt strikte beveiligingsrichtlijnen die door Azure zijn vastgelegd; Machtigingen voor de resource waarvan een back-up moet worden gemaakt, worden niet verondersteld en moeten expliciet door de gebruiker worden gegeven.

Verificatiemodel op basis van Key Vault

De Azure Backup-service moet verbinding maken met de Azure PostgreSQL tijdens het maken van elke back-up. Hoewel gebruikersnaam en wachtwoord (of verbindingsreeks), die overeenkomen met de database, worden gebruikt om deze verbinding te maken, worden deze referenties niet opgeslagen met Azure Backup. In plaats daarvan moeten deze referenties veilig worden geseed door de databasebeheerder in de Azure-sleutelkluis als geheim. De workloadbeheerder is verantwoordelijk voor het beheren en rouleren van referenties; Azure Backup roept de meest recente geheime gegevens van de sleutelkluis aan om de back-up te maken.

Diagram showing the workload or database flow.

Set machtigingen die nodig zijn voor back-up van Azure PostgreSQL-database

  1. Vernieuw de volgende toegangsmachtigingen voor de MSI van de Backup-kluis:

    • Lezertoegang op de Azure PostgreSQL-server.
    • Key Vault Secrets User (or get, list secrets) access on the Azure Key Vault.
  2. Netwerklijn voor gezichtstoegang op:

    • De Azure PostgreSQL-server: hiermee staat u toe dat de vlag toegang tot Azure-services is ingesteld op Ja.
    • De sleutelkluis: hiermee staat u toe dat vertrouwde Microsoft-services vlag is ingesteld op Ja.
  3. De back-upbevoegdheden van de databasegebruiker voor de database

Notitie

U kunt deze machtigingen in de back-upstroom met één klik verlenen als u (de back-upbeheerder) schrijftoegang hebt voor de beoogde resources of een ARM-sjabloon gebruikt als u niet over de vereiste machtigingen beschikt (wanneer meerdere persona's betrokken zijn).

Set machtigingen die nodig zijn voor het herstellen van een Azure PostgreSQL-database

Machtigingen voor herstel zijn vergelijkbaar met de machtigingen die nodig zijn voor back-up en u moet de machtigingen verlenen op de PostgreSQL-doelserver en de bijbehorende sleutelkluis. In tegenstelling tot bij het configureren van de back-upstroom is de ervaring om deze machtigingen inline te verlenen momenteel niet beschikbaar. Daarom moet u de toegang handmatig verlenen op de Postgres-server en de bijbehorende sleutelkluis.

Zorg er bovendien voor dat de databasegebruiker (die overeenkomt met de referenties die zijn opgeslagen in de sleutelkluis) de volgende herstelbevoegdheden voor de database heeft:

  • ALTER USER username CREATEDB;
  • Wijs de rol azure_pg_admin toe aan de databasegebruiker.

Verificatiemodel op basis van Microsoft Entra ID

We hadden eerder een ander verificatiemodel gelanceerd dat volledig was gebaseerd op Microsoft Entra-id. We bieden nu echter het nieuwe verificatiemodel op basis van een sleutelkluis (zoals hierboven uitgelegd) als een alternatieve optie, waardoor het configuratieproces wordt versoepeld.

Download dit document om een geautomatiseerd script en gerelateerde instructies op te halen voor het gebruik van dit verificatiemodel. Er wordt een juiste set machtigingen verleend aan een Azure PostgreSQL-server voor back-up en herstel.

Notitie

Alle nieuwe configuratiebeveiliging vindt alleen plaats met het nieuwe sleutelkluisverificatiemodel. Alle bestaande back-upexemplaren die zijn geconfigureerd voor beveiliging met de op Microsoft Entra ID gebaseerde verificatie, blijven echter bestaan en hebben regelmatig back-ups gemaakt. Als u deze back-ups wilt herstellen, moet u de verificatie op basis van de Microsoft Entra-id volgen.

Handmatig toegang verlenen op de Azure PostgreSQL-server en Key vault

Raadpleeg de volgende secties om alle toegangsmachtigingen te verlenen die nodig zijn voor Azure Backup:

Toegangsmachtigingen op de Azure PostgreSQL-server

  1. Stel de MSI Reader-toegang van de Backup-kluis in op de Azure PostgreSQL-server.

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

  2. Netwerklijn voor gezichtstoegang op de Azure PostgreSQL-server: stel de vlag Toegang tot Azure-services toestaan in op Ja.

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

Toegangsmachtigingen voor de Azure Key Vault (gekoppeld aan de PostgreSQL-server)

  1. Stel de MSI Key Vault-geheimengebruiker van de Back-upkluis in (of haal geheimen op, geef geheimen weer) in de Azure-sleutelkluis. Als u machtigingen wilt toewijzen, kunt u roltoewijzingen of toegangsbeleid gebruiken. Het is niet vereist om de machtiging toe te voegen met behulp van beide opties, omdat dit niet helpt.

    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. Netwerklijn voor gezichtstoegang in de sleutelkluis: stel de vlag Vertrouwde Microsoft-services toestaan in op Ja.

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

De back-upbevoegdheden van de databasegebruiker voor de database

Voer de volgende query uit in het PG-beheerprogramma (vervang de gebruikersnaam door de gebruikers-id van de database):

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$

)

Notitie

Als een database waarvoor de back-up al is geconfigureerd, mislukt met UserErrorMissingDBPermissions , raadpleegt u deze gids voor probleemoplossing voor hulp bij het oplossen van het probleem.

Het PG-beheerprogramma gebruiken

Download het PG-beheerprogramma als u dit nog niet hebt. U kunt via dit hulpprogramma verbinding maken met de Azure PostgreSQL-server. U kunt ook databases en nieuwe gebruikers toevoegen aan deze server.

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

Maak een nieuwe server met de naam van uw keuze. Voer de hostnaam/adresnaam in die gelijk is aan de servernaam die wordt weergegeven in de azure PostgreSQL-resourceweergave in Azure Portal.

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.

Zorg ervoor dat u het huidige client-id-adres toevoegt aan de firewallregels om de verbinding te doorlopen.

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

U kunt nieuwe databases en databasegebruikers toevoegen aan de server. Voeg voor databasegebruikers een nieuwe aanmeldings-/groepsrollen toe. Controleer of aanmelden mogelijk is ingesteld op Ja.

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.

Volgende stappen

Back-up van Azure Database for PostgreSQL