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.
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.
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.
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.
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.
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.