Video: Cohesity - Security, Privacy & Compliance 2024
gespeichert wird. Eine der gebräuchlichsten Methoden zum Sichern von Daten in NoSQL ist die Zuweisung jedes Datensatzes (oder Dokuments oder Diagramms je nach Datenbanktyp).) mit einer Reihe von Berechtigungen, die mit Rollen verknüpft sind. Dies ist eine rollenbasierte Zugriffskontrolle oder kurz RBAC.
Betrachten Sie eine Pressemitteilung für eine Website, die in einer (aggregierten) NoSQL-Datenbank gespeichert wird. Die Editor-Rolle verfügt möglicherweise über Aktualisierungsberechtigungen für das Dokument, während eine öffentlichere Rolle möglicherweise nur über Leseberechtigungen verfügt.
Dieser Anwendungsfall erfordert die Zuweisung von Rollen Berechtigungen, nicht Benutzer Berechtigungen. Benutzer können einer oder mehreren Rollen zugewiesen werden. Daher erben Benutzer Berechtigungen basierend auf der Summe ihrer Rollen.
Eine Rolle erstellen zu müssen, um einem Benutzer die Berechtigung zur Ausführung einer bestimmten Funktion zu erteilen, mag als zusätzliche Arbeit erscheinen, aber dieser Ansatz ist sehr nützlich. Betrachten Sie einen Benutzer, der in eine andere Abteilung wechselt oder ganz weggeht.
Sie möchten nicht manuell nach jedem Dokument suchen müssen, dessen Berechtigungen diesen Benutzer erwähnen und ändern oder entfernen. Ändern Sie stattdessen einfach die Rollenzuweisungen dieses Benutzers in einem einzigen Vorgang. Die Verwendung der rollenbasierten Zugriffssteuerung (RBAC) ist für die langfristige Wartung von Sicherheitsberechtigungen viel einfacher.
Sehen Sie sich an, wie Datenbanken mit Berechtigungen und der Vererbung von Rollen umgehen. Betrachten Sie Underwriter in einer Versicherungsgesellschaft, wo es Trainee-, Junior- und Senior Underwriter geben kann, von denen jeder Zugang zu verschiedenen Arten von Informationen hat.
Sie könnten den Junior-Underwritern die Berechtigungen zuweisen, die den Trainees zugewiesen sind, und ein paar mehr. Dann könnten Sie allen Underwritern der Junior-Underwriter die Berechtigungen und noch ein paar weitere Underwriter zuweisen. Wenn Sie jedoch allen Rollen zusätzliche Berechtigungen hinzufügen möchten, müssen Sie drei identische Änderungen vornehmen.
Wenn Sie fünf Rollenebenen haben, sind das fünf Kopien. Außerdem wird jedes System eine Vielzahl von Rollen wie diese haben. Es gibt einen besseren Weg, als immer wieder dieselbe banale Aufgabe auszuführen: Rollenvererbung.
Einige Systeme beinhalten die Vererbung von Rollen. In diesem Fall erbt die Rolle JuniorUnderwriter von der Rolle TraineeUnderwriter, und die Rolle SeniorUnderwriter erbt von der Rolle JuniorUnderwiter. Alles, was Sie tun müssen, um eine Berechtigung für alle Rollen hinzuzufügen, besteht darin, sie nur der Rolle TraineeUnderwriter (die niedrigste Vererbungsebene) hinzuzufügen, und alle Rollen erben die Berechtigung. Rollenvererbung ist viel einfacher zu verstehen und zu pflegen.
Rollenerlaubnislogik wird im Allgemeinen mit einer ODER-Logik implementiert. Das heißt, wenn Sie einem Datensatz mit einer Leseberechtigung drei Rollen - RoleA, RoleB und RoleC - zuweisen, hat ein Benutzer diese Berechtigung, wenn er RoleA ODER RoleB oder RoleC hat.Wenn Sie einem Datensatz keine Rollenleseberechtigungen zuweisen, hat kein Benutzer Leseberechtigungen für diesen Datensatz (natürlich Vererbung).