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.

Sicherungsprozess

  1. 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.
  2. Der Sicherungsdienst überprüft dann, ob er über die entsprechenden Berechtigungen zum Authentifizieren beim angegebenen PostgreSQL-Server und zum Sichern seiner Datenbanken verfügt.
  3. 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.
  4. Zum geplanten Zeitpunkt kommuniziert der Koordinator mit dem Plug-In, damit es das Streaming der Sicherungsdaten vom PostgreSQL-Server mit pg_dump (custom) startet.
  5. 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.

Diagram showing the backup process.

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.

Diagram showing the workload or database flow.

Satz erforderlicher Berechtigungen für die Azure PostgreSQL-Datenbanksicherung

  1. 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.
  2. 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.
  3. 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

  1. Legen Sie den Zugriff als Leser für die MSI des Azure Backup-Tresors auf den Azure PostgreSQL-Server fest.

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

  2. Netzwerk-Sichtverbindungszugriff auf den Azure PostgreSQL-Server: Legen Sie das Flag „Zugriff auf Azure-Dienste zulassen“ auf „Ja“ fest.

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

Zugriffsberechtigungen für den (dem PostgreSQL-Server zugeordneten) Azure-Schlüsseltresor

  1. 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.

    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.

    • Verwenden von Zugriffsrichtlinien (d. h. das Berechtigungsmodell ist auf die Zugriffsrichtlinie des Tresors festgelegt):

      Screenshot showing the option to grant permission using Permission model is set to Vault access policy model.

  2. Netzwerk-Sichtverbindungszugriff auf den Schlüsseltresor: Legen Sie das Flag Vertrauenswürdige Microsoft-Dienste zulassen auf Ja fest.

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

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.

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

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.

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.

Stellen Sie sicher, dass Sie den Firewallregeln die aktuelle Client-ID-Adresse hinzufügen, damit die Verbindung hergestellt werden kann.

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

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.

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.

Nächste Schritte

Sicherung von Azure Database for PostgreSQL