Informationen zur Sicherung von Azure Database for PostgreSQL
Azure Backup und Azure Database Services wurden zusammengeführt, um eine Sicherungslösung für Unternehmen mit Azure Database for PostgreSQL-Servern zu entwickeln, die Sicherungen für bis zu 10 Jahre aufbewahrt. Neben der langfristigen Aufbewahrung bietet die Lösung die folgenden Funktionen:
- Kundenseitig gesteuerte, geplante und bedarfsorientierte Sicherungen der einzelnen Datenbanken.
- Wiederherstellungen auf Datenbankebene auf einem beliebigen PostgreSQL-Server oder in einem beliebigen Blobspeicher.
- Zentrale Überwachung aller Vorgänge und Aufträge.
- Sicherungen werden in separaten Sicherheits- und Fehlerdomänen gespeichert. Wenn der Quellserver oder das Abonnement auf irgendeine Weise kompromittiert wird, bleiben die Sicherungen im Azure Backup-Tresor (in von Azure Backup verwalteten Speicherkonten) sicher.
- Die Verwendung von pg_dump ermöglicht eine größere Flexibilität bei Wiederherstellungen. Dadurch können Sie Wiederherstellungen über Datenbankversionen hinweg durchführen.
Sie können diese Lösung unabhängig oder zusätzlich zur nativen Sicherungslösung verwenden, die von Azure PostgreSQL angeboten wird und die eine Aufbewahrungsdauer von bis zu 35 Tagen ermöglicht. Die native Lösung eignet sich für operative Wiederherstellungen, wenn Sie z. B. die neuesten Sicherungen wiederherstellen möchten. Die Azure Backup-Lösung hilft Ihnen bei der Erfüllung Ihrer Konformitätsanforderungen sowie bei genaueren und flexibleren Sicherungen/Wiederherstellungen.
Hinweis
Azure Database for PostgreSQL – Single Server wird eingestellt. Der geplante Termin hierfür ist der 28. März 2025.
Wenn Sie derzeit den Dienst Azure Database for PostgreSQL – Single Server zum Hosten von Produktionsservern nutzen, können Sie Ihre Instanzen von Azure Database for PostgreSQL – Single Server zu Azure Database for PostgreSQL – Flexible Server migrieren.
„Azure Database for PostgreSQL – Flexibler Server“ ist ein vollständig verwalteter produktionsbereiter Datenbankdienst, der mit der Sicherungslösung von Azure Backup auf Unternehmensniveau eine differenziertere Steuerung und mehr Flexibilität bei den Verwaltungsfunktionen und Konfigurationseinstellungen der Datenbank ermöglicht. Weitere Informationen zu Azure Database for PostgreSQL –Flexible Server finden Sie unter Azure Database for PostgreSQL – Flexible Server.
Sicherungsprozess
- Als Sicherungsadministrator können Sie die Azure PostgreSQL-Datenbanken angeben, die Sie sichern möchten. Darüber hinaus können Sie auch die Details des Azure Key Vault angeben, in dem die Anmeldeinformationen gespeichert werden, die zum Herstellen einer Verbindung mit den angegebenen Datenbanken erforderlich sind. Diese Anmeldeinformationen werden vom Datenbankadministrator im Azure Key Vault per Seeding sicher verwaltet werden.
- Der Sicherungsdienst überprüft dann, ob er über die entsprechenden Berechtigungen zum Authentifizieren beim angegebenen PostgreSQL-Server und zum Sichern seiner Datenbanken verfügt.
- Azure Backup erstellt eine Workerrolle (VM) mit einer darin installierten Sicherungserweiterung, um mit dem geschützten PostgreSQL-Server zu kommunizieren. Diese Erweiterung besteht aus einem Koordinator und einem PostgreSQL-Plug-In. Der Koordinator löst Workflows für verschiedene Vorgänge aus, z. B. Sicherung und Wiederherstellung, und das Plug-In verwaltet den eigentlichen Datenfluss.
- Zum geplanten Zeitpunkt kommuniziert der Koordinator mit dem Plug-In, damit es das Streaming der Sicherungsdaten vom PostgreSQL-Server mit pg_dump (custom) startet.
- Das Plug-In sendet die Daten direkt an die von Azure Backup verwalteten Speicherkonten (maskiert durch den Azure Backup-Tresor), sodass kein Stagingspeicherort erforderlich ist. Die Daten werden mit von Microsoft verwalteten Schlüsseln verschlüsselt und vom Azure Backup-Dienst in Speicherkonten gespeichert.
Azure Backup-Authentifizierung beim PostgreSQL-Server
Azure Backup befolgt strenge, durch Azure festgelegte Sicherheitsrichtlinien. Es wird nicht davon ausgegangen, dass Berechtigungen für die zu sichernde Ressource vorliegen, sondern diese müssen vom Benutzer explizit erteilt werden.
Schlüsseltresorbasiertes Authentifizierungsmodell
Der Azure Backup-Dienst muss beim Erstellen der einzelnen Sicherungen eine Verbindung mit Azure PostgreSQL herstellen. Zum Herstellen dieser Verbindung wird zwar „Benutzername + Kennwort“ (oder Verbindungszeichenfolge) entsprechend der Datenbank verwendet, diese Anmeldeinformationen werden aber nicht mit Azure Backup gespeichert. Stattdessen müssen diese Anmeldeinformationen vom Datenbankadministrator im Azure Key Vault als Geheimnis per Seeding sicher verwaltet werden. Der Workloadadministrator ist für das Verwalten und Rotieren von Anmeldeinformationen verantwortlich. Azure Backup ruft die neuesten Geheimnisdetails aus dem Schlüsseltresor auf, um die Sicherung zu erstellen.
Satz erforderlicher Berechtigungen für die Azure PostgreSQL-Datenbanksicherung
Erteilen Sie der MSI des Azure Backup-Tresors die folgenden Zugriffsberechtigungen:
- Zugriff als Leser auf den Azure PostgreSQL-Server.
- Zugriff als Key Vault-Geheimnisbenutzer (oder die Berechtigungen „get“, „list“ für Geheimnisse) für Azure Key Vault.
Netzwerk-Sichtverbindungszugriff auf:
- Azure PostgreSQL-Server: Das Flag Zugriff auf Azure-Dienste zulassen muss auf Ja festgelegt sein.
- Key Vault: Das Flag Vertrauenswürdige Microsoft-Dienste zulassen muss auf Ja festgelegt sein.
Sicherungsberechtigungen des Datenbankbenutzers für die Datenbank
Hinweis
Sie können diese Berechtigungen innerhalb des Flows Sicherung konfigurieren mit einem einzigen Klick gewähren, wenn Sie (der Sicherungsadministrator) über Schreibzugriff auf die vorgesehenen Ressourcen verfügen, oder eine ARM-Vorlage verwenden, wenn Sie nicht über die erforderlichen Berechtigungen verfügen (wenn mehrere Personas beteiligt sind).
Satz erforderlicher Berechtigungen für die Azure PostgreSQL-Datenbankwiederherstellung
Berechtigungen für die Wiederherstellung ähneln denen, die für die Sicherung erforderlich sind, und Sie müssen die Berechtigungen für den PostgreSQL-Zielserver und den zugehörigen Schlüsseltresor erteilen. Diese Berechtigungen können derzeit nur im Flow „Sicherung konfigurieren“ und nicht inline gewährt werden. Daher müssen Sie den Zugriff auf den Postgres-Server und den entsprechenden Schlüsseltresor manuell gewähren.
Stellen Sie außerdem sicher, dass der Datenbankbenutzer (entsprechend den im Schlüsseltresor gespeicherten Anmeldeinformationen) über die folgenden Wiederherstellungsberechtigungen für die Datenbank verfügt:
- ALTER USER username CREATEDB;
- Weisen Sie dem Datenbankbenutzer die Rolle azure_pg_admin zu.
Microsoft Entra ID-basiertes Authentifizierungsmodell
Wir hatten zuvor ein anderes Authentifizierungsmodell gestartet, das vollständig auf Microsoft Entra ID basierte. Wir stellen nun jedoch das neue Key Vault-basierte Authentifizierungsmodell (wie oben erläutert) als alternative Option bereit, um den Konfigurationsprozess zu erleichtern.
Laden Sie dieses Dokument herunter, um ein automatisiertes Skript und entsprechende Anweisungen zur Verwendung diese Authentifizierungsmodells zu erhalten. Es erteilt einem Azure PostgreSQL-Server ausreichende Berechtigungen für die Sicherung und Wiederherstellung.
Hinweis
Der gesamte neue konfigurierende Schutz erfolgt nur mit dem neuen Key Vault-Authentifizierungsmodell. Alle vorhandenen Sicherungsinstanzen, die mit der Microsoft Entra ID-basierten Authentifizierung konfiguriert wurden, sind jedoch weiterhin vorhanden, und es werden regelmäßige Sicherungen erstellt. Um diese Sicherungen wiederherzustellen, müssen Sie die Microsoft Entra ID-basierte Authentifizierung befolgen.
Manuelles Gewähren des Zugriffs auf den Azure PostgreSQL-Server und Azure Key Vault
Informationen zum Erteilen aller Zugriffsberechtigungen, die von Azure Backup benötigt werden, finden Sie in den folgenden Abschnitten:
Zugriffsberechtigungen für den Azure PostgreSQL-Server
Legen Sie den Zugriff als Leser für die MSI des Azure Backup-Tresors auf den Azure PostgreSQL-Server fest.
Netzwerk-Sichtverbindungszugriff auf den Azure PostgreSQL-Server: Legen Sie das Flag „Zugriff auf Azure-Dienste zulassen“ auf „Ja“ fest.
Zugriffsberechtigungen für den (dem PostgreSQL-Server zugeordneten) Azure-Schlüsseltresor
Legen Sie den Zugriff als Key Vault-Geheimnisbenutzer (oder die Berechtigungen get, list für Geheimnisse) der MSI des Azure Backup-Tresors auf das Azure Key Vault-Objekt fest. Zum Zuweisen von Berechtigungen können Sie Rollenzuweisungen oder Zugriffsrichtlinien verwenden. Es ist nicht erforderlich, die Berechtigung mit beiden Optionen hinzuzufügen, da dies nicht hilft.
Bei Verwenden der Autorisierung durch die rollenbasierte Zugriffssteuerung in Azure (Azure RBAC) (d. h. das Berechtigungsmodell ist auf die rollenbasierte Zugriffssteuerung in Azure festgelegt):
- Gewähren Sie unter „Zugriffskontrolle“ den Zugriff als Key Vault-Geheimnisbenutzer der MSI des Azure Backup-Tresors auf den Schlüsseltresor. Inhaber dieser Rolle können Geheimnisse lesen.
- Gewähren der Berechtigung zum Zugreifen auf einen Azure-Schlüsseltresor für Anwendungen mit Azure RBAC.
Verwenden von Zugriffsrichtlinien (d. h. das Berechtigungsmodell ist auf die Zugriffsrichtlinie des Tresors festgelegt):
- Legen Sie die Get- und List-Berechtigungen für Geheimnisse fest.
- Weitere Informationen zum Zuweisen einer Azure Key Vault-Zugriffsrichtlinie
Netzwerk-Sichtverbindungszugriff auf den Schlüsseltresor: Legen Sie das Flag Vertrauenswürdige Microsoft-Dienste zulassen auf Ja fest.
Sicherungsberechtigungen des Datenbankbenutzers für die Datenbank
Führen Sie die folgende Abfrage im PG admin-Tool aus (ersetzen Sie username durch die ID des Datenbankbenutzers):
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$
Hinweis
Wenn eine Datenbank, für die die Sicherung bereits konfiguriert wurde, mit UserErrorMissingDBPermissions fehlschlägt, schlagen Sie bitte in diesem Handbuch zur Problembehandlung nach, um Hilfe bei der Behebung des Problems zu erhalten.
Verwenden des PG admin-Tools
Laden Sie das PG admin-Tool herunter, wenn Sie es noch nicht haben. Mit diesem Tool können Sie eine Verbindung mit dem Azure PostgreSQL-Server herstellen. Außerdem können Sie diesem Server Datenbanken und neue Benutzer hinzufügen.
Erstellen Sie einen neuen Server mit einem Namen Ihrer Wahl. Geben Sie den Hostnamen/Adressnamen ein, der mit dem Servernamen identisch ist, der in der Azure PostgreSQL-Ressourcenansicht im Azure-Portal angezeigt wird.
Stellen Sie sicher, dass Sie den Firewallregeln die aktuelle Client-ID-Adresse hinzufügen, damit die Verbindung hergestellt werden kann.
Sie können dem Server neue Datenbanken und Datenbankbenutzer hinzufügen. Für Datenbankbenutzer fügen Sie eine neue Anmeldung bzw. Gruppenrollen hinzu. Stellen Sie sicher, dass Kann sich anmelden? auf Jafestgelegt ist.