Richtlinienauswertung für Anfragen innerhalb eines einzelnen Kontos - AWS Identity and Access Management

Richtlinienauswertung für Anfragen innerhalb eines einzelnen Kontos

Richtlinienauswertung für eine IAM-Rolle

Das folgende Ablaufdiagramm liefert Details dazu, wie eine Entscheidung zur Richtlinienauswertung für eine IAM-Rolle innerhalb eines einzelnen Kontos getroffen wird.

Ablaufdiagramm für die Auswertung einer IAM-Rolle innerhalb eines einzelnen Kontos

Richtlinienauswertung für einen IAM-Benutzer

Das folgende Ablaufdiagramm liefert Details dazu, wie eine Entscheidung zur Richtlinienauswertung für einen IAM-Benutzer innerhalb eines einzelnen Kontos getroffen wird.

Ablaufdiagramm für die Auswertung eines IAM-Benutzers innerhalb eines einzelnen Kontos

Beispielauswertung identitätsbasierter Richtlinien und ressourcenbasierter Richtlinien

Die gebräuchlichsten Richtlinientypen sind identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien. Wenn Zugriff auf eine Ressource angefordert wird, wertet AWS alle Berechtigungen aus, die durch die Richtlinien für mindestens ein Allow innerhalb desselben Kontos gewährt wurden. Eine explizite Zugriffsverweigerung in einer der Richtlinien setzt eine Zugriffserlaubnis außer Kraft.

Wichtig

Wenn entweder die identitätsbasierte Richtlinie oder die ressourcenbasierte Richtlinie innerhalb desselben Kontos die Anforderung zulässt und die andere nicht, ist die Anforderung trotzdem zulässig.

Angenommen, Carlos hat den Benutzernamen carlossalazar, und er versucht, eine Datei im Amazon S3-Bucket amzn-s3-demo-bucket-carlossalazar-logs zu speichern.

Außerdem wird davon ausgegangen, dass die folgende Richtlinie dem IAM-Benutzer carlossalazar zugeordnet ist.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowS3ListRead", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowS3Self", "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*", "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar" ] }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::*log*" } ] }

Die AllowS3ListRead -Anweisung in dieser Richtlinie erlaubt Carlos, eine Liste aller Buckets im Konto anzuzeigen. Die AllowS3Self-Anweisung erlaubt Carlos vollständigen Zugriff auf den Bucket mit demselben Namen wie seinem Benutzernamen. Die DenyS3Logs-Anweisung verweigert Carlos den Zugriff auf S3-Buckets mit der Zeichenfolge log im Namen.

Außerdem ist die folgende ressourcenbasierte Richtlinie (eine sogenannte Bucket-Richtlinie) dem Bucket amzn-s3-demo-bucket-carlossalazar zugeordnet.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/carlossalazar" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*", "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar" ] } ] }

Diese Richtlinie gibt an, dass nur der Benutzer carlossalazar auf den Bucket amzn-s3-demo-bucket-carlossalazar zugreifen kann.

Wenn Carlos seine Anforderung sendet, eine Datei im Bucket amzn-s3-demo-bucket-carlossalazar-logs zu speichern, bestimmt AWS, welche Richtlinien für die Anforderung gelten. In diesem Fall gelten nur die identitätsbasierte Richtlinie und die ressourcenbasierte Richtlinie. Beides sind Berechtigungsrichtlinien. Da keine Berechtigungsgrenzen gelten, wird die Auswertungslogik auf die folgende Logik reduziert.

Flussdiagramm zum Entscheidungsprozess

AWS sucht zunächst nach einer Deny-Anweisung, die für den Kontext der Anforderung gilt. Es findet einen, weil die identitätsbasierte Richtlinie Carlos explizit den Zugriff auf alle S3-Buckets verweigert, die für die Protokollierung verwendet werden. Carlos wird der Zugriff verweigert.

Angenommen, er erkennt dann seinen Fehler und versucht, die Datei in den Bucket amzn-s3-demo-bucket-carlossalazar zu speichern. AWS sucht nach einer Deny-Anweisung und findet keine. Dann überprüft es die Berechtigungsrichtlinien. Sowohl die identitätsbasierte Richtlinie, als auch die ressourcenbasierte Richtlinie lassen die Anforderung zu. Daher lässt AWS die Anforderung zu. Hätte eine von ihnen die Anweisung ausdrücklich abgelehnt, wäre die Anforderung abgelehnt worden. Wenn einer der Richtlinientypen die Anforderung zulässt und der andere nicht, ist die Anforderung weiterhin zulässig.