Richtlinienauswertung für Anfragen innerhalb eines einzelnen Kontos
Wie AWS Richtlinien auswertet, hängt von den Typen von Richtlinien ab, die für den Anforderungskontext gelten. Die folgenden Richtlinientypen, aufgelistet in der Reihenfolge ihrer Häufigkeit, stehen für die Verwendung in einem einzelnen AWS-Konto zur Verfügung. Weitere Informationen zu diesen Richtlinientypen finden Sie unter Richtlinien und Berechtigungen in AWS Identity and Access Management. Wie AWS die Richtlinien für den kontenübergreifenden Zugriff auswertet, erfahren Sie unter Logik für die kontoübergreifende Richtlinienauswertung.
-
Identitätsbasierte Richtlinien – Identitätsbasierte Richtlinien werden einer IAM-Identität (Benutzer, Benutzergruppe oder Rolle) angefügt und gewähren IAM-Entitäten (Benutzer und Rollen) Berechtigungen. Wenn nur identitätsbasierte Richtlinien auf eine Anforderung anwendbar sind, überprüft AWS all diese Richtlinien auf mindestens ein
Allow
. -
Ressourcenbasierte Richtlinien – Ressourcenbasierte Richtlinien gewähren Berechtigungen für in der Richtlinie angegebene Prinzipale. Die Berechtigungen definieren, welche Aktionen der Auftraggeber mit der Ressource, der die Richtlinie zugewiesen ist. durchführen kann.
-
IAM-Berechtigungsgrenzen – Berechtigungsgrenzen sind ein Feature, die die maximalen Berechtigungen festlegt, die eine identitätsbasierte Richtlinie einer IAM-Entität (Benutzer oder Rolle) gewähren kann. Wenn Sie eine Berechtigungsgrenze für eine Entität festlegen, kann die Entität nur die Aktionen ausführen, die sowohl von ihren identitätsbasierten Richtlinien als auch von ihrer Berechtigungsgrenze zugelassen werden. In einigen Fällen kann eine implizite Verweigerung in einer Berechtigungsgrenze die Berechtigungen nicht bechränken, die von einer ressourcenbasierten Richtlinie gewährt werden. Weitere Informationen hierzu finden Sie unter So wertet die Logik des AWS-Durchsetzungscodes Anfragen zum Gewähren oder Verweigern des Zugriffs aus.
-
AWS Organizations-Service-Kontrollrichtlinie (SCPs) – Organisations-SCPs geben die maximal verfügbaren Berechtigungen für Prinzipale innerhalb von Konten in einer Organisation oder Organisationseinheit (OE) an. SCPs gelten für Prinzipale in Mitgliedskonten, einschließlich eines jeden Root-Benutzer des AWS-Kontos. Wenn eine SCP vorhanden ist, sind durch identitäts- und ressourcenbasierte Richtlinien gewährte Berechtigungen an Prinzipalen in Ihren Mitgliedskonten nur wirksam, wenn die SCP die Aktion zulässt. Die einzigen Ausnahmen sind Prinzipale im Organisationsverwaltungskonto und serviceverknüpfte Rollen.
-
AWS Organizations-Ressourcenkontrollrichtlinien (RCPs) – Organisations-RCPs geben die maximal verfügbaren Berechtigungen für Ressourcen innerhalb von Konten in einer Organisation oder Organisationseinheit (OE) an. RCPs gelten für Ressourcen in Mitgliedskonten und wirken sich auf die effektiven Berechtigungen für Prinzipale aus, einschließlich Root-Benutzer des AWS-Kontos, unabhängig davon, ob die Prinzipale Ihrer Organisation angehören. RCPs gelten nicht für Ressourcen im Organisationsverwaltungskonto und für Aufrufe, die von serviceverknüpften Rollen getätigt werden.
-
Sitzungsrichtlinien – Sitzungsrichtlinien sind Richtlinien, die Sie als Parameter übergeben, wenn Sie programmgesteuert eine temporäre Sitzung für eine Rolle oder einen Verbundbenutzer erstellen. Um eine Rollensitzung programmgesteuert zu erstellen, verwenden Sie eine der
AssumeRole*
-API-Operationen. Wenn Sie dies tun und Richtlinien für die Sitzung übergeben, sind die resultierenden Sitzungsberechtigungen eine Schnittmenge der identitätsbasierten Richtlinie der IAM-Entität und der Sitzungsrichtlinien. Um eine Sitzung eines Verbundbenutzers zu erstellen, verwenden Sie die Zugriffsschlüssel eines IAM-Benutzers, um den API-VorgangGetFederationToken
programmatisch aufzurufen. Weitere Informationen finden Sie unter Sitzungsrichtlinien.
Denken Sie daran, dass eine explizite Zugriffsverweigerung in all diesen Richtlinien eine Zugriffserlaubnis überschreibt.
Auswerten identitätsbasierter Richtlinien mit ressourcenbasierten Richtlinien
Identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien erteilen Identitäten oder Ressourcen, an die sie angefügt sind, Berechtigungen. Wenn eine IAM-Entität (Benutzer oder Rolle) Zugriff auf eine Ressource innerhalb desselben Kontos anfordert, wertet AWS all die Berechtigungen aus, die von den identitätsbasierten Richtlinien und den ressourcenbasierten Richtlinien erteilt wurden. Die resultierenden Berechtigungen sind die Kombination der Berechtigungen der beiden Typen. Wenn eine Aktion von einer identitätsbasierten Richtlinie, einer ressourcenbasierten Richtlinie oder von beiden erlaubt wird, dann lässt AWS die Aktion zu. Eine explizite Zugriffsverweigerung in einer der beiden Richtlinien überschreibt die Zugriffserlaubnis.
Auswerten von identitätsbasierten Richtlinien mit Berechtigungsgrenzen
Wenn AWS die identitätsbasierten Richtlinien und die Berechtigungsgrenze für einen Benutzer auswertet, sind die resultierenden Berechtigungen die Schnittmenge der beiden Kategorien. Das heißt, wenn Sie einem Benutzer mit bestehenden identitätsbasierten Richtlinien eine Berechtigungsgrenze hinzufügen, reduzieren Sie möglicherweise die Aktionen, die der Benutzer ausführen kann. Wenn Sie andererseits eine Berechtigungsgrenze von einem Benutzer entfernen, können Sie die Aktionen erweitern, die dieser ausführen kann. Eine explizite Zugriffsverweigerung in einer der beiden Richtlinien überschreibt die Zugriffserlaubnis. Informationen darüber, wie andere Richtlinientypen mit Berechtigungsgrenzen ausgewertet werden, finden Sie unter Auswerten von effektiven Berechtigungen mit Grenzen.
Identitätsbasierte Richtlinien mit Organisations-SCPs oder -RCPs auswerten
Wenn ein Benutzer zu einem Konto gehört, das Mitglied einer Organisation ist, und auf eine Ressource zugreift, für die keine ressourcenbasierte Richtlinie konfiguriert ist, sind die resultierenden Berechtigungen die Schnittmenge aus den Richtlinien des Benutzers, den Service-Kontrollrichtlinien (SCPs) und der Ressourcenkontrollrichtlinie (RCP). Dies bedeutet, dass eine Aktion von allen drei Richtlinientypen zugelassen werden muss. Eine explizite Verweigerung in der identitätsbasierten Richtlinie, einer SCP oder einer RCP überschreibt die Zulassung.
Sie können erfahren ob Ihr Konto als Mitgliedskonto einer Organisation in AWS Organizations eingerichtet ist. Mitglieder der Organisation könnten von einer SCP oder RCP betroffen sein. Zum Anzeigen der Daten mit dem AWS CLI-Befehl oder einer AWS-API-Operation, benötigen Sie Berechtigungen für die organizations:DescribeOrganization
-Aktion für Ihre Organizations-Entität. Sie müssen über zusätzliche Berechtigungen verfügen, um die Operation in der Organizations-Konsole auszuführen. Um zu erfahren, ob eine SCP oder RCP den Zugriff auf eine bestimmte Anfrage verweigert, oder um Ihre effektiven Berechtigungen zu ändern, wenden Sie sich an Ihren AWS Organizations-Administrator.
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.
{ "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.
{ "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.
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.