Freigeben über


Konfigurieren der Sicherheit für Ihren PostgreSQL-Server mit Azure Arc-Unterstützung

In dieser Dokumentation werden verschiedene Aspekte der Sicherheit Ihrer Servergruppe beschrieben:

  • Verschlüsselung von ruhenden Daten
  • Postgres-Rollen und Benutzerverwaltung
    • Allgemeine Perspektiven
    • Ändern des Kennworts des postgres-Administrators
  • Überwachung

Hinweis

Als Previewfunktion unterliegt die in diesem Artikel vorgestellte Technologie den zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen.

Die neuesten Updates sind in den Versionshinweisenverfügbar.

Verschlüsselung von ruhenden Daten

Sie können die Verschlüsselung ruhender Daten implementieren, indem Sie entweder die Datenträger verschlüsseln, auf denen Sie Ihre Datenbanken speichern, und/oder indem Sie Datenbankfunktionen zum Verschlüsseln der Daten verwenden, die Sie einfügen oder aktualisieren.

Hardware: Verschlüsselung von Linux-Hostvolumes

Implementieren Sie die Systemdatenverschlüsselung, um jegliche Daten zu schützen, die sich auf den Datenträgern befinden, die von Ihren Azure Arc-fähigen Data Services verwendet werden. Weitere Informationen hierzu finden Sie hier:

Software: Verwenden der PostgreSQL-Erweiterung pgcrypto in Ihrer Servergruppe

Zusätzlich zur Verschlüsselung der Datenträger, die zum Hosten Ihres Azure Arc-Setups verwendet werden, können Sie Ihren PostgreSQL-Server mit Azure Arc-Unterstützung so konfigurieren, dass Mechanismen zur Verfügung gestellt werden, die Ihre Anwendungen zum Verschlüsseln von Daten in Ihren Datenbanken verwenden können. Die pgcrypto-Erweiterung ist Teil der contrib-Erweiterungen von Postgres und in Ihrem PostgreSQL-Server mit Azure Arc-Unterstützung verfügbar. Weitere Informationen zur pgcrypto-Erweiterung finden Sie hier. Zusammenfassend können Sie die folgenden Befehle zum Aktivieren, Erstellen und Verwenden der Erweiterung verwenden:

Erstellen der pgcrypto-Erweiterung

Stellen Sie mit dem Clienttool Ihrer Wahl eine Verbindung mit Ihrer Servergruppe her, und führen Sie die PostgreSQL-Standardabfrage aus:

CREATE EXTENSION pgcrypto;

Einzelheiten hier finden Sie, wie Sie eine Verbindung herstellen können.

Überprüfen den Liste der einsatzbereiten Erweiterungen in Ihrer Servergruppe

Sie können überprüfen, ob die pgcrypto-Erweiterung einsatzbereit ist, indem Sie die verfügbaren Erweiterungen in Ihrer Servergruppe auflisten. Stellen Sie mit dem Clienttool Ihrer Wahl eine Verbindung mit Ihrer Servergruppe her, und führen Sie die PostgreSQL-Standardabfrage aus:

select * from pg_extension;

pgcrypto sollte angezeigt werden, wenn Sie die Erweiterung mit den oben angegebenen Befehlen aktiviert und erstellt haben.

Verwenden der pgcrypto-Erweiterung

Sie können nun den Code Ihrer Anwendungen so anpassen, dass sie von pgcrypto bereitgestellte Funktionen verwenden:

  • Allgemeine Hashfunktionen
  • Kennworthashfunktionen
  • PGP-Verschlüsselungsfunktionen
  • Rohverschlüsselungsfunktionen
  • Funktionen für zufällige Daten

(Beispielsweise zum Generieren von Hashwerten) Führen Sie den folgenden Befehl aus:

select crypt('Les sanglots longs des violons de l_automne', gen_salt('md5'));

Daraufhin wird der folgende Hash zurückgegeben:

              crypt
------------------------------------
 $1$/9ACBYOV$z52PAGjQ5WTU9xvEECBNv/   

Alternativ gibt folgendes Beispiel:

select hmac('Les sanglots longs des violons de l_automne', 'md5', 'sha256');

Daraufhin wird der folgende Hash zurückgegeben:

                                hmac
--------------------------------------------------------------------
 \xd4e4790b69d2cc8dbce3385ee63272bc7760f1603640bb211a7b864e695570c5

Alternativ können Sie verschlüsselte Daten beispielsweise wie ein Kennwort speichern:

  • Eine Anwendung speichert Geheimnisse in der folgenden Tabelle:

    create table mysecrets(USERid int, USERname char(255), USERpassword char(512));
    
  • Verschlüsseln Sie das Passwort beim Anlegen eines Benutzers:

    insert into mysecrets values (1, 'Me', crypt('MySecretPasswrod', gen_salt('md5')));
    
  • Beachten Sie, dass das Passwort verschlüsselt ist:

    select * from mysecrets;
    

Ausgabe:

- USERid: 1
- USERname: Me
- USERpassword: $1$Uc7jzZOp$NTfcGo7F10zGOkXOwjHy31

Wenn Sie sich mit der Anwendung verbinden und ein Kennwort eingeben, wird in der Tabelle mysecrets nachgeschaut und der Name des Benutzers zurückgegeben, wenn eine Übereinstimmung zwischen dem der Anwendung mitgeteilten Kennwort und den in der Tabelle gespeicherten Kennwörtern besteht. Beispiel:

  • Geben Sie das falsche Passwort ein:

    select USERname from mysecrets where (USERpassword = crypt('WrongPassword', USERpassword));
    

    Output

      USERname
    ---------
    (0 rows)
    
  • Geben Sie das richtige Passwort ein:

    select USERname from mysecrets where (USERpassword = crypt('MySecretPasswrod', USERpassword));
    

    Ausgabe:

      USERname
    ---------
    Me
    (1 row)
    

In diesem kleinen Beispiel wird veranschaulicht, dass Sie ruhende Daten (Speichern verschlüsselter Daten) auf einem PostgreSQL-Server mit Azure Arc-Unterstützung mithilfe der Postgres-Erweiterung pgcrypto verschlüsseln und Ihre Anwendungen die von pgcrypto bereitgestellten Funktionen zum Bearbeiten dieser verschlüsselten Daten verwenden können.

Postgres-Rollen und Benutzerverwaltung

Allgemeine Perspektiven

Um Rollen und Benutzer in Ihrem PostgreSQL-Server mit Azure Arc-Unterstützung zu konfigurieren, verwenden Sie die Standard-Postgres-Methode zur Verwaltung von Rollen und Benutzern. Weitere Einzelheiten finden Sie hier.

Überwachung

Konfigurieren Sie für Überwachungsszenarien Ihre Servergruppe so, dass sie die Postgres-Erweiterungen vom Typ pgaudit verwendet. Ausführlichere Informationen zu pgaudit finden Sie im GitHub-Projekt pgAudit. Informationen zum Aktivieren der Erweiterung pgaudit in Ihrer Servergruppe finden Sie unter Verwenden von PostgreSQL-Erweiterungen in Azure Arc-fähigen PostgreSQL Hyperscale-Servergruppen.

Verwenden der SSL-Verbindung

SSL ist für Clientverbindungen erforderlich. In der Verbindungszeichenfolge sollte der SSL-Modusparameter nicht deaktiviert werden. Erstellen von Verbindungszeichenfolgen.