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

IAM-JSON-Richtlinienelemente: NotResource

NotResource ist ein erweitertes Richtlinienelement, das explizit jeder Ressource mit Ausnahme der angegebenen entspricht. Die Verwendung von NotResource kann zu einer kürzeren Richtlinie führen, da statt einer langen Liste von zulässigen Ressourcen lediglich einige wenige unzulässige Ressourcen angegeben werden. Dies ist besonders nützlich für Richtlinien, die innerhalb eines einzelnen AWS-Service gelten.

Stellen Sie sich beispielsweise vor, Sie haben eine Gruppe mit dem Namen HRPayroll. Mitglieder von HRPayroll sollten auf keine Amazon S3-Ressourcen außer dem Ordner Payroll im Bucket HRBucket zugreifen dürfen. Mit der folgenden Richtlinie wird der Zugriff auf alle nicht aufgelisteten Amazon S3-Ressourcen explizit verweigert. Beachten Sie jedoch, dass diese Richtlinie dem Benutzer keine Zugriffsberechtigung auf Ressourcen gewährt.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "s3:*", "NotResource": [ "arn:aws:s3:::HRBucket/Payroll", "arn:aws:s3:::HRBucket/Payroll/*" ] } }

Um einen Zugriff auf eine Ressource explizit zu verweigern, würden Sie normalerweise eine Richtlinie definieren, die ein "Effect":"Deny"- und Resource-Element enthält, in dem jeder Ordner einzeln aufgeführt ist. In diesem Fall müssen Sie allerdings jedes Mal, wenn Sie einen Ordner zu HRBucket oder eine Ressource zu Amazon S3 hinzufügen, auf die nicht zugegriffen werden darf, um deren Namen in der Liste der Resource zu ergänzen. Wenn Sie stattdessen ein NotResource-Element verwenden, wird den Benutzern der Zugriff auf neue Ordner automatisch verweigert, es sei denn, sie fügen die Ordnernamen zum NotResource-Element hinzu.

Bei der Verwendung von NotResource sollten Sie beachten, dass die in diesem Element angegebenen Ressourcen die einzigen nicht eingeschränkten Ressourcen sind. Dies wiederum schränkt alle Ressourcen ein, die für die Aktion gelten würden. Im obigen Beispiel wirkt sich die Richtlinie nur auf Amazon S3-Aktionen und daher nur auf Amazon S3-Ressourcen. Wenn die Aktion auch Amazon EC2-Aktionen enthält, verweigert die Richtlinie nicht den Zugriff auf EC2-Ressourcen. Informationen darüber, welche Aktionen in einem Service das Angeben des ARN einer Ressource zulassen, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS-Services.

NotResource mit anderen Elementen

Sie sollten die Elemente "Effect": "Allow", "Action": "*" und "NotResource": "arn:aws:s3:::HRBucket" niemals zusammen verwenden. Diese Anweisung ist sehr gefährlich, da sie alle Aktionen in AWS für alle Ressourcen außer dem HRBucket S3-Bucket zulässt. Dies würde sogar dem Benutzer erlauben, selbst eine Richtlinie hinzuzufügen, die ihm Zugriff auf gewährt HRBucket. Tun Sie dies nicht.

Seien Sie vorsichtig bei der Verwendung der Elemente NotResource und "Effect": "Allow" in derselben Anweisung oder in einer anderen Anweisung innerhalb einer Richtlinie. NotResource erlaubt alle Dienste und Ressourcen, die nicht explizit aufgeführt sind, und könnte dazu führen, dass Benutzer mehr Berechtigungen erhalten, als Sie beabsichtigt haben. Beim Verwenden der Elemente NotResource und "Effect": "Deny" in derselben Anweisung werden nicht explizit aufgelistete Services und Ressourcen verweigert.