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
- 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.
- 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.
- 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.
- 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).
- 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.
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.
Set machtigingen die nodig zijn voor back-up van Azure PostgreSQL-database
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.
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.
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
Stel de MSI-lezertoegang van de Backup-kluis in op de Azure PostgreSQL-server.
Netwerk line-of-sight-toegang op de Azure PostgreSQL-server: stel de vlag Toegang tot Azure-services toestaan in op Ja.
Toegangsmachtigingen voor de Azure Key Vault (gekoppeld aan de PostgreSQL-server)
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.
Autorisatie voor op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruiken (dat wil gezegd, machtigingsmodel is ingesteld op op op rollen gebaseerd toegangsbeheer van Azure):
- Onder Toegangsbeheer verleent u de MSI-Key Vault geheimen van de back-upkluis toegang tot de sleutelkluis. Dragers van die rol kunnen geheimen lezen.
- Geef toepassingen toestemming om toegang te krijgen tot een Azure-sleutelkluis met behulp van Azure RBAC.
Toegangsbeleid gebruiken (dat wil gezegd, machtigingsmodel is ingesteld op Kluistoegangsbeleid):
- Stel de machtigingen Ophalen en Vermelden in voor geheimen.
- Meer informatie over Toegangsbeleid voor Azure Key Vault toewijzen
Netwerk line-of-sight-toegang in de sleutelkluis: stel de vlag Vertrouwde Microsoft-services toestaan in op Ja.
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.
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.
Zorg ervoor dat u het huidige client-id-adres toevoegt aan de firewallregels om de verbinding door te laten gaan.
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.