Auswertungslogik für Richtlinien - AWS Identitäts- und Zugriffsverwaltung

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Auswertungslogik für Richtlinien

Wenn ein Principal versucht, das zu verwenden AWS Management Console, der AWS API, oder der AWS CLI, dieser Schulleiter sendet eine Anfrage an AWS. Wann ein AWS der Dienst erhält die Anfrage, AWS führt mehrere Schritte durch, um festzustellen, ob die Anfrage zugelassen oder abgelehnt werden soll.

  1. Authentifizierung — AWS authentifiziert zunächst den Principal, der die Anfrage stellt, falls erforderlich. Dieser Schritt ist für einige wenige Services, wie z. B. Amazon S3, die einige Anforderungen von anonymen Benutzern erlauben, nicht notwendig.

  2. Verarbeitung des Anforderungskontexts – AWS verarbeitet die in der Anfrage gesammelten Informationen, um festzustellen, welche Richtlinien für die Anfrage gelten.

  3. Auswerten von Richtlinien in einem einzelnen Konto – AWS bewertet alle Richtlinientypen, was sich auf die Reihenfolge auswirkt, in der die Richtlinien bewertet werden.

  4. Ermitteln, ob eine Anforderung innerhalb eines Kontos zugelassen oder verweigert wird – AWS verarbeitet dann die Richtlinien anhand des Anforderungskontextes, um festzustellen, ob die Anfrage zugelassen oder abgelehnt wird.

Verarbeitung des Anforderungskontexts

AWS verarbeitet die Anfrage, um die folgenden Informationen in einem Anforderungskontext zu sammeln:

  • Aktionen (oder Operationen) – Die Aktionen oder Operationen, die der Auftraggeber durchführen möchte.

  • Ressourcen — Die AWS Ressourcenobjekt, für das die Aktionen oder Operationen ausgeführt werden.

  • Auftraggeber – Der Benutzer, die Rolle, der Verbundbenutzer oder die Anwendung, der bzw. die die Anfrage gesendet hat. Informationen über den Auftraggeber beinhalten die Richtlinien, die diesem Auftraggeber zugeordnet sind.

  • Umgebungsdaten — Informationen über die IP-Adresse, den SSL Benutzeragenten, den Aktivierungsstatus oder die Tageszeit.

  • Ressourcendaten – Daten zu den angeforderten Ressourcen. Dies kann Informationen wie einen DynamoDB-Tabellennamen oder ein Tag auf einer EC2 Amazon-Instance beinhalten.

AWS verwendet diese Informationen dann, um Richtlinien zu finden, die für den Anforderungskontext gelten.

Auswerten von Richtlinien in einem einzelnen Konto

Wie AWS Die Bewertung von Richtlinien hängt von den Arten von Richtlinien ab, die für den Anforderungskontext gelten. Die folgenden Richtlinientypen, in der Reihenfolge ihrer Häufigkeit aufgeführt, können innerhalb einer einzigen Richtlinie verwendet werden AWS-Konto. Weitere Informationen zu diesen Richtlinientypen finden Sie unterRichtlinien und Berechtigungen in AWS Identity and Access Management. Um zu erfahren, wie AWS bewertet Richtlinien für den kontoübergreifenden Zugriff, siehe. Logik für die kontenübergreifende Richtlinienauswertung

  1. Identitätsbasierte Richtlinien — Identitätsbasierte Richtlinien werden an eine IAM Identität (Benutzer, Benutzergruppe oder Rolle) angehängt und gewähren IAM Entitäten (Benutzern und Rollen) Berechtigungen. Wenn nur identitätsbasierte Richtlinien für eine Anfrage gelten, AWS überprüft alle diese Richtlinien auf mindestens eine. Allow

  2. Ressourcenbasierte Richtlinien — Ressourcenbasierte Richtlinien gewähren dem als Prinzipal angegebenen Prinzipal (Konto-, Benutzer-, Rollen- und Sitzungsprinzipale wie Rollensitzungen und IAM Verbundbenutzer) Berechtigungen. Die Berechtigungen definieren, welche Aktionen der Auftraggeber mit der Ressource, der die Richtlinie zugewiesen ist. durchführen kann. Wenn sowohl ressourcenbasierte Richtlinien als auch identitätsbasierte Richtlinien für eine Anfrage gelten, AWS überprüft alle Richtlinien auf mindestens eine. Allow Bei der Bewertung ressourcenbasierter Richtlinien bestimmt der in der Richtlinie angegebene PrinzipalARN, ob implizite Ablehnungen in anderen Richtlinientypen auf die endgültige Entscheidung anwendbar sind.

  3. IAMBerechtigungsgrenzen — Bei Berechtigungsgrenzen handelt es sich um eine erweiterte Funktion, mit der die maximalen Berechtigungen festgelegt werden, 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 durchführen, die sowohl von den identitätsbasierten Richtlinien als auch den Berechtigungsgrenzen erlaubt 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 finden Sie unter Ermitteln, ob eine Anforderung innerhalb eines Kontos zugelassen oder verweigert wird weiter unten in diesem Thema.

  4. AWS Organizations Dienststeuerungsrichtlinien (SCPs) — Organizations SCPs geben die maximalen Berechtigungen für eine Organisation oder Organisationseinheit (OU) an. Das SCP Maximum gilt für Hauptbenutzer in Mitgliedskonten, einschließlich der einzelnen Root-Benutzer des AWS-Kontos. Wenn eine vorhanden SCP ist, gewähren identitäts- und ressourcenbasierte Richtlinien den Prinzipalen in Mitgliedskonten nur dann Berechtigungen, wenn diese Richtlinien und sie die Aktion zulassen. SCP Wenn sowohl eine Berechtigungsgrenze als auch eine vorhanden SCP sind, müssen die Grenze, die und die SCP identitätsbasierte Richtlinie alle die Aktion zulassen.

  5. Sitzungsrichtlinien – Sitzungsrichtlinien sind erweiterte Richtlinien, die Sie als Parameter übergeben, wenn Sie eine temporäre Sitzung für eine Rolle oder einen Verbundbenutzer programmgesteuert erstellen. Verwenden Sie eine der Operationen, um eine Rollensitzung programmgesteuert zu erstellen. AssumeRole* API Wenn Sie dies tun und die Sitzungsrichtlinien übergeben, stellen die daraus resultierenden Sitzungsberechtigungen die Schnittmenge zwischen der identitätsbasierten Richtlinie der IAM Entität und den Sitzungsrichtlinien dar. Um eine föderierte Benutzersitzung zu erstellen, verwenden Sie die IAM Benutzerzugriffstasten, um den Vorgang programmgesteuert aufzurufen. GetFederationToken API Eine ressourcenbasierte Richtlinie hat andere Auswirkungen auf die Auswertung der Sitzungsrichtlinienberechtigungen. Der Unterschied hängt davon ab, ob der Benutzer oder die Rolle ARN oder die Sitzung in der ressourcenbasierten Richtlinie als Hauptbenutzer aufgeführt ARN ist. 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, AWS bewertet alle Berechtigungen, die durch die identitäts- und ressourcenbasierten Richtlinien gewährt wurden. Die so entstehenden Berechtigungen ergeben sich aus den gesamten Berechtigungen der beiden Typen. Wenn eine Aktion durch eine identitätsbasierte Richtlinie, eine ressourcenbasierte Richtlinie oder beides zulässig ist, dann AWS erlaubt die Aktion. Eine explizite Zugriffsverweigerung in einer der beiden Richtlinien überschreibt die Zugriffserlaubnis.

Auswertung identitätsbasierter Richtlinien und ressourcenbasierter Richtlinien

Auswerten von identitätsbasierten Richtlinien mit Berechtigungsgrenzen

Wann AWS bewertet die identitätsbasierten Richtlinien und die Berechtigungsgrenzen für einen Benutzer. Die daraus resultierenden Berechtigungen stellen die Schnittmenge der beiden Kategorien dar. 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.

Auswertung von identitätsbasierten Richtlinien und Berechtigungsgrenzen

Evaluierung identitätsbasierter Richtlinien mit Organizations SCPs

Wenn ein Benutzer einem Konto angehört, das Mitglied einer Organisation ist, bilden die daraus resultierenden Berechtigungen die Schnittmenge zwischen den Richtlinien des Benutzers und den. SCP Das bedeutet, dass eine Aktion sowohl durch die identitätsbasierte Richtlinie als auch durch zugelassen werden muss. SCP Eine explizite Zugriffsverweigerung in einer der beiden Richtlinien überschreibt die Zugriffserlaubnis.

Bewertung identitätsbasierter Politiken und SCPs

Ob Ihr Konto Mitglied einer Organisation ist, erfahren Sie in AWS Organizations. Mitglieder der Organisation könnten von einem betroffen seinSCP. Um diese Daten mit dem anzuzeigen AWS CLI Befehl oder AWS APIVorgang, Sie müssen über Berechtigungen für die organizations:DescribeOrganization Aktion für Ihre Organisationseinheit verfügen. Sie müssen über zusätzliche Berechtigungen verfügen, um die Operation in der Organizations-Konsole auszuführen. Um zu erfahren, ob an SCP den Zugriff auf eine bestimmte Anfrage verweigert, oder um Ihre aktuellen Berechtigungen zu ändern, wenden Sie sich an AWS Organizations Administrator.

Ermitteln, ob eine Anforderung innerhalb eines Kontos zugelassen oder verweigert wird

Gehen Sie davon aus, dass ein Principal eine Anfrage sendet an AWS um auf eine Ressource zuzugreifen, die sich in demselben Konto wie die Entität des Prinzipals befindet. Das Tool AWS Der Vollstreckungskodex entscheidet, ob der Antrag zugelassen oder abgelehnt werden soll. AWS bewertet alle Richtlinien, die für den Anforderungskontext gelten. Im Folgenden finden Sie eine Zusammenfassung der AWS Bewertungslogik für Richtlinien innerhalb eines einzigen Kontos.

  • Standardmäßig werden alle Anfragen implizit abgelehnt, mit Ausnahme der Root-Benutzer des AWS-Kontos, das vollen Zugriff hat.

  • Eine explizite Zugriffserlaubnis in einer identitätsbasierten oder ressourcenbasierten Richtlinie hat Vorrang vor diesem Standardwert.

  • Wenn eine Berechtigungsgrenze, eine Organisations SCP - oder eine Sitzungsrichtlinie vorhanden ist, kann sie das Zulassen durch eine implizite Verweigerung außer Kraft setzen.

  • Eine explizite Zugriffsverweigerung überschreibt jede Zugriffserlaubnis in einer Richtlinie.

Das folgende Flussdiagramm enthält einen Überblick über den Entscheidungsprozess. Dieses Flussdiagramm deckt nicht die Auswirkungen ressourcenbasierter Richtlinien und impliziter Ablehnungen in anderen Arten von Richtlinien ab.

Flussdiagramm zum Entscheidungsprozess
  1. Auswertung für eine Zugriffsverweigerung – Standardmäßig werden alle Anforderungen verweigert. Dieser Vorgang wird als implizite Zugriffsverweigerung bezeichnet. Das Tool AWS Der Erzwingungscode bewertet alle Richtlinien innerhalb des Kontos, die für die Anfrage gelten. Dazu gehören AWS Organizations SCPs, ressourcenbasierte Richtlinien, identitätsbasierte Richtlinien, IAM Berechtigungsgrenzen und Sitzungsrichtlinien. Der Durchführungscode sucht in allen diesen Richtlinien nach einer Deny-Anweisung, die für die Anforderung gilt. Dieser Vorgang wird als explizite Zugriffsverweigerung bezeichnet. Wenn der Code auch nur eine gültige explizite Zugriffsverweigerung findet, wird final Zugriffsverweigerung zurückgegeben und die Anforderung wird abgelehnt. Wenn es keine ausdrückliche Verweigerung gibt, wird die Auswertung des Erzwingungscodes fortgesetzt.

  2. Organizations SCPs — Dann bewertet der Durchsetzungskodex AWS Organizations Richtlinien zur Dienststeuerung (SCPs), die für die Anfrage gelten. SCPsgelten für Hauptkunden des Kontos, an das sie angehängt SCPs sind. Findet das Vollstreckungsgesetz keine zutreffenden Allow Angaben in derSCPs, wird der Antrag ausdrücklich abgelehnt, auch wenn die Ablehnung implizit erfolgt. Der Code gibt die finale Entscheidung Zugriffsverweigerung zurück. Ist dies nicht SCP der Fall oder wird die angeforderte Maßnahme SCP zugelassen, wird die Bewertung des Vollstreckungscodes fortgesetzt.

  3. Ressourcenbasierte Richtlinien - Innerhalb desselben Kontos wirken sich ressourcenbasierte Richtlinien unterschiedlich aus, abhängig von der Art des Prinzipals, der auf die Ressource zugreift, und dem Prinzipal, der in der ressourcenbasierten Richtlinie zulässig ist. Abhängig von der Art des Prinzipals, kann ein Allow in einer ressourcenbasierten Richtlinie zu einer endgültigen Entscheidung von Allow führen, auch wenn eine implizite Ablehnung in einer identitätsbasierten Richtlinie, Berechtigungsgrenze oder Sitzungsrichtlinie vorhanden ist.

    Für die meisten Ressourcen benötigen Sie nur eine explizite Genehmigung für den Prinzipal entweder in einer identitätsbasierten Richtlinie oder in einer ressourcenbasierten Richtlinie, um Zugriff zu gewähren. IAMRollenvertrauensrichtlinien und KMSwichtige Richtlinien sind Ausnahmen von dieser Logik, da sie den Zugriff für Prinzipale ausdrücklich ermöglichen müssen.

    Die ressourcenbasierte Richtlinienlogik unterscheidet sich von anderen Richtlinientypen, wenn es sich bei dem angegebenen Prinzipal um einen IAM Benutzer, eine IAM Rolle oder einen Sitzungsprinzipal handelt. Zu den Sitzungsprinzipalen gehören IAM Rollensitzungen oder eine IAMVerbundbenutzersitzung. Wenn eine ressourcenbasierte Richtlinie dem IAM Benutzer oder dem Sitzungsprinzipal, der die Anfrage stellt, die Berechtigung direkt erteilt, hat eine implizite Ablehnung in einer identitätsbasierten Richtlinie, einer Berechtigungsgrenze oder einer Sitzungsrichtlinie keinen Einfluss auf die endgültige Entscheidung.

    Die folgende Tabelle hilft Ihnen, die Auswirkungen ressourcenbasierter Richtlinien für verschiedene Haupttypen zu verstehen, wenn implizite Ablehnungen in identitätsbasierten Richtlinien, Berechtigungsgrenzen und Sitzungsrichtlinien implizite Ablehnungen vorhanden sind.

    Die folgende Tabelle zeigt ressourcenbasierte Richtlinien und implizite Verweigerungen in anderen Richtlinientypen für dasselbe Konto.

    Prinzipal, der die Anforderung stellt Ressourcenbasierte Richtlinie Identitätsbasierte Richtlinien Berechtigungsgrenze Sitzungsrichtlinie Ergebnis Grund
    IAMRolle Nicht zutreffend Nicht zutreffend Nicht zutreffend Nicht zutreffend Nicht zutreffend Eine Rolle selbst kann keine Anfrage stellen. Anfragen werden in der Rollensitzung gestellt, nachdem eine Rolle übernommen wurde.
    IAMRollensitzung

    Ermöglicht die Rolle ARN

    or

    Erlaubt eine Rollensitzung ARN

    Implizite Verweigerung Implizite Verweigerung Implizite Verweigerung

    DENY- Rolle ARN

    or

    ALLOW- Rollensitzung ARN

    Handelt es sich in der ressourcenbasierten Richtlinie um eine Rolle ARN, werden die Berechtigungsgrenze und die Sitzungsrichtlinie im Rahmen der endgültigen Entscheidung bewertet. Eine implizite Ablehnung in einer der beiden Richtlinien führt zu einer Entscheidung. DENY

    Wenn es sich bei dem Prinzipal in der ressourcenbasierten Richtlinie um eine Rollensitzung handeltARN, werden der Sitzung direkt Berechtigungen erteilt. Andere Richtlinientypen haben keinen Einfluss auf die Entscheidung.

    IAMBenutzer Erlaubt IAM Benutzer ARN Implizite Verweigerung Implizite Verweigerung Nicht zutreffend ALLOW Berechtigungen werden direkt an den Benutzer erteilt. Andere Richtlinientypen haben keinen Einfluss auf die Entscheidung.
    IAMverbundener Benutzer () GetFederationToken

    Erlaubt den Benutzer IAM ARN

    or

    Ermöglicht eine IAM föderierte Benutzersitzung ARN

    Implizite Verweigerung Implizite Verweigerung Implizite Verweigerung

    DENY- Benutzer IAM ARN

    or

    ALLOW- IAM föderierte Benutzersitzung ARN

    Wenn es sich bei dem Prinzipal in der ressourcenbasierten Richtlinie um einen IAMBenutzer handeltARN, führt eine implizite Ablehnung entweder in der Berechtigungsgrenze oder in der Sitzungsrichtlinie zu einer. DENY

    Wenn es sich bei dem Prinzipal in der ressourcenbasierten Richtlinie um eine IAMVerbundbenutzersitzung handeltARN, werden der Sitzung direkt Berechtigungen erteilt. Andere Richtlinientypen haben keinen Einfluss auf die Entscheidung.

    Root-Benutzer Erlaubt den Root-Benutzer ARN Nicht zutreffend Nicht zutreffend Nicht zutreffend ALLOW Der Root-Benutzer hat vollständigen, uneingeschränkten Zugriff auf alle Ressourcen in Ihrem AWS-Konto. Um zu erfahren, wie Sie den Zugriff auf den Root-Benutzer für Konten kontrollieren können in AWS Organizations, siehe Richtlinien zur Servicesteuerung (SCPs) im Benutzerhandbuch für Organizations.
    AWS Dienstprinzipal Erlaubt ein AWS Direktor des Dienstes Nicht zutreffend Nicht zutreffend Nicht zutreffend ALLOW Wenn eine ressourcenbasierte Richtlinie Berechtigungen direkt einem gewährt AWS Service Principal, andere Richtlinientypen haben keinen Einfluss auf die Entscheidung.
    • IAMRolle — Ressourcenbasierte Richtlinien, die einer IAM Rolle Berechtigungen gewähren, ARN werden durch eine implizite Verweigerung in einer Berechtigungsgrenze oder einer Sitzungsrichtlinie eingeschränkt. Sie können die Rolle im Principal-Element oder ARN im Bedingungsschlüssel angeben. aws:PrincipalArn In beiden Fällen ist der Principal, der die Anfrage stellt, die IAMRollensitzung.

      Durch Berechtigungsgrenzen und Sitzungsrichtlinien werden Berechtigungen, die mithilfe des aws:PrincipalArn Bedingungsschlüssels mit einem Platzhalter (*) im Prinzipalelement erteilt werden, nicht eingeschränkt, es sei denn, die identitätsbasierten Richtlinien enthalten eine ausdrückliche Ablehnung. Weitere Informationen finden Sie unter IAMRollenprinzipale.

      Beispiel für eine Rolle ARN

      arn:aws:iam::111122223333:role/examplerole
    • IAMRollensitzung — Innerhalb desselben Kontos gewähren ressourcenbasierte Richtlinien, die Berechtigungen für eine IAM Rollensitzung ARN gewähren, Berechtigungen direkt für die angenommene Rollensitzung. Berechtigungen, die direkt für eine Sitzung gewährt werden, sind nicht durch eine implizite Verweigerung in einer identitätsbasierten Richtlinie, einer Berechtigungsgrenze oder einer Sitzungsrichtlinie beschränkt. Wenn Sie eine Rolle übernehmen und eine Anfrage stellen, ist der Hauptbenutzer, der die Anfrage stellt, die IAM Rollensitzung ARN und nicht der ARN der Rolle selbst. Weitere Informationen finden Sie unter Rollensitzungsgsprinzipale.

      Beispiel für eine Rollensitzung ARN

      arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    • IAMBenutzer — Innerhalb desselben Kontos sind ressourcenbasierte Richtlinien, die einem IAM Benutzer Berechtigungen gewähren ARN (d. h. es handelt sich nicht um eine Verbundbenutzersitzung), nicht durch eine implizite Ablehnung in einer identitätsbasierten Richtlinie oder Berechtigungsgrenze eingeschränkt.

      IAMBeispiel für einen Benutzer ARN

      arn:aws:iam::111122223333:user/exampleuser
    • IAMVerbundbenutzersitzungen — Eine IAM föderierte Benutzersitzung ist eine Sitzung, die durch einen Aufruf erstellt wird. GetFederationToken Wenn ein Verbundbenutzer eine Anfrage stellt, ist der Hauptbenutzer, der die Anfrage stellt, der Verbundbenutzer ARN und nicht der Benutzer, ARN der den IAM Verbund erstellt hat. Innerhalb desselben Kontos gewähren ressourcenbasierte Richtlinien, die einem Verbundbenutzer ARN Berechtigungen gewähren, Berechtigungen direkt für die Sitzung. Berechtigungen, die direkt für eine Sitzung gewährt werden, sind nicht durch eine implizite Verweigerung in einer identitätsbasierten Richtlinie, einer Berechtigungsgrenze oder einer Sitzungsrichtlinie beschränkt.

      Wenn jedoch eine ressourcenbasierte Richtlinie dem Benutzer, ARN der den Verbund erstellt hat, die Erlaubnis erteilt, werden die Anfragen, die der IAM Verbundbenutzer während der Sitzung stellt, durch eine implizite Verweigerung in einer Berechtigungsgrenze oder in einer Sitzungsrichtlinie eingeschränkt.

      Beispiel für eine föderierte Benutzersitzung IAM ARN

      arn:aws:sts::111122223333:federated-user/exampleuser
  4. Identitätsbasierte Richtlinien – Der Code überprüft dann die identitätsbasierten Richtlinien auf den Auftraggeber. Für einen IAM Benutzer gehören dazu Benutzerrichtlinien und Richtlinien von Gruppen, zu denen der Benutzer gehört. Wenn es keine Anweisungen gibt, die die angeforderte Aktion zulassen, dann wird die Anforderung implizit verweigert und der Code gibt die finale Entscheidung Deny (Zugriffsverweigerung) zurück. Wenn eine Anweisung in einer geltenden identitätsbasierten Richtlinie die angeforderte Aktion zulässt, dann wird der Code weitergeführt.

  5. IAMBerechtigungsgrenzen — Der Code überprüft dann, ob die IAM Entität, die vom Principal verwendet wird, über eine Berechtigungsgrenze verfügt. Wenn die Richtlinie, die verwendet wird, um die Berechtigungsgrenze festzulegen, die angeforderte Aktion nicht zulässt, dann wird die Anforderung implizit verweigert. Der Code gibt die finale Entscheidung Deny (Zugriffsverweigerung) zurück. Wenn es keine Berechtigungsgrenze gibt oder wenn die Berechtigungsgrenze die angeforderte Aktion zulässt, wird der Code fortgesetzt.

  6. Sitzungsrichtlinien – Der Code überprüft dann, ob der Prinzipal ein Sitzungsprinzipal ist. Zu den Sitzungsprinzipalen gehören eine IAM Rollensitzung oder eine IAM Verbundbenutzersitzung. Wenn der Prinzipal kein Sitzungsprinzipal ist, gibt der Durchsetzungscode eine endgültige Entscheidung vonErlauben zurück.

    Für Sitzungsprinzipale, der Code prüft, ob eine Sitzungsrichtlinie in der Anforderung übergeben wurde. Sie können eine Sitzungsrichtlinie übergeben, während Sie AWS CLI or AWS APIum temporäre Anmeldeinformationen für eine Rolle oder einen IAM Verbundbenutzer abzurufen.

    • Wenn die Sitzungsrichtlinie vorhanden ist und die angeforderte Aktion nicht zulässt, dann wird die Anforderung implizit verweigert. Der Code gibt die finale Entscheidung Deny (Zugriffsverweigerung) zurück.

    • Wenn keine Sitzungsrichtlinie vorhanden ist, prüft der Code, ob der Prinzipal eine Rollensitzung ist. Wenn der Prinzipal eine Rollensitzung ist, lautet die Anforderung Erlaubt. Daher wird die Anforderung implizit abgelehnt und der Code gibt eine endgültige Entscheidung von Verweigern zurück.

    • Wenn eine Sitzungsrichtlinie vorhanden ist und die angeforderte Aktion erlaubt, dann gibt der Durchführungscode eine endgültige Entscheidung von Erlauben zurück.

  7. Fehler — Wenn der AWS Wenn der Erzwingungscode zu einem beliebigen Zeitpunkt während der Auswertung auf einen Fehler stößt, generiert er eine Ausnahme und wird geschlossen.

Beispielauswertung identitätsbasierter Richtlinien und ressourcenbasierter Richtlinien

Die gebräuchlichsten Richtlinientypen sind identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien. Wenn der Zugriff auf eine Ressource angefordert wird, AWS wertet alle Berechtigungen aus, die durch die Richtlinien für mindestens eine Option „Zulassen“ 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.

Gehen Sie außerdem davon aus, dass die folgende Richtlinie an den carlossalazar IAM Benutzer angehängt 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 Anfrage stellt, eine Datei im amzn-s3-demo-bucket-carlossalazar-logs Bucket zu speichern, AWS bestimmt, welche Richtlinien für die Anfrage 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 Aussage, die für den Kontext der Anfrage 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.

Gehen Sie davon aus, dass er dann seinen Fehler erkennt und versucht, die Datei im amzn-s3-demo-bucket-carlossalazar Bucket zu speichern. AWS sucht nach einer Deny Aussage und findet keine. Dann überprüft es die Berechtigungsrichtlinien. Sowohl die identitätsbasierte Richtlinie, als auch die ressourcenbasierte Richtlinie lassen die Anforderung zu. Deshalb AWS erlaubt die Anfrage. 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.

Der Unterschied zwischen expliziten und impliziten Zugriffsverweigerungen

Eine Anforderung führt zu einer expliziten Zugriffsverweigerung, wenn eine anwendbare Richtlinie eine Deny-Anweisung enthält. Wenn Richtlinien, die auf eine Anforderung anwendbar sind, eine Allow-Anweisung und eine Deny-Anweisung enthalten, übersteuert die Deny -Anweisung die Allow -Anweisung. Die Anforderung wird abgelehnt.

Eine implizite Verweigerung tritt auf, wenn es keine entsprechende Deny-Anweisung, aber auch keine anwendbare Allow-Anweisung gibt. Da einem IAM Prinzipal standardmäßig der Zugriff verweigert wird, muss er ausdrücklich berechtigt sein, eine Aktion auszuführen. Andernfalls wird ihnen der Zugriff implizit verweigert.

Bei der Planung Ihrer Autorisierungsstrategie müssen Sie Richtlinien mit Allow-Anweisungen erstellen, um Ihren Auftraggeber zu gestatten, erfolgreich Anforderungen durchzuführen. Sie können jedoch eine beliebige Kombination von expliziten und impliziten Zugriffsverweigerungen wählen.

Sie können beispielsweise die folgende Richtlinie erstellen, die zulässige Aktionen, implizit verweigerte Aktionen und explizit verweigerte Aktionen enthält. Die AllowGetList Anweisung ermöglicht den schreibgeschützten Zugriff auf IAM Aktionen, die mit den Get Präfixen und beginnen. List Alle anderen Aktionen inIAM, z. B. iam:CreatePolicy werden implizit verweigert. Die DenyReports Anweisung verweigert ausdrücklich den Zugriff auf IAM Berichte, indem sie den Zugriff auf Aktionen verweigert, die das Report Suffix enthalten, wie z. iam:GetOrganizationsAccessReport Wenn jemand diesem Prinzipal eine weitere Richtlinie hinzufügt, um ihm Zugriff auf IAM Berichte zu gewähren, z. B.iam:GenerateCredentialReport, werden Anfragen im Zusammenhang mit Berichten aufgrund dieser ausdrücklichen Verweigerung trotzdem verweigert.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGetList", "Effect": "Allow", "Action": [ "iam:Get*", "iam:List*" ], "Resource": "*" }, { "Sid": "DenyReports", "Effect": "Deny", "Action": "iam:*Report", "Resource": "*" } ] }