IAM-JSON-Richtlinienelemente: NotAction - AWS Identity and Access Management

IAM-JSON-Richtlinienelemente: NotAction

NotAction ist ein erweitertes Richtlinienelement, um eine explizite Übereinstimmung mit allen Aktionen herzustellen, mit Ausnahme der angegebenen Aktionsliste. Die Verwendung von NotAction kann zu einer kürzeren Richtlinie führen, da statt einer langen Liste von zugelassenen Aktionen lediglich einige wenige nicht zugelassenen Aktionen angegeben werden. Bei der Verwendung von NotAction sollten Sie beachten, dass die in diesem Element angegebenen Aktionen die einzigen eingeschränkten Aktionen sind. Dies bedeutet wiederum, dass alle nicht aufgelisteten einschlägigen Aktionen und Services zugelassen sind, wenn Sie die Anweisung Allow verwenden. Außerdem werden solche nicht aufgelisteten Aktionen und Services verweigert, wenn Sie die Anweisung Deny verwenden. Wenn Sie NotAction mit dem Resource-Element verwenden, schaffen Sie Raum für die Richtlinie. Auf diese Weise stellt AWS fest, welche Aktionen oder Services anwendbar sind. Weitere Informationen finden Sie in der folgenden Beispielrichtlinie.

NotAction mit Allow

Sie können in einer Anweisung das Element NotAction zusammen mit "Effect": "Allow" verwenden, um den Zugriff auf alle Aktionen in einem AWS-Service mit Ausnahme der in NotAction angegebenen Aktionen zu erteilen. Sie können sie mit dem Resource-Element verwenden, um Raum für die Richtlinie zu schaffen und die zugelassenen Aktionen auf die Aktionen zu beschränken, die für die angegebene Ressource ausgeführt werden können.

Das folgende Beispiel gestattet Benutzern den Zugriff auf die Amazon S3-Aktionen, die für jede S3-Ressource ausgeführt werden können, mit Ausnahme des Löschens eines Buckets. Dies gestattet den Benutzern nicht, die S3 API-Operation ListAllMyBuckets zu verwenden, weil für diese Aktion die Ressource "*" erforderlich ist. Diese Richtlinie lässt auch keine Aktionen in anderen Services zu, weil andere Service-Aktionen nicht auf die S3-Ressourcen anwendbar sind.

"Effect": "Allow", "NotAction": "s3:DeleteBucket", "Resource": "arn:aws:s3:::*",

Manchmal ist es sinnvoll, den Zugriff auf eine große Anzahl von Aktionen zu erlauben. Durch Verwendung des NotAction-Elements können Sie die Anweisung effektiv invertieren und so die Aktionsliste verkürzen. Sie können beispielsweise – weil AWS so viele -Services hat – eine Richtlinie erstellen, die dem Benutzer alles erlaubt, abgesehen vom Zugriff auf IAM-Aktionen.

Das folgende Beispiel ermöglicht Benutzern den Zugriff auf sämtliche Aktionen in allen AWS-Services außer IAM.

"Effect": "Allow", "NotAction": "iam:*", "Resource": "*"

Seien Sie vorsichtig bei der Verwendung der Elemente NotAction und "Effect": "Allow" in derselben Anweisung oder in einer anderen Anweisung innerhalb einer Richtlinie. NotAction stimmt mit allen Diensten und Aktionen überein, die nicht explizit aufgelistet oder auf die angegebene Ressource anwendbar sind und dazu führen könnten, dass Benutzer mehr Berechtigungen erhalten, als Sie beabsichtigt haben.

NotAction mit Deny

Sie können in einer Anweisung das Element NotAction mit "Effect": "Deny" verwenden, um den Zugriff auf alle aufgelisteten Ressourcen mit Ausnahme der im Element NotAction angegebenen Aktionen zu verweigern. Diese Kombination erteilt den aufgeführten Elementen keine Berechtigung, verweigert aber explizit den Zugriff auf die nicht aufgeführten Aktionen. Sie müssen unverändert die gewünschten Aktionen zulassen.

Das folgende Beispiel verweigert den Zugriff auf Nicht-IAM-Aktionen, wenn der Benutzer sich nicht mit MFA angemeldet hat. Hat sich der Benutzer mit MFA angemeldet, schlägt der "Condition"-Test fehl und die abschließende "Deny"-Anweisung hat keine Wirkung. Beachten Sie aber, dass dadurch kein Benutzerzugriff auf Aktionen gewährleistet ist. Es werden nur explizit alle anderen Aktionen als IAM-Aktionen verweigert.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DenyAllUsersNotUsingMFA", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}} }] }

Eine Beispielrichtlinie, mit der der Zugriff auf Aktionen außerhalb bestimmter Regionen verweigert wird, mit Ausnahme von Aktionen aus bestimmten Services; siehe AWS: Verweigert den Zugriff auf AWS basierend auf der angeforderten Region.