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

IAM-JSON-Richtlinienelemente: Resource

Das Resource-Element in einer IAM-Richtlinienanweisung definiert das Objekt bzw. die Objekte, auf die die Anweisung angewendet wird. Anweisungen müssen entweder ein – Resourceoder ein NotResource-Element enthalten.

Sie geben eine Ressource mithilfe eines Amazon-Ressourcennamens (ARN) an. Das Format des ARN hängt vom AWS-Service und der spezifischen Ressource ab, auf die Sie sich beziehen. Obwohl das ARN-Format variiert, verwenden Sie immer eine ARN, um eine Ressource zu identifizieren. Weitere Informationen zum Format von ARNs finden Sie unter IAM-ARNs. Weitere Informationen zur Angabe einer Ressource finden Sie in der Dokumentation für den Service, für dessen Ressourcen Sie eine Anweisung definieren.

Anmerkung

Bei einigen AWS-Services ist es nicht möglich, Aktionen für einzelne Ressourcen festzulegen. In diesen Fällen gelten alle Aktionen, die Sie im Action- oder NotAction-Element auflisten, für alle Ressourcen in diesem Service. In diesem Fall verwenden Sie das Platzhalterzeichen (*) im Resource-Element.

Das folgende Beispiel bezieht sich auf eine bestimmte Amazon SQS-Warteschlange.

"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"

Das folgende Beispiel bezieht sich auf den IAM-Benutzer mit dem Namen Bob in einem AWS-Konto.

Anmerkung

Im Resource-Element ist für den IAM-Benutzernamen die Groß- und Kleinschreibung zu beachten.

"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"

Verwenden von Platzhaltern in Ressourcen-ARNs

Sie können Platzhalterzeichen (* und ?) innerhalb der einzelnen Segmente einer ARN (die durch Doppelpunkte getrennten Teile) verwenden, um Folgendes darzustellen:

  • Beliebige Kombination von Zeichen (*)

  • Beliebiges Zeichen (?)

Sie können mehrere *- oder ?-Zeichen in jedem Segment verwenden. Wenn der Platzhalter * das letzte Zeichen eines Ressourcen-ARN-Segments ist, kann er erweitert werden, sodass er über die Doppelpunktgrenzen hinaus übereinstimmt. Wir empfehlen die Verwendung von Platzhaltern (* und ?) innerhalb von ARN-Segmenten, die durch einen Doppelpunkt getrennt sind.

Anmerkung

Sie können keine Platzhalterzeichen in dem Servicesegment verwenden, welches das AWS-Produkt identifiziert. Weitere Informationen zu ARN-Segmenten finden Sie unter Identifizieren von AWS-Ressourcen mit Amazon Resource Names (ARNs).

Das folgende Beispiel bezieht sich auf alle IAM-Benutzer, deren Pfad /accounting lautet.

"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"

Das folgende Beispiel bezieht sich auf alle Elemente in einem spezifischen Amazon S3-Bucket.

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"

Das Sternchen (*) kann erweitert werden, um alles innerhalb eines Segments zu ersetzen, einschließlich Zeichen wie ein Schrägstrich (/), die andernfalls ein Trennzeichen innerhalb eines bestimmten Service-Namespace zu sein scheinen. Betrachten Sie beispielsweise den folgenden Amazon S3 ARN, da dieselbe Platzhaltererweiterungslogik für alle Dienste gilt.

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"

Die Platzhalter im ARN gelten für alle folgenden Objekte im Bucket, nicht nur für das erste aufgelistete Objekt.

amzn-s3-demo-bucket/1/test/object.jpg amzn-s3-demo-bucket/1/2/test/object.jpg amzn-s3-demo-bucket/1/2/test/3/object.jpg amzn-s3-demo-bucket/1/2/3/test/4/object.jpg amzn-s3-demo-bucket/1///test///object.jpg amzn-s3-demo-bucket/1/test/.jpg amzn-s3-demo-bucket//test/object.jpg amzn-s3-demo-bucket/1/test/

Betrachten Sie die letzten beiden Objekte in der vorherigen Liste. Ein Amazon-S3-Objektname kann mit dem herkömmlichen Schrägstrich (/) als Trennzeichen beginnen oder enden. Während / als Trennzeichen fungiert, gibt es keine spezifische Bedeutung, wenn dieses Zeichen innerhalb eines Ressourcen-ARN verwendet wird. Es wird wie jedes andere gültige Zeichen behandelt. Der ARN würde nicht mit den folgenden Objekten übereinstimmen:

amzn-s3-demo-bucket/1-test/object.jpg amzn-s3-demo-bucket/test/object.jpg amzn-s3-demo-bucket/1/2/test.jpg

Angabe mehrerer Aktionen oder Ressourcen

Sie können mehrere Ressourcen im Resource-Element angeben, indem Sie ein ARN-Array verwenden. Das folgende Beispiel bezieht sich auf zwei DynamoDB-Tabellen.

"Resource": [ "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table", "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table" ]

Verwenden von Richtlinienvariablen in Ressourcen-ARNs

Im Resource-Element können Sie JSON-Richtlinienvariablen in dem Teil des ARN verwenden, der die Ressource angibt (d. h. im abschließenden Teil des ARN). Beispielsweise können Sie den Schlüssel {aws:username} als Teil einer Ressourcen-ARN verwenden, damit der aktuelle Benutzername als Teil des Ressourcennamens aufgenommen wird. Das folgende Beispiel zeigt, wie Sie den Schlüssel {aws:username} in einem Resource-Element verwenden können. Die Richtlinie gewährt Zugriff auf eine Amazon DynamoDB-Tabelle, die den Namen des aktuellen Benutzers enthält.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:account-id:table/${aws:username}" } }

Weitere Informationen zu JSON-Richtlinienvariablen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags.