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

IAM-JSON-Richtlinienelemente: Resource

Das Element Resource definiert das Objekt oder die Objekte, die von der Anweisung abgedeckt sind. Anweisungen müssen entweder ein Resource- oder ein NotResource-Element enthalten. Geben Sie eine Ressource mit einem ARN an. Weitere Informationen zum Format von ARNs finden Sie unter IAM-ARNs.

Jeder Service verfügt über seine eigenen Ressourcen. Obwohl Sie immer zur Angabe einer Ressource einen ARN verwenden, hängen die ARN-Details für eine Ressource vom Service und der Ressource ab. 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 Services können Sie keine Aktionen für einzelne Ressourcen angeben. Stattdessen gelten alle Aktionen, die Sie im Element Action oder NotAction auflisten, für sämtliche Ressourcen im jeweiligen Service. In diesem Fall nutzen Sie den Platzhalter * 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

Jeder IAM-Benutzernamen ist eindeutig und die Groß- und Kleinschreibung wird nicht berücksichtigt.

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

Verwenden von Platzhaltern in Ressourcen-ARNs

Sie können im ARN der Ressource Platzhalter verwenden. Sie können Platzhalterzeichen (* und ?) in einem beliebigen ARN-Segment (durch Doppelpunkte getrennte Teile) verwenden. Ein Sternchen (*) steht für kein Zeichen oder eine beliebige Kombination von mehreren Zeichen und ein Fragezeichen (?) entspricht einem beliebigen einzelnen Zeichen. Sie können mehrere * oder? -Zeichen in jedem Segment. Das folgende Beispiel bezieht sich auf alle IAM-Benutzer, deren Pfad lautet /accounting.

"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:::DOC-EXAMPLE-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 Dienstnamespace zu sein scheinen. Betrachten Sie beispielsweise den folgenden Amazon S3 ARN, da dieselbe Platzhaltererweiterungslogik für alle Dienste gilt.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/test/*"

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

DOC-EXAMPLE-BUCKET/1/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test/3/object.jpg DOC-EXAMPLE-BUCKET/1/2/3/test/4/object.jpg DOC-EXAMPLE-BUCKET/1///test///object.jpg DOC-EXAMPLE-BUCKET/1/test/.jpg DOC-EXAMPLE-BUCKET//test/object.jpg DOC-EXAMPLE-BUCKET/1/test/

Betrachten Sie die letzten beiden Objekte in der vorherigen Liste. Ein Amazon S3 Objektname kann gültig mit dem herkömmlichen Trennzeichen Schrägstrich (/) 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:

DOC-EXAMPLE-BUCKET/1-test/object.jpg DOC-EXAMPLE-BUCKET/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test.jpg

Angabe mehrerer Aktionen oder Ressourcen

Sie können mehrere Ressourcen angeben. 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.