Neuerungen in API7 Enterprise: IAM für granulare Zugriffskontrolle
July 11, 2024
Einführung
Frühere Versionen von API7 Enterprise boten einen einfachen, benutzerfreundlichen und umfassenden RBAC (Role-Based Access Control)-Mechanismus zur Verwaltung. Dieser Mechanismus gewährleistete die Systemsicherheit, während er den Benutzern eine flexible Rollenberechtigungskonfiguration ermöglichte. Mit der Zunahme der Ressourcentypen und Funktionen von API7 Enterprise zeigten sich jedoch die Grenzen des traditionellen RBAC-Managements in Bezug auf die feingranulare Berechtigungskontrolle. Darüber hinaus suchen immer mehr Unternehmen nach verfeinerten Berechtigungsmanagementstrategien, um ihren komplexen und sich ändernden Geschäftsanforderungen gerecht zu werden.
Um die Berechtigungsmanagementfunktionen von API7 Enterprise weiter zu verbessern, haben wir das bestehende Rollenberechtigungssystem umfassend aktualisiert und ein flexibleres und leistungsfähigeres IAM (Identity and Access Management)-Policy-Modell eingeführt. Dieses Modell bietet Benutzern eine feingranularere Berechtigungskontrolle und mehr Flexibilität, um den komplexen und variablen Berechtigungsmanagementanforderungen moderner Unternehmen besser gerecht zu werden.
Was ist das IAM-Policy-Modell?
Das IAM (Identity and Access Management)-Policy-Modell stellt eine detailliertere und effizientere Methode der Berechtigungsverwaltung dar. Es ermöglicht Administratoren, spezifische Policies zu definieren, die jeweils eine Reihe von Regeln (Statements) enthalten. Diese Regeln legen detailliert fest, welche Benutzer oder Rollen welche Aktionen auf welchen Ressourcen ausführen können. Im Vergleich zum traditionellen RBAC-Mechanismus bietet dieses Modell mehr Flexibilität und Granularität.

Vorteile von IAM gegenüber RBAC:
-
Granulare Kontrolle: IAM kann Berechtigungen auf Ressourcenebene und sogar für spezifische Attribute oder Operationen innerhalb von Ressourcen steuern, während RBAC Berechtigungen oft auf Rollen basiert und eine relativ grobe Granularität aufweist.
-
Flexibilität: IAM ermöglicht es Administratoren, Policies und Berechtigungen direkt zu verwalten, ohne zahlreiche Rollen für die indirekte Berechtigungszuweisung erstellen und verwalten zu müssen, was die Konfiguration einfacher und flexibler macht.
-
Skalierbarkeit: Mit der Zunahme der Systemfunktionen und der Diversifizierung der Ressourcentypen kann IAM leichter an Änderungen angepasst werden, indem neue Policies hinzugefügt werden, um neue Berechtigungsanforderungen zu erfüllen, während RBAC möglicherweise die Anpassung oder Hinzufügung zahlreicher Rollen erfordert, um Änderungen zu berücksichtigen.
Wie verwendet man IAM-Policies in API7 Enterprise?
1. Berechtigungs-Policies erstellen
Nachdem Sie sich bei API7 Enterprise angemeldet haben, klicken Sie oben rechts auf die Schaltfläche "Organization" und wählen Sie im Dropdown-Menü den Menüpunkt "Permission Policies" aus.
Im Abschnitt Permission Policies können Sie alle Policies verwalten. Standardmäßig gibt es eine super-admin-permission-policy
für den anfänglichen Administrator.
Klicken Sie oben rechts auf die Schaltfläche "Add Policy", um das Formular zur Policy-Erstellung aufzurufen. Hier müssen Sie die grundlegenden Informationen der Policies ausfüllen und die Berechtigungen im Policy-Editor, der als Statements bezeichnet wird, konfigurieren.
Statements sind die Kernkomponenten einer Policy und bestehen aus einem oder mehreren Statements. Jedes Statement definiert eine spezifische Zugriffsberechtigungsregel.
-
Effect: Gibt die Wirkung des Statements an, normalerweise
"Allow"
oder"Deny"
. Eine Ressource kann von mehreren Policies betroffen sein, und das IAM-System bestimmt die endgültigen Zugriffsberechtigungen basierend auf der Reihenfolge und Logik der Statements. -
Action: Definiert eine Reihe von erlaubten oder verbotenen Aktionen, wie z.B.
"gateway:DeleteGatewayGroup"
oder"iam:GetUser"
. Diese Aktionen müssen in Verbindung mit Ressourcen (Resource) verwendet werden, um sinnvoll zu sein. -
Resource: Gibt die Ressourcen an, auf die das Statement angewendet wird, wie z.B. eine bestimmte Gateway-Gruppe oder ein Dienst. Platzhalter (z.B.
<.*>
) können verwendet werden, um mehrere Ressourcen abzugleichen. -
Condition (optional): Definiert die Bedingungen, unter denen das Statement wirksam wird. Zum Beispiel:
"conditions": { "gateway_group_label": { "type": "MatchLabel", "options": { "key": "type", "operator": "exact_match", "value": "production" } } },
Dies bedeutet, dass die in dem Statement definierten Operationen nur dann wirksam werden dürfen, wenn das Label der Gateway-Gruppe auf "production" gesetzt ist.
Um beispielsweise eine Policy zu erstellen, die einen Benutzer darauf beschränkt, nur alle veröffentlichten Dienste innerhalb einer bestimmten Gateway-Gruppe zu bearbeiten, können Sie sie wie folgt schreiben:
{
"statement": [
{
"resources": [
"arn:api7:gateway:gatewaygroup/{gateway group id}"
],
"actions": [
"<.*>Get<.*>" // Erlaubt die Ausführung aller Operationen, die mit 'Get' beginnen, was die 'Lese'-Berechtigung für die angegebene Gateway-Gruppe darstellt
],
"effect": "allow" // Erlaubt die Ausführung der oben definierten Operationen
// Hinweis: Diese Policy-Statement erlaubt die Ausführung aller 'Get'-Operationen auf der angegebenen Gateway-Gruppe, wie z.B. das Abrufen von Gateway-Gruppeninformationen, das Auflisten von Diensten innerhalb der Gateway-Gruppe usw.
},
{
"resources": [
"arn:api7:gateway:gatewaygroup/{gateway group id}/publishedservice/<.*>",
],
"actions": [
"<.*>" // Erlaubt die Ausführung aller Operationen
],
"effect": "allow" // Erlaubt die Ausführung der oben definierten Operationen
// Dieses Policy-Statement erlaubt die Ausführung aller Operationen (erstellen, lesen, aktualisieren, löschen usw.) auf den veröffentlichten Diensten innerhalb der angegebenen Gateway-Gruppe.
}
]
}
In diesem Beispiel haben wir zwei Ressourcensätze (Gateway-Gruppe und veröffentlichte Dienste innerhalb der Gateway-Gruppe) definiert und die erlaubten Aktionen für jeden festgelegt. Einige gängige Policy-Konfigurationsbeispiele finden Sie im Dokument Permission Policy Examples. Für die verfügbaren Werte von Ressourcen und Aktionen und die entsprechenden APIs siehe das Dokument Permission Policy Actions and Resources.
Nachdem Sie eine Policy erstellt haben, kann sie nicht direkt Benutzern zugewiesen werden; wir müssen die Policy zunächst bestimmten Rollen zuweisen.
2. Rollen erstellen und Policies zuweisen
Nachdem Sie sich bei API7 Enterprise angemeldet haben, klicken Sie oben rechts auf die Schaltfläche "Organization" und wählen Sie im Dropdown-Menü den Menüpunkt "Roles" aus.

Im Abschnitt Roles können Sie alle Rollen verwalten. Standardmäßig gibt es eine Super-Admin-Rolle als integrierte Administratorrolle.
Klicken Sie oben rechts auf die Schaltfläche "Add Custom Role", um das Formular zur Rollenerstellung aufzurufen. Hier müssen Sie die grundlegenden Informationen der Rolle ausfüllen. Nach der Erstellung gelangen Sie zur Rollendetailseite.
Auf der Rollendetailseite klicken Sie auf die Schaltfläche "Attach Policy", um die zuvor erstellten Berechtigungs-Policies der Rolle zuzuweisen.

Die erstellten Policies können in mehreren Rollen wiederverwendet werden. Wenn eine Rolle mehreren Policies zugeordnet ist, werden diese Policies standardmäßig kombiniert. Das bedeutet, dass die Berechtigungen einer Rolle die Summe der in allen zugeordneten Policies deklarierten Berechtigungen sind. Nachdem Sie eine Rolle erstellt und Policies zugewiesen haben, können wir die Rolle bestimmten Benutzern zuweisen.
3. Rollen Benutzern zuweisen
Nachdem Sie sich bei API7 Enterprise angemeldet haben, klicken Sie oben rechts auf die Schaltfläche "Organization" und wählen Sie im Dropdown-Menü den Menüpunkt "Users" aus.

Im Abschnitt Users können Sie alle Benutzer verwalten. Standardmäßig gibt es eine Admin-Rolle als integrierten Administrator.
In der rechten Aktionsspalte der Rollenliste klicken Sie auf "Update Roles", um das Formular zum Aktualisieren der Rolle eines bestimmten Benutzers zu öffnen.

Ein Benutzer kann mehrere Rollen haben. Wenn einem Benutzer mehrere Rollen zugewiesen sind, werden die Berechtigungen kombiniert. Das bedeutet, dass der Benutzer die Summe der Berechtigungen aller Rollen hat.
Vereinfachte Rollenzuordnung
Mit der Optimierung und Aktualisierung des Benutzerrollenmodells wurde der SSO-Rollenzuordnungsprozess vereinfacht. Jetzt müssen bei der Konfiguration der Rollenzuordnung für Anmeldeoptionen keine ressourcenbezogenen Abgleichregeln für jede Rolle einzeln festgelegt werden. Die Ressourcen- und Operationsberechtigungen werden direkt von den ausgewählten integrierten Rollen geerbt, was die Berechtigungskonfiguration intuitiver macht und die Komplexität des Berechtigungsmanagements vereinfacht.

Zusammenfassung
Die Einführung von IAM-Policies hat eine flexiblere Berechtigungskonfiguration und -verwaltung ermöglicht. Diese Anpassung verbessert nicht nur die Systemsicherheit, sondern bietet den Benutzern auch eine größere Möglichkeit zur Anpassung.
In Zukunft werden wir die von IAM-Policies unterstützten Ressourcentypen weiter ausbauen, um sicherzustellen, dass alle Systemressourcen in die feingranulare Berechtigungsverwaltung einbezogen werden können, und kontinuierlich die Policy-Bearbeitungs- und Verwaltungsoberfläche optimieren, um den Benutzern ein umfassenderes und effizienteres Berechtigungsmanagement-Erlebnis zu bieten.