Over back-up van Azure Database for PostgreSQL

Azure Backup en Azure Database Services zijn samengevoegd om een hoogwaardige back-upoplossing te bouwen voor Azure Database for PostgreSQL-servers die back-ups maximaal tien jaar bewaren. Naast langetermijnretentie biedt de oplossing de volgende mogelijkheden:

  • Door de klant beheerde geplande back-ups en back-ups op aanvraag op het niveau van de afzonderlijke database.
  • Herstel op databaseniveau naar een PostgreSQL-server of naar een blobopslag.
  • Centrale bewaking van alle bewerkingen en taken.
  • Back-ups worden opgeslagen in afzonderlijke beveiligings- en foutdomeinen. Als de bronserver of het bronabonnement in enig geval is aangetast, blijven de back-ups veilig in de Backup-kluis (in Azure Backup beheerde opslagaccounts).
  • Het gebruik van pg_dump biedt een grotere flexibiliteit bij herstelbewerkingen. Dit helpt u bij het herstellen van verschillende databaseversies

U kunt deze oplossing onafhankelijk gebruiken of in aanvulling op de systeemeigen back-upoplossing van Azure PostgreSQL die retentie tot 35 dagen biedt. De systeemeigen oplossing is geschikt voor operationele herstelbewerkingen, bijvoorbeeld 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 opgeven van welke Azure PostgreSQL-databases 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 bij de opgegeven PostgreSQL-server en om een back-up van de databases te maken.
  3. Azure Backup een werkrol (VM) met een back-upextensie erin 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 deze kan beginnen met het streamen van de back-upgegevens van de PostgreSQL-server met behulp van pg_dump (aangepast).
  5. De invoegtoepassing verzendt de gegevens rechtstreeks naar de Azure Backup beheerde opslagaccounts (gemaskeerd door de Backup-kluis), waardoor een faseringslocatie niet meer nodig is. De gegevens worden versleuteld met door Microsoft beheerde sleutels en door de Azure Backup-service opgeslagen in opslagaccounts.

Diagram met het back-upproces.

Azure Backup verificatie met de PostgreSQL-server

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

Verificatiemodel op basis van Key Vault

De Azure Backup-service moet verbinding maken met Azure PostgreSQL tijdens het maken van elke back-up. Hoewel 'gebruikersnaam en wachtwoord' (of connection string), die overeenkomt 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 roteren van referenties; Azure Backup roept de meest recente geheime gegevens uit de sleutelkluis aan om de back-up te maken.

Diagram met de workload of databasestroom.

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

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

    • Lezertoegang op de Azure PostgreSQL-server.
    • Key Vault toegang van geheimengebruiker (of geheimen ophalen, vermelden) in de Azure-sleutelkluis.
  2. Toegang via netwerklijn op:

    • De Azure PostgreSQL-server: de vlag Toegang tot Azure-services toestaan moet worden ingesteld op Ja.
    • De sleutelkluis: toestaan dat de vlag vertrouwde Microsoft-services wordt ingesteld op Ja.
  3. Back-upbevoegdheden van databasegebruiker voor de database

Notitie

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

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

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 een back-upstroom, is de ervaring voor het inline verlenen van deze machtigingen momenteel niet beschikbaar. Daarom moet u handmatig toegang 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) beschikt over de volgende herstelbevoegdheden voor de database:

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

Verificatiemodel op basis van Azure Active Directory

We hebben eerder een ander verificatiemodel gelanceerd dat volledig was gebaseerd op Azure Active Directory (Azure AD). We bieden nu echter het nieuwe verificatiemodel op basis van een sleutelkluis (zoals hierboven wordt uitgelegd) als een alternatieve optie, waardoor het configuratieproces gemakkelijker wordt.

Download dit document voor een geautomatiseerd script en gerelateerde instructies voor het gebruik van dit verificatiemodel. Het verleent een juiste set machtigingen aan een Azure PostgreSQL-server voor back-up en herstel.

Notitie

Alle nieuwe configuratiebeveiliging vindt alleen plaats met het nieuwe verificatiemodel voor de sleutelkluis. Alle bestaande back-upexemplaren die zijn geconfigureerd voor beveiliging met de Azure AD verificatie, blijven echter bestaan en er worden regelmatig back-ups gemaakt. Als u deze back-ups wilt herstellen, moet u de op Azure AD gebaseerde verificatie 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-lezertoegang van de Backup-kluis in op de Azure PostgreSQL-server.

    Schermopname van de optie voor het instellen van de M S I Reader-toegang van de Backup-kluis op de Azure PostgreSQL-server.

  2. Netwerk line-of-sight-toegang op de Azure PostgreSQL-server: stel de vlag Toegang tot Azure-services toestaan in op Ja.

    Schermopname van de optie voor het instellen van toegang tot de netwerklijn op de Azure PostgreSQL-server.

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

  1. Stel msi van de Back-upkluis in Key Vault toegang van de gebruiker geheimen (of geheimen ophalen, vermelden) in de Azure-sleutelkluis. Voor het toewijzen van machtigingen 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.

    Schermopname van de optie om geheime gebruikerstoegang te bieden.

    Schermopname van de optie om de M S I Key Vault Geheimen van de back-upkluis toegang te verlenen tot de sleutelkluis.

    • Toegangsbeleid gebruiken (dat wil gezegd, machtigingsmodel is ingesteld op Kluistoegangsbeleid):

      Schermopname van de optie om machtigingen te verlenen met behulp van machtigingsmodel is ingesteld op Kluistoegangsbeleidsmodel.

  2. Netwerk line-of-sight-toegang in de sleutelkluis: stel de vlag Vertrouwde Microsoft-services toestaan in op Ja.

    Schermopname van het instellen van de vlag Vertrouwde Microsoft-services toestaan op Ja voor Toegang via netwerklijn voor de sleutelkluis.

Back-upbevoegdheden van 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$

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.

Schermopname van het proces om verbinding te maken met de Azure PostgreSQL-server met behulp van het P G-beheerprogramma.

Maak een nieuwe server met een naam naar keuze. Voer de naam/het adres van de host in die gelijk is aan de servernaam die wordt weergegeven in de resourceweergave van Azure PostgreSQL in de Azure Portal.

Schermopname van de optie voor het maken van een nieuwe server met behulp van het P G-beheerprogramma.

Schermopname van de optie voor het invoeren van de hostnaam of het adres dezelfde naam als de servernaam.

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

Schermopname van het proces voor het toevoegen van het huidige client-id-adres aan de firewallregels.

U kunt nieuwe databases en databasegebruikers toevoegen aan de server. Voeg voor databasegebruikers een nieuwe aanmeldings-/groepsrollen toe. Zorg ervoor dat Kan aanmelden? is ingesteld op Ja.

Schermopname van het proces voor het toevoegen van nieuwe databases en databasegebruikers aan de server.

Schermopname van het proces voor het toevoegen van een nieuwe aanmeldings- of groepsrol voor databasegebruikers.

Schermopname die laat zien dat de verificatie van de optie kan aanmelden is ingesteld op Ja.

Volgende stappen

Back-up van Azure Database for PostgreSQL