So wertet die Logik des AWS-Durchsetzungscodes Anfragen zum Gewähren oder Verweigern des Zugriffs aus - AWS Identity and Access Management

So wertet die Logik des AWS-Durchsetzungscodes Anfragen zum Gewähren oder Verweigern des Zugriffs aus

Der AWS-Durchsetzungscode entscheidet, ob eine an AWS gesendete Anfrage zugelassen oder abgelehnt werden soll. AWS wertet alle Richtlinien aus, die auf den Anfragekontext anwendbar sind. Nachfolgend finden Sie eine Zusammenfassung der AWS-Richtlinienauswertungs-Logik.

  • Standardmäßig werden alle Anforderungen implizit verweigert, mit Ausnahme des Root-Benutzer des AWS-Kontoss, der vollen Zugriff hat.

  • Um zugelassen zu werden, müssen Anfragen ausdrücklich durch eine Richtlinie oder einen Richtliniensatz zugelassen werden, die der unten stehenden Auswertungslogik folgen.

  • Eine explizite Verweigerung überschreibt eine explizite Zulassung.

Das folgende Ablaufdiagramm liefert Einzelheiten darüber, wie die Entscheidung für den Zugriff auf ein einzelnes Konto oder für den kontenübergreifenden Zugriff getroffen wird.

Flussdiagramm zum Entscheidungsprozess
  • Auswertung für eine Zugriffsverweigerung – Standardmäßig werden alle Anforderungen verweigert. Dieser Vorgang wird als implizite Zugriffsverweigerung bezeichnet. Durch den AWS-Durchführungscode werden alle Richtlinien innerhalb des Kontos ausgewertet, die auf die Anforderung zutreffen. Hierzu gehören AWS Organizations-SCPs und -RCPs, 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 Durchsetzungscode auch nur eine explizite Verweigerung findet, die zutrifft, gibt der Durchsetzungscode die endgültige Entscheidung Verweigern zurück. Wenn es keine ausdrückliche Verweigerung gibt, wird die Auswertung des Erzwingungscodes fortgesetzt.

  • Organisations-SCPs – Der Durchsetzungscode wertet AWS Organizations-Ressourcenkontrollrichtlinien (RCPs) aus, die auf die Anfrage zutreffen. RCPs gelten für Ressourcen des Kontos, dem die RCPs zugeordnet sind. Wenn der Durchsetzungscode keine anwendbaren Allow-Anweisungen in den RCPs findet, gibt der Durchsetzungscode die endgültige Entscheidung Verweigern zurück. Beachten Sie, dass eine von AWS vverwaltete Richtlinie mit dem Namen RCPFullAWSAccessautomatisch erstellt und jeder Entität in Ihrer Organisation angefügt wird, einschließlich der Root-Struktur, jeder OE und AWS-Konto, wenn RCPs aktiviert sind. RCPFullAWSAccess kann nicht entfernt werden, sodass immer eine Allow-Anweisung vorhanden ist. Wenn kein RCP vorhanden ist oder wenn das RCP die angeforderte Aktion zulässt, wird die Auswertung des Durchsetzungscodes fortgesetzt.

  • Organisations-SCPs – Der Durchsetzungscode wertet AWS Organizations-Service-Kontrollrichtlinien (SCPs) aus, die für die Anforderung gelten. SCPs gelten für Auftraggeber des Kontos, dem die SCPs zugewiesen sind. Wenn der Durchsetzungscode keine anwendbaren Allow-Aussagen in den SCPs findet, gibt der Durchsetzungscode die endgültige Entscheidung Verweigern zurück. Wenn keine SCP vorhanden ist oder wenn die SCP die angeforderte Aktion zulässt, wird die Erzwingungscodeauswertung fortgesetzt.

  • 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 zum Gewähren des Zugriffs nur ein explizites Allow für den Prinzipal in einer identitätsbasierten oder ressourcenbasierten Richtlinie. IAM-Rollenvertrauensrichtlinien und KMS-Schlüsselrichtlinien sind Ausnahmen von dieser Logik, da sie den Zugriff für Auftraggeber ausdrücklich zulassen müssen.

    Die ressourcenbasierte Richtlinienlogik unterscheidet sich von anderen Richtlinientypen, wenn der angegebene Prinzipal ein IAM-Benutzer, eine IAM-Rolle oder ein Sitzungsprinzipal ist. Zu den Sitzungsprinzipalen gehören IAM-Rollensitzungen oder ein IAM-Verbundbenutzer-Sitzung. Wenn eine ressourcenbasierte Richtlinie dem IAM-Benutzer oder dem Sitzungssprinzipal, der die Anforderung stellt, die Berechtigung direkt erteilt, wirkt sich eine implizite Ablehnung in einer identitätsbasierten Richtlinie, einer Berechtigungsgrenze oder einer Sitzungsrichtlinie nicht auf die endgültige Entscheidung aus.

    • IAM-Rolle – Ressourcenbasierte Richtlinien, die Berechtigungen für einen IAM-Rollen-ARN erteilen, sind durch eine implizite Verweigerung in einer Berechtigungsgrenze oder einer Sitzungsrichtlinie beschränkt. Sie können die Rollen-ARN im Prinzipal-Element oder im Bedingungsschlüssel aws:PrincipalArn angeben. In beiden Fällen handelt es sich bei dem Prinzipal, der die Anfrage stellt, um die IAM-Rollensitzung.

      Berechtigungsgrenzen oder Sitzungsrichtlinien, schränken die gewährten Berechtigungen nicht ein, wenn der aws:PrincipalArn-Bedingungsschlüssel mit einem Platzhalter (*) im Prinzipal-Element verwendet wird, es sei denn, die identitätsbasierten Richtlinien enthalten eine explizite Verweigerung. Weitere Informationen finden Sie unter IAM-Rollenauftraggeber.

      Beispielrolle ARN

      arn:aws:iam::111122223333:role/examplerole
    • IAM-Rollensitzung – Innerhalb desselben Kontos gewähren ressourcenbasierte Richtlinien, die einem IAM-Rollensitzungs-ARN Berechtigungen erteilen, auch direkt Berechtigungen 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 Prinzipal, der die Anfrage stellt, der ARN der IAM-Rollensitzung 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
    • IAM-Benutzer - Innerhalb desselben Kontos sind ressourcenbasierte Richtlinien, die einem IAM-Benutzer-ARN (das kein Verbundbenutzersitzung ist) Berechtigungen erteilt, nicht durch eine implizite Verweigerung in einer identitätsbasierten Richtlinie oder Berechtigungsgrenze beschränkt.

      Beispiel eines IAM-Benutzer-ARN

      arn:aws:iam::111122223333:user/exampleuser
    • IAM-Verbundbenutzersitzung – Eine IAM-Verbundbenutzersitzung ist eine Sitzung, die durch Aufruf von GetFederationToken erstellt wurde. Wenn ein Verbundbenutzer eine Anfrage stellt, ist der Prinzipal, der die Anfrage stellt, der ARN des Verbundbenutzers und nicht der ARN des IAM-Benutzers, der den Verbund erstellt hat. Innerhalb desselben Kontos erteilen ressourcenbasierte Richtlinien, die einem Verbundbenutzer-ARN Berechtigungen gewähren, der Sitzung direkt Berechtigungen. 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 ARN des IAM-Benutzers, der den Verbund erstellt hat, die Berechtigung erteilt, werden Anfragen des Verbundbenutzers während der Sitzung durch eine implizite Verweigerung in einer Berechtigungsgrenze oder Sitzungsrichtlinie eingeschränkt.

      Beispiel für IAM-Verbundbenutzersitzung ARN

      arn:aws:sts::111122223333:federated-user/exampleuser
  • Identitätsbasierte Richtlinien – Der Durchsetzungscode überprüft die identitätsbasierten Richtlinien für den Prinzipal. Für einen IAM-Benutzer gehören hierzu 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 Durchsetzungscode gibt die endgültige Entscheidung Verweigert zurück. Wenn eine Anweisung in einer der anwendbaren identitätsbasierten Richtlinien die angeforderte Aktion zulässt, wird die Code-Auswertung fortgesetzt.

  • IAM-Berechtigungsgrenzen – Der Durchsetzungscode prüft, ob die vom Prinzipal verwendete IAM-Entität ü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 Zugriffsverweigerung zurück. Wenn keine Berechtigungsgrenze vorhanden ist oder die Berechtigungsgrenze die angeforderte Aktion zulässt, wird die Code-Auswertung fortgesetzt.

  • Sitzungsrichtlinien – Der Durchsetzungscode prüft, ob es sich bei dem Prinzipal um einen Sitzungsprinzipal handelt. Sitzungsprinzipale umfassen eine IAM-Rollensitzung oder eine IAM-Verbundbenutzersitzung. Wenn der Prinzipal kein Sitzungsprinzipal ist, gibt der Durchsetzungscode eine endgültige Entscheidung vonErlauben zurück.

    Bei Sitzungsprinzipalen prüft der Durchsetzungscode, ob in der Anfrage eine Sitzungsrichtlinie übergeben wurde. Sie können eine Sitzungsrichtlinie während der Verwendung der AWS CLI oder der AWS-API übergeben, um temporäre Anmeldeinformationen für eine Rolle oder einen IAM-Vebundbenutzer zu erhalten. Wenn Sie keine Sitzungsrichtlinie übergeben haben, wird eine Standardsitzungsrichtlinie erstellt und der Durchsetzungscode gibt die endgültige Entscheidung Zulassen zurück.

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

    • Der Durchsetzungscode prüft, ob es sich beim Prinzipal um eine Rollensitzung handelt. Wenn der Prinzipal eine Rollensitzung ist, lautet die Anforderung Erlaubt. Andernfalls wird die Anfrage implizit abgelehnt und der Durchsetzungscode gibt die endgültige Entscheidung 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.