Wie wird die Datenisolation zwischen Mandanten technisch umgesetzt?
amaise setzt eine mehrschichtige logische Mandantentrennung ein, die bereits beim Eintritt in das System greift:
Entry Proxy: Die Mandantenidentität wird bereits beim frühesten Eintritt in das System aufgelöst; daraus wird der dokumentbezogene Verschlüsselungsschlüssel des Mandanten ausgewählt. Nur verifizierte Anfragen mit gültiger Mandantenzuordnung können auf die Daten dieses Mandanten zugreifen — durchgesetzt über den gesamten Request-Lebenszyklus.
Datenbank (zeilenbasierte Mandantentrennung, anwendungsseitig erzwungen): Jeder Datensatz trägt eine Mandanten-ID, und jede Abfrage ist auf den authentifizierten Mandanten eingeschränkt. Dies wird in der Anwendung erzwungen und fortlaufend durch automatisierte mandantenübergreifende Tests in unserer CI-Pipeline sowie durch Code-Reviews überprüft. Datenbankeigene Row-Level Security (Postgres RLS) ist als zusätzliche Durchsetzungsebene geplant. Alle Abfragen verwenden ausschliesslich parametrisierte, typsichere Methoden — SQL-Injection wird dadurch architekturbedingt verhindert.
Speicher: Kundendaten in S3 sind mit mandantenspezifischen KMS-Schlüsseln (CMK) verschlüsselt. Jeder Mandant verfügt über seinen eigenen Verschlüsselungsschlüssel, der bereits bei der Zuweisung am Entry Proxy festgelegt wird.
Autorisierung: Objekt-basierte Berechtigungsprüfungen erzwingen Zugriffskontrollen (ACL) auf Ebene einzelner Dokumente, Fälle und weiterer Entitäten — inklusive Delegation und Ablaufzeiten.
API: Die Mandanten-ID wird aus den authentifizierten JWT-Claims aufgelöst. Jeder Endpunkt erzwingt rollenbasierte Zugriffskontrolle.
Diese Berechtigungsprüfungen werden fortlaufend durch automatisierte Tests sichergestellt; ein mandantenübergreifender Zugriffsversuch ist dabei nicht von einer Anfrage nach nicht vorhandenen Daten zu unterscheiden — amaise gibt nie preis, ob ein Datensatz eines anderen Mandanten existiert.
Zusätzlich sind die regionalen Umgebungen (EU, US, CH) in vollständig getrennten AWS-Konten betrieben — ohne jeglichen kontoübergreifenden Zugriff.