PostgreSQL Security und Härtung — Seminar für DBAs und Sicherheitsverantwortliche
PostgreSQL zu härten heißt, jede Schicht einer Instanz so einzustellen, dass nur vorgesehene Verbindungen, Personen und Abfragen an die Daten kommen — vom Netzwerk über Anmeldung und Rechte bis zu Protokoll, Verschlüsselung und Sicherung. Im Seminar nimmst du den Ist-Stand einer Instanz auf, sicherst sie Schicht für Schicht ab und dokumentierst die Maßnahmen für Audit und Betrieb. Dauer: 2 Tage, optional 3 Tage mit Praxistag.
Für wen ist dieses Seminar
Für PostgreSQL-Administratoren, die eine Instanz für einen Audit oder nach einem Sicherheitsvorfall belastbar absichern müssen. Für Security Engineers und Informationssicherheitsbeauftragte, die wissen wollen, welche Stellschrauben PostgreSQL bietet und wie man ihren Zustand prüft. Für Datenschutzbeauftragte und Compliance-Verantwortliche, die Zugriffsprotokolle, Verschlüsselung und Mandantentrennung beurteilen müssen. Und für Entwickler mit DBA-Verantwortung, deren Anwendung Rollen, Row-Level Security oder Funktionen mit erweiterten Rechten nutzt.
Das Angebot richtet sich an Unternehmen, Behörden und Selbstständige.
Was du mitbringen solltest
Du solltest PostgreSQL schon administriert haben: Installation, Konfigurationsdateien, Benutzer anlegen, pg_hba.conf mindestens einmal geändert. Dazu kommt ein Grundverständnis von Netzwerk und TLS — Zertifikat, Zertifizierungsstelle, Port, Firewall. Wer die Grundlagen des Betriebs erst aufbauen will, beginnt mit PostgreSQL Administration.
Geschult wird auf der jeweils aktuellen Version; bei Inhouse-Seminaren gern auch auf der Version, die ihr im Einsatz habt.
Inhalte im Überblick
Jeder Themenblock beginnt mit einer Prüfabfrage oder einem Werkzeug, das den Ist-Stand zeigt. Danach folgen die Einstellungen mit Begründung und Nebenwirkungen, am Ende läuft dieselbe Prüfung noch einmal. Geübt wird an einer Übungsinstanz mit typischen Schwachstellen gewachsener Installationen, die im Lauf des Seminars nacheinander behoben werden.
Bestandsaufnahme und Bedrohungsmodell
- Angriffsflächen einer Instanz: Netz, Anmeldung, Rechte, Code in der Datenbank, Betriebssystem, Sicherungen
- Bedrohungsmodell für die eigene Umgebung: wer greift von wo mit welchem Ziel zu
- Ist-Stand automatisiert erheben: CIS PostgreSQL Benchmark, DISA STIG, Security Assessment mit
pgdsat - Die Konfiguration als Prüfquelle:
pg_settings,pg_file_settings,pg_hba_file_rules,pg_ident_file_mappings - Patch-Stand: Minor Releases, Support-Ende einer Hauptversion, Sicherheitsmeldungen (CVE) verfolgen
Netzwerk, Verbindungen und TLS
listen_addresses, Unix-Domain-Sockets (unix_socket_permissions,unix_socket_group) und Firewall- TLS erzwingen:
hostssl,ssl_min_protocol_versionauf TLS 1.3,ssl_ciphers,ssl_tls13_ciphers,ssl_groups - Zertifikate verwalten: eigene CA, Sperrlisten (CRL), Rotation per Reload ohne Neustart, Schlüssel mit
ssl_passphrase_command - Client-Seite:
sslmode=verify-full,sslrootcert=system,sslnegotiation=direct,require_authgegen Downgrade - Verbindungsgrenzen:
max_connections,reserved_connections,superuser_reserved_connections,CONNECTION LIMITje Rolle - Brute Force und hängende Sitzungen:
authentication_timeout,auth_delay,idle_session_timeout,idle_in_transaction_session_timeout - Pooler und Hochverfügbarkeit in der Kette: PgBouncer mit TLS und SCRAM, REST-Schnittstelle von Patroni absichern
Authentifizierung
pg_hba.conflesen wie eine Firewall: Reihenfolge, Include-Dateien, reguläre Ausdrücke,reject-Regeln- SCRAM-SHA-256 statt MD5:
password_encryption, Umstellung im laufenden Betrieb, Abkündigung von MD5 - Zertifikatsbasierte Anmeldung:
cert,clientcert=verify-full, Benutzer-Mapping inpg_ident.conf - Single Sign-on mit OAuth 2.0 / OpenID Connect (OIDC) über ein Validator-Modul — etwa an Entra ID oder Keycloak
- Kerberos/GSSAPI gegen Active Directory, verschlüsselt per
hostgssenc - LDAP und RADIUS als Altlast: Risiken, Ablösewege
- Passwortrichtlinien:
passwordcheck,credcheck,VALID UNTIL, Ablaufwarnung - Kurzlebige Zugangsdaten statt gespeicherter Passwörter: HashiCorp Vault bzw. OpenBao (Database Secrets Engine), IAM-Token bei Cloud-Diensten
- Server-zu-Server ohne hinterlegtes Passwort: SCRAM-Passthrough für
postgres_fdwunddblink
Rollen und Rechte nach Least Privilege
- Login- und Gruppenrollen,
GRANT … WITH INHERIT/WITH SET,NOINHERIT - Ohne Superuser arbeiten: vordefinierte Rollen wie
pg_read_all_data,pg_monitor,pg_read_all_stats,pg_signal_backend,pg_maintain,pg_checkpoint,pg_use_reserved_connections CREATEROLEentschärft:createrole_self_grantund wer wen verwalten darf- Rollentrennung in der Anwendung: Eigentümer, Migration, Anwendung, Nur-Lesen, Monitoring
- Schema-Isolation:
public-Schema,REVOKE … FROM PUBLIC, sicheresearch_path-Muster - Default Privileges, Column-Level Privileges
- Rechte inventarisieren und gegen das Soll prüfen:
pg_permissions, Katalogabfragen ALTER SYSTEMsperren mitallow_alter_systemund Konfiguration als Code
Code in der Datenbank als Angriffsfläche
SECURITY DEFINERmit fixiertemsearch_path— und wannSECURITY INVOKERreicht- Views mit
security_barrierundsecurity_invoker, Funktionen mitLEAKPROOF - Hochrisiko-Funktionen:
COPY … PROGRAM,pg_read_server_files,lo_import/lo_export, untrusted Languages (plpython3u,plperlu) - Extensions als Lieferkette: Paketquelle,
trusted-Flag,shared_preload_librariesprüfen - SQL-Injection im dynamischen SQL:
format()mit%Iund%L,EXECUTE … USING - Kontrollierte Rechteausweitung mit
set_user, Sitzungsregeln über Login-Event-Trigger
Row-Level Security
ENABLEundFORCE ROW LEVEL SECURITY,PERMISSIVEundRESTRICTIVEPoliciesUSINGundWITH CHECK: Regeln für Lesen und Schreiben getrennt festlegen- Mandantentrennung (Multi-Tenancy) über Sitzungsvariablen — und was ein Transaction-Pooler daran ändert
- Wer RLS umgeht:
BYPASSRLS, Tabelleneigentümer, Superuser - Seitenkanäle und Performance: Fehlermeldungen,
LEAKPROOF, Indexe auf der Mandantenspalte
Audit-Logging und Protokollierung
- Bordmittel gezielt einsetzen:
log_connectionsmit Einzelstufen,log_disconnections,log_line_prefix,log_statement,log_parameter_max_length - Was ungewollt im Log landet: Passwörter in
ALTER ROLE, Parameterwerte, Abfragetexte inpg_stat_activityundpg_stat_statements - pgAudit: Session- und Object-Audit, rollenbasiertes Objekt-Audit, Filter gegen Protokollflut
- Strukturierte Logs (
jsonlog) an ein SIEM übergeben: syslog, Fluent Bit, Vector; Auswertung mit pgBadger - Aufbewahrung, Manipulationsschutz und Datenminimierung im Audit-Log
Verschlüsselung und Schutz der Daten
- Encryption at Rest mit Volume-Verschlüsselung (LUKS, Cloud-KMS): wogegen sie schützt und wogegen nicht
- Ausblick Transparent Data Encryption (TDE): bisher nur mit angepasstem Server, etwa
pg_tdein der Percona-Distribution - Spaltenverschlüsselung mit
pgcryptogegen Verschlüsselung in der Anwendung; Schlüsselverwaltung als eigentliche Aufgabe - Passwörter in Anwendungstabellen richtig speichern:
crypt()mitgen_salt('bf') - Pseudonymisierung und Anonymisierung von Test- und Analysedaten mit PostgreSQL Anonymizer
- Datenprüfsummen (
data_checksums) gegen stille Beschädigung - Sicherungen als Datenabflussweg: verschlüsseltes pgBackRest-Repository, WAL-Archiv,
pg_dump-Dateien,restrict_nonsystem_relation_kind - Replikation absichern: eigene Replikationsrolle,
replication-Einträge inpg_hba.conf, Slots
Betrieb, Container und Cloud
- Betriebssystem: Dienstbenutzer, Rechte auf
PGDATA,data_directory_mode, SELinux - Container und Kubernetes: CloudNativePG, Betrieb ohne root, Secrets, Network Policies
- Managed PostgreSQL: was der Anbieter übernimmt und was bei dir bleibt (Shared Responsibility)
- Härtung automatisieren: Konfiguration als Code, Abweichungen erkennen, Benchmark als wiederkehrender Lauf
Workshop: euer Härtungsplan
- Bestandsaufnahme einer Instanz mit Prüfskript und Benchmark
- Befunde priorisieren: Quick Wins, mittelfristige und strategische Maßnahmen
- Nachweise für Prüfungen: ISO 27001, BSI IT-Grundschutz (Baustein Relationale Datenbanken), Anforderungen aus der DSGVO
- Peer-Review des Plans mit Angriffsfragen
Praxistag (optional)
- Single Sign-on mit OAuth 2.0 / OIDC an einem Identity-Provider durchspielen, Anmeldung per
psql - Dynamische Zugangsdaten mit Vault bzw. OpenBao: Rollen, Ablauf, Widerruf
- Einen gehärteten Cluster mit CloudNativePG aufsetzen
- Inhouse: eure eigene Instanz gegen den Benchmark prüfen und den Härtungsplan daran ausrichten
Dauer: 2 Tage, optional 3 Tage mit Praxistag
Was du danach kannst
- den Sicherheitszustand einer PostgreSQL-Instanz mit Benchmark und Katalogabfragen reproduzierbar erheben und als Befundliste festhalten
pg_hba.confund TLS so einstellen, dass nur verschlüsselte, vorgesehene Verbindungen ankommen, und das überpg_stat_sslnachweisen- MD5-Passwörter aufspüren, auf SCRAM-SHA-256 umstellen und eine zertifikatsbasierte Anmeldung einrichten (Single Sign-on mit OAuth/OIDC praktisch im Praxistag)
- eine Anwendung vom Superuser auf ein Rollenmodell nach Least Privilege umbauen und Soll und Ist der Rechte per Abfrage vergleichen
- Funktionen mit
SECURITY DEFINERauf Schwachstellen prüfen und Mandanten mit Row-Level Security so trennen, dass Lesen und Schreiben getrennt geregelt sind - begründen, welche Verschlüsselung gegen welchen Angriff hilft, und ein Objekt-Audit mit pgAudit für Tabellen mit personenbezogenen Daten aufsetzen
Formate und Ablauf
Du arbeitest an einer Übungsinstanz mit vorbereiteten Schwachstellen und einem Prüfskript, das am Anfang und am Ende jedes Abschnitts läuft. Die Unterlagen bestehen aus einem Teilnehmerskript mit Parameter-Checkliste, der Übungsumgebung und einer Vorlage für den Härtungsplan.
| Format | Ablauf | Passend wenn |
|---|---|---|
| Inhouse vor Ort | Zwei Tage bei euch — von Leverkusen aus im Raum Köln und bundesweit; Beispiele auf eure Umgebung abgestimmt | ihr eine konkrete Instanz oder einen anstehenden Audit im Blick habt |
| Remote / Online | Zwei Tage im virtuellen Klassenraum, Übungsinstanz für jede Person | Teilnehmende an mehreren Standorten sitzen |
| Mit Praxistag (3 Tage) | Standardprogramm plus Single Sign-on, Vault, Container — inhouse auf Wunsch an eurer eigenen Instanz | ihr direkt in die Umsetzung gehen wollt |
Verwandte Seminare und Vertiefung
Die Grundlagen des Betriebs — Installation, Rollen, pg_hba.conf, TLS, Sicherung und einen ersten Blick auf Row-Level Security und pgaudit — vermittelt PostgreSQL Administration. Diese Themen kommen hier wieder vor und werden vertieft: mit Bedrohungsmodell, Prüfabfragen und Dokumentation der Maßnahmen. Wer beide Seminare gemeinsam bucht, hört sie nicht doppelt: wir stimmen Themenschnitt und Dauer vorab ab und legen die Überschneidungen zusammen. SECURITY DEFINER, search_path und dynamisches SQL behandelt PL/pgSQL-Programmierung als Sprachthema; hier geht es um die Angriffsfläche, die sie öffnen. Wie Sicherheitsparameter mit der Last zusammenspielen — Verbindungsgrenzen, Pooler, Protokollmenge —, vertieft PostgreSQL Performance-Tuning.
Die Konfigurationsdatei, in der auch die Sicherheitsparameter stehen, erklärt der Referenzartikel PostgreSQL Performance-Settings. Dienstbenutzer, Dateirechte und Kernel-Einstellungen der Schicht darunter beschreibt Das Betriebssystem unter PostgreSQL, und PostgreSQL Wartung zeigt die Wartungsarbeiten, für die eine Betriebsrolle heute keinen Superuser mehr braucht. Alle PostgreSQL-Seminare stehen in der Kategorie PostgreSQL.
Dein Dozent
Frank Glück schult seit mehr als 30 Jahren und programmiert seit 1986. Seit 1999 ist er auch als Dozent für die GFU tätig. Seit 1999 hat er Dutzende Datenbankmigrationen nach PostgreSQL begleitet, gecoacht oder durchgeführt — bei Konzernen und Behörden — und mit pg-clusterbackup ein eigenes Open-Source-Werkzeug für die Sicherung mehrerer PostgreSQL-Cluster geschrieben.
Häufige Fragen (FAQ)
Wie lange dauert das Seminar?
Das Seminar dauert 2 Tage. Optional kommt ein dritter Praxistag dazu: Single Sign-on mit OAuth 2.0 / OIDC, dynamische Zugangsdaten mit Vault oder OpenBao, ein gehärteter Cluster unter Kubernetes und inhouse die Prüfung eurer eigenen Instanz.
Worin unterscheidet es sich vom Seminar PostgreSQL Administration?
Das Administrationsseminar richtet eine Instanz ein und betreibt sie; Rollen, pg_hba.conf, TLS und Row-Level Security kommen dort als Grundlage vor. Dieses Seminar geht von einem Bedrohungsmodell aus, nimmt den Ist-Stand auf, sichert jede Schicht ab und dokumentiert die Maßnahmen. Dazu kommen Themen, die dort fehlen: Single Sign-on, Passwortrichtlinien, Code in der Datenbank, Verschlüsselung, Anonymisierung und Container. Bei einer gemeinsamen Buchung stimmen wir den Themenschnitt vorab ab, damit nichts doppelt kommt.
Hilft das Seminar bei einem Audit nach ISO 27001 oder BSI IT-Grundschutz?
Es liefert Prüfschritte, einen Härtungsplan und eine Zuordnung der Maßnahmen zu ISO 27001, zum BSI-Baustein für relationale Datenbanken und zu den Anforderungen der DSGVO an die Sicherheit der Verarbeitung. Eine Zertifizierung oder Rechtsberatung ersetzt es nicht; es bereitet die technische Seite so vor, dass ihr sie belegen könnt.
Geht Single Sign-on mit jeder PostgreSQL-Version?
Die Anmeldung über OAuth 2.0 / OpenID Connect gibt es erst in den neuesten Hauptversionen und braucht ein Validator-Modul für den jeweiligen Identity-Provider. Auf älteren Versionen bleibt Kerberos/GSSAPI gegen Active Directory der empfohlene Weg zur zentralen Anmeldung; beides wird im Seminar behandelt.
Wird Transparent Data Encryption behandelt?
Als Ausblick. TDE steckt bisher nicht in der Community-Version von PostgreSQL, sondern nur in Distributionen mit angepasstem Server, etwa pg_tde bei Percona. Den Schwerpunkt legt das Seminar auf Verfahren, die mit jeder Installation funktionieren: Volume-Verschlüsselung, Spaltenverschlüsselung mit pgcrypto und verschlüsselte Sicherungen.
Können wir an unserer eigenen Instanz arbeiten?
Bei einem Inhouse-Seminar gern, am besten im Praxistag und an einer anonymisierten Kopie. Werden dabei personenbezogene Daten berührt, schließen wir vorab eine Vereinbarung zur Auftragsverarbeitung. Im Standardprogramm arbeitest du an einer Übungsinstanz mit vorbereiteten Schwachstellen.
Wie viele Personen können teilnehmen und was bekomme ich an Unterlagen?
Die Teilnehmerzahl stimmen wir mit der Anfrage ab; sie richtet sich nach Format und Ziel. Du erhältst ein Teilnehmerskript mit Parameter-Checkliste, die Übungsumgebung und eine Vorlage für den Härtungsplan.
Was kostet das Seminar?
Der Preis richtet sich nach Format, Umfang und Teilnehmerzahl und wird auf Anfrage genannt.
Individuell anfragen
Nach deiner Anfrage klären wir, welche Versionen und Umgebungen ihr betreibt, ob ein Audit ansteht und wo der Schwerpunkt liegen soll — Anmeldung, Rechte, Audit oder Verschlüsselung. Danach bekommst du einen Termin- und Inhaltsvorschlag. Die Anfrage ist unverbindlich und kostenlos.