Om säkerhetskopiering med Azure Database for PostgreSQL
Azure Backup och Azure Database Services har gått samman för att skapa en säkerhetskopieringslösning i företagsklass för Azure Database for PostgreSQL-servrar som behåller säkerhetskopior i upp till 10 år. Förutom långsiktig kvarhållning erbjuder lösningen följande funktioner:
- Kundkontrollerade schemalagda säkerhetskopieringar och säkerhetskopieringar på begäran på enskild databasnivå.
- Återställning på databasnivå till valfri PostgreSQL-server eller till bloblagring.
- Central övervakning av alla åtgärder och jobb.
- Säkerhetskopior som lagras i separata säkerhets- och feldomäner. Om källservern eller prenumerationen komprometteras under några omständigheter förblir säkerhetskopiorna säkra i säkerhetskopieringsvalvet (i hanterade Azure Backup-lagringskonton).
- Användning av pg_dump ger större flexibilitet vid återställningar. Detta hjälper dig att återställa mellan databasversioner
Du kan använda den här lösningen oberoende av varandra eller utöver den inbyggda säkerhetskopieringslösning som erbjuds av Azure PostgreSQL som erbjuder kvarhållning i upp till 35 dagar. Den inbyggda lösningen passar för driftåterställning, till exempel när du vill återställa från de senaste säkerhetskopiorna. Azure Backup-lösningen hjälper dig med dina efterlevnadsbehov och mer detaljerad och flexibel säkerhetskopiering/återställning.
Kommentar
Azure Database for PostgreSQL – Enskild server är på pensionsvägen och är planerad att tas ur bruk senast den 28 mars 2025.
Om du för närvarande har en Azure Database for PostgreSQL – enskild servertjänst som är värd för produktionsservrar är vi glada att kunna informera dig om att du kan migrera din Azure Database for PostgreSQL – enskild server till Azure Database for PostgreSQL – flexibel server.
Azure Database for PostgreSQL – Flexibel server är en fullständigt hanterad produktionsklar> databastjänst som är utformad för mer detaljerad kontroll och flexibilitet för databashanteringsfunktioner och konfigurationsinställningar med säkerhetskopieringslösningen i företagsklass av Azure Backup. Mer information om Azure Database for PostgreSQL – flexibel server finns i Azure Database for PostgreSQL – flexibel server.
Säkerhetskopieringsprocess
- Som säkerhetskopieringsadministratör kan du ange de Azure PostgreSQL-databaser som du tänker säkerhetskopiera. Du kan också ange information om Azure-nyckelvalvet som lagrar de autentiseringsuppgifter som krävs för att ansluta till de angivna databaserna. Dessa autentiseringsuppgifter dirigeras säkert av databasadministratören i Azure-nyckelvalvet.
- Säkerhetskopieringstjänsten verifierar sedan om den har rätt behörighet att autentisera med den angivna PostgreSQL-servern och säkerhetskopiera dess databaser.
- Azure Backup startar en arbetsroll (VM) med ett säkerhetskopieringstillägg installerat för att kommunicera med den skyddade PostgreSQL-servern. Det här tillägget består av en koordinator och ett PostgreSQL-plugin-program. Koordinatorn utlöser arbetsflöden för olika åtgärder, till exempel säkerhetskopiering och återställning, och plugin-programmet hanterar det faktiska dataflödet.
- Vid den schemalagda tidpunkten kommunicerar koordinatorn med plugin-programmet så att den börjar strömma säkerhetskopierade data från PostgreSQL-servern med hjälp av pg_dump (anpassad).
- Plugin-programmet skickar data direkt till azure backup-hanterade lagringskonton (maskerade av säkerhetskopieringsvalvet), vilket eliminerar behovet av en mellanlagringsplats. Data krypteras med hjälp av Microsoft-hanterade nycklar och lagras av Azure Backup-tjänsten på lagringskonton.
Azure Backup-autentisering med PostgreSQL-servern
Azure Backup följer strikta säkerhetsriktlinjer som fastställts av Azure. behörigheter för resursen som ska säkerhetskopieras förutsätts inte och måste uttryckligen ges av användaren.
Nyckelvalvsbaserad autentiseringsmodell
Azure Backup-tjänsten måste ansluta till Azure PostgreSQL när varje säkerhetskopia utförs. Även om "användarnamn + lösenord" (eller anslutningssträng), som motsvarar databasen, används för att upprätta den här anslutningen lagras inte dessa autentiseringsuppgifter med Azure Backup. I stället måste dessa autentiseringsuppgifter på ett säkert sätt dirigeras av databasadministratören i Azure-nyckelvalvet som en hemlighet. Arbetsbelastningsadministratören ansvarar för att hantera och rotera autentiseringsuppgifter. Azure Backup anropar den senaste hemliga informationen från nyckelvalvet för att ta säkerhetskopian.
Uppsättning behörigheter som krävs för säkerhetskopiering av Azure PostgreSQL-databaser
Bevilja följande åtkomstbehörigheter till MSI för Backup-valvet:
- Läsaråtkomst på Azure PostgreSQL-servern.
- Åtkomst till Key Vault-hemligheter (eller hämta, lista hemligheter) i Azure-nyckelvalvet.
Nätverksåtkomst för siktlinje på:
- Azure PostgreSQL-servern – Tillåt att åtkomst till Azure-tjänstflaggan anges till Ja.
- Nyckelvalvet – Tillåt att flaggan för betrodda Microsoft-tjänster anges till Ja.
Databasanvändarens behörigheter för säkerhetskopiering i databasen
Kommentar
Du kan bevilja dessa behörigheter i det konfigurerade säkerhetskopieringsflödet med ett enda klick om du (administratören för säkerhetskopieringen) har skrivbehörighet för de avsedda resurserna eller använder en ARM-mall om du inte har de behörigheter som krävs (när flera personer är inblandade).
Uppsättning behörigheter som krävs för återställning av Azure PostgreSQL-databas
Behörigheter för återställning liknar de som behövs för säkerhetskopiering och du måste bevilja behörigheter på PostgreSQL-målservern och dess motsvarande nyckelvalv. Till skillnad från i konfigurera säkerhetskopieringsflödet är det för närvarande inte tillgängligt att bevilja dessa behörigheter infogat. Därför måste du bevilja åtkomsten manuellt på Postgres-servern och motsvarande nyckelvalv.
Se dessutom till att databasanvändaren (som motsvarar autentiseringsuppgifterna som lagras i nyckelvalvet) har följande återställningsprivilegier i databasen:
- ALTER USER username CREATEDB;
- Tilldela rollen azure_pg_admin till databasanvändaren.
Microsoft Entra ID-baserad autentiseringsmodell
Vi hade tidigare lanserat en annan autentiseringsmodell som helt baserades på Microsoft Entra-ID. Men nu tillhandahåller vi den nya nyckelvalvsbaserade autentiseringsmodellen (enligt beskrivningen ovan) som ett alternativ, vilket underlättar konfigurationsprocessen.
Ladda ned det här dokumentet för att hämta ett automatiserat skript och relaterade instruktioner för att använda den här autentiseringsmodellen. Den beviljar en lämplig uppsättning behörigheter till en Azure PostgreSQL-server för säkerhetskopiering och återställning.
Kommentar
Allt nytt konfigurerat skydd sker endast med den nya autentiseringsmodellen för nyckelvalvet. Alla befintliga säkerhetskopieringsinstanser som konfigurerats skydd med Microsoft Entra-ID-baserad autentisering kommer dock att fortsätta att finnas och regelbundna säkerhetskopieringar tas. För att återställa dessa säkerhetskopior måste du följa microsoft entra-ID-baserad autentisering.
Bevilja åtkomst på Azure PostgreSQL-servern och Key Vault manuellt
Om du vill bevilja alla åtkomstbehörigheter som krävs av Azure Backup läser du följande avsnitt:
Åtkomstbehörigheter på Azure PostgreSQL-servern
Ange MSI Reader-åtkomst för Backup-valvet på Azure PostgreSQL-servern.
Nätverksåtkomst på Azure PostgreSQL-servern: Ange flaggan Tillåt åtkomst till Azure-tjänster till "Ja".
Åtkomstbehörigheter för Azure Key Vault (associerad med PostgreSQL-servern)
Ange Åtkomst till MSI Key Vault-hemligheter för Backup-valvet (eller hämta, lista hemligheter) i Azure-nyckelvalvet. Om du vill tilldela behörigheter kan du använda rolltilldelningar eller åtkomstprinciper. Det krävs inte att du lägger till behörigheten med båda alternativen eftersom det inte hjälper.
Med hjälp av azure-behörighetsbaserad åtkomstkontroll (Azure RBAC) auktorisering (d.s. behörighetsmodell anges till rollbaserad åtkomstkontroll i Azure):
- Under Åtkomstkontroll ger du säkerhetskopieringsvalvets MSI Key Vault Secrets User åtkomst till nyckelvalvet. Bärare av den rollen kommer att kunna läsa hemligheter.
- Bevilja behörighet till program för åtkomst till ett Azure-nyckelvalv med hjälp av Azure RBAC.
Med hjälp av åtkomstprinciper (det vill: Behörighetsmodellen är inställd på Åtkomstprincip för valv):
- Ange behörigheter för Hämta och Lista för hemligheter.
- Lär dig mer om att tilldela en Azure Key Vault-åtkomstprincip
Åtkomst till nätverkslinje för nyckelvalvet: Ställ in flaggan Tillåt betrodd Microsoft-tjänster på Ja.
Databasanvändarens behörigheter för säkerhetskopiering i databasen
Kör följande fråga i PG-administratörsverktyget (ersätt användarnamnet med databasanvändar-ID:t):
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$
Kommentar
Om en databas som säkerhetskopieringen redan har konfigurerats för misslyckas med UserErrorMissingDBPermissions kan du läsa den här felsökningsguiden för att få hjälp med att lösa problemet.
Använda PG-administratörsverktyget
Ladda ned PG-administratörsverktyget om du inte redan har det. Du kan ansluta till Azure PostgreSQL-servern via det här verktyget. Du kan också lägga till databaser och nya användare på den här servern.
Skapa en ny server med ett valfritt namn. Ange värdnamnet/adressnamnet på samma sätt som servernamnet som visas i Azure PostgreSQL-resursvyn i Azure Portal.
Se till att du lägger till den aktuella klient-ID-adressen i brandväggsreglerna för anslutningen.
Du kan lägga till nya databaser och databasanvändare på servern. För databasanvändare lägger du till en ny inloggnings-/grupproller. Se till att Kan logga in? är inställt på Ja.