Berechtigungen basierend auf Attributen mit ABAC-Autorisierung definieren
Die attributbasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, die Berechtigungen basierend auf Attributen definiert. AWS nennt diese Attribute Tags. Sie können IAM-Ressourcen, einschließlich IAM-Entitäten (IAM-Benutzer oder IAM-Rollen), und AWS-Ressourcen Tags anfügen. Sie können eine einzelne ABAC-Richtlinie oder einen kleinen Richtliniensatz für Ihre IAM-Prinzipale erstellen. Sie können ABAC-Richtlinien entwerfen, die Vorgänge zulassen, wenn der Tag des Prinzipals mit dem Tag der Ressource übereinstimmt. Das Attributsystem von ABAC bietet sowohl einen hohen Benutzerkontext als auch eine detaillierte Zugriffskontrolle. Da ABAC attributbasiert ist, kann es eine dynamische Autorisierung für Daten oder Anwendungen durchführen, die den Zugriff in Echtzeit gewährt oder widerruft. ABAC ist hilfreich in skalierenden Umgebungen und in Situationen, in denen die Verwaltung von Identitäten oder Ressourcenrichtlinien komplex geworden ist.
Sie können beispielsweise drei IAM-Rollen mit dem access-project
-Tag-Schlüssel erstellen. Legen Sie den Tag-Wert der ersten IAM-Rolle auf Heart
, den zweiten auf Star
und den dritten auf Lightning
fest. Sie können dann eine einzelne Richtlinie verwenden, die den Zugriff gewährt, wenn die IAM-Rolle und die AWS-Ressource den Tag-Wert access-project
haben. Ein detailliertes Tutorial, das die Verwendung von ABAC in AWS veranschaulicht, finden Sie unter IAM-Tutorial: Definieren von Berechtigungen für den Zugriff auf AWS-Ressourcen basierend auf Tags. Weitere Informationen zu Services, die ABAC unterstützen, finden Sie unter AWS-Services, die mit IAM funktionieren.
Vergleich von ABAC mit dem herkömmlichen RBAC-Modell
Das herkömmliche in IAM verwendete Autorisierungsmodell wird als rollenbasierte Zugriffskontrolle (RBAC) bezeichnet. RBAC definiert Berechtigungen basierend auf der Auftragsfunktion oder Rolle einer Person, die sich von einer IAM-Rolle unterscheidet. IAM umfasst verwaltete Richtlinien für Job-Funktionen, die die Berechtigungen an eine Job-Funktion in einem RBAC-Modell anpassen.
In IAM implementieren Sie RBAC, indem Sie verschiedene Richtlinien für verschiedene Job-Funktionen erstellen. Anschließend fügen Sie die Richtlinien Identitäten (IAM-Benutzern, IAM-Gruppen oder IAM-Rollen) hinzu. Als bewährte Methode erteilen Sie nur die für eine Auftragsfunktion minimal erforderlichen Berechtigungen. Dies führt zu einem Zugriff mit geringsten Berechtigungen. Jede Auftragsfunktionsrichtlinie listet die spezifischen Ressourcen auf, auf die Identitäten zugreifen können, denen diese Richtlinie zugewiesen ist. Der Nachteil bei der Verwendung des herkömmlichen RBAC-Modells besteht darin, dass Sie, wenn Sie oder Ihre Benutzer neue Ressourcen zu Ihrer Umgebung hinzufügen, die Richtlinien aktualisieren müssen, um den Zugriff auf diese Ressourcen zu ermöglichen.
Angenommen, Sie haben drei Projekte namens Heart
, Star
und Lightning
, an denen Ihre Mitarbeiter arbeiten. Sie erstellen für jedes Projekt eine IAM-Rolle. Anschließend fügen Sie jeder IAM-Rolle Richtlinien hinzu, um die Ressourcen zu definieren, auf die jeder zugreifen kann, der die IAM-Rolle übernehmen darf. Wenn ein Mitarbeiter Jobs innerhalb des Unternehmens wechselt, weisen Sie ihm eine andere IAM-Rolle zu. Sie können Personen oder Programme mehr als einer IAM-Rolle zuweisen. Für das Star
-Projekt sind jedoch möglicherweise zusätzliche Ressourcen erforderlich, beispielsweise ein neuer Amazon-EC2-Container. In diesem Fall müssen Sie die der Star
-IAM-Rolle zugeordnete Richtlinie aktualisieren, um die neue Container-Ressource anzugeben. Andernfalls dürfen Star
-Projektmitglieder nicht auf den neuen Container zugreifen.
ABAC hat gegenüber dem herkömmlichen RBAC-Modell folgende Vorteile:
-
ABAC-Berechtigungen lassen sich einfach an Innovationen anpassen. Es ist nicht mehr notwendig, dass ein Administrator vorhandene Richtlinien aktualisiert, um den Zugriff auf neue Ressourcen zu erlauben. Angenommen, Sie haben Ihre ABAC-Strategie mit dem
access-project
-Tag entwickelt. Ein Entwickler verwendet die IAM-Rolle mit demaccess-project
=Heart
-Tag. Wenn Personen desHeart
-Projekts zusätzliche Amazon EC2-Ressourcen benötigen, kann der Entwickler neue Amazon EC2-Instances mit demaccess-project
=Heart
-Tag erstellen. Anschließend kann jeder Benutzer desHeart
-Projekts diese Instances starten und stoppen, da die Tag-Werte übereinstimmen. -
ABAC erfordert weniger Richtlinien. Da Sie keine verschiedenen Richtlinien für verschiedene Job-Funktionen erstellen müssen, erstellen Sie insgesamt weniger Richtlinien. Diese Richtlinien sind einfacher zu verwalten.
-
Mithilfe von ABAC können Teams dynamisch auf Veränderungen und Wachstum reagieren. Da Berechtigungen für neue Ressourcen automatisch basierend auf Attributen gewährt werden, müssen Sie Identitäten keine Richtlinien manuell zuweisen. Wenn Ihr Unternehmen beispielsweise bereits ABAC für die Projekte
Star
undHeart
verwendet, ist es einfacher, ein neuesLightning
-Projekt hinzuzufügen Ein IAM-Administrator erstellt eine neue IAM-Rolle mit demaccess-project
=Lightning
-Tag. Es ist nicht notwendig, die Richtlinie zu ändern, um ein neues Projekt zu unterstützen. Jeder, der über Berechtigungen zur Übernahme der IAM-Rolle verfügt, kann Instances erstellen und anzeigen, die mitaccess-project
=Lightning
markiert sind. Ein anderes Szenario ist, wenn ein Teammitglied vomHeart
-Projekt zumLightning
-Projekt wechselt. Um Teammitgliedern Zugriff auf dasLightning
-Projekt zu gewähren, weist der IAM-Administrator ihnen eine andere IAM-Rolle zu. Es ist nicht notwendig, die Berechtigungsrichtlinien zu ändern. -
Detaillierte Berechtigungen sind mit ABAC möglich. Wenn Sie Richtlinien erstellen, hat es sich bewährt, die geringsten Rechte zu erteilen. Bei der Verwendung von herkömmlichem RBAC schreiben Sie eine Richtlinie, die den Zugriff auf bestimmte Ressourcen ermöglicht. Wenn Sie jedoch ABAC verwenden, können Sie Aktionen für alle Ressourcen zulassen, wenn das Tag der Ressource mit dem Tag des Prinzipals übereinstimmt.
-
Verwenden Sie Mitarbeiterattribute aus Ihrem Firmenverzeichnis mit ABAC. Sie können Ihren SAML- oder OIDC-Anbieter so konfigurieren, dass Sitzungs-Tags an IAM übergeben werden. Wenn sich Ihre Mitarbeiter in AWS zusammenschließen, wendet IAM deren Attribute auf den daraus resultierenden Prinzipal an. Sie können dann ABAC verwenden, um Berechtigungen basierend auf diesen Attributen zuzulassen oder abzulehnen.
Ein detailliertes Tutorial, das die Verwendung von ABAC in AWS veranschaulicht, finden Sie unter IAM-Tutorial: Definieren von Berechtigungen für den Zugriff auf AWS-Ressourcen basierend auf Tags.