Éléments de politique JSON IAM : Resource - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Éléments de politique JSON IAM : Resource

L'élément Resource spécifie les objets couverts par l'instruction. Les instructions doivent inclure un élément Resource ou NotResource. Vous spécifiez une ressource à l'aide d'un ARN. Pour de plus amples informations sur le format des ARN, veuillez consulter ARN IAM.

Chaque service dispose de son propre ensemble de ressources. Bien que vous utilisiez toujours un ARN pour spécifier une ressource, le contenu de l'ARN d'une ressource dépend du service et de la ressource. Pour plus d'informations sur la façon de spécifier une ressource, reportez-vous à la documentation du service pour lequel vous souhaitez rédiger une instruction.

Note

Certains services ne vous permettent pas de spécifier des actions pour des ressources individuelles ; toutes les actions répertoriées dans l'élément Action ou NotAction s'appliquent alors à l'ensemble des ressources du service. Dans ce cas, vous utilisez le caractère générique * dans l'élément Resource.

L'exemple suivant fait référence à une file d'attente Amazon SQS spécifique.

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

L'exemple suivant fait référence à un utilisateur IAM nommé Bob dans un Compte AWS.

Note

Dans l'élément Resource, le nom de l'utilisateur IAM est sensible à la casse.

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

Utilisation de caractères génériques dans les ARN de ressources

Il est possible d'utiliser des caractères génériques dans l'ARN d'une ressource. Vous pouvez utiliser des caractères génériques (* et ?) dans des segments ARN (les parties séparées par des deux points) pour représenter n'importe quelle combinaison de caractères avec un astérisque (*) et n'importe quel caractère unique avec un point d'interrogation (?). Vous pouvez utiliser plusieurs * ou ? dans chaque segment. Si le caractère générique (*) est le dernier caractère d'un segment ARN de ressource, il peut s'étendre pour correspondre au-delà des limites des deux points. Nous vous recommandons d'utiliser des caractères génériques (* et ?) dans les segments d'ARN séparés par deux points.

Note

Vous ne pouvez pas utiliser un caractère générique dans le segment de service qui identifie le produit AWS. Pour plus d'informations sur les segments ARN, consultez Amazon Resource Names (ARN)

L'exemple suivant fait référence à tous les utilisateurs IAM dont le chemin d'accès est /accounting.

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

L'exemple suivant fait référence à tous les éléments d'un compartiment Amazon S3 spécifique.

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

Le caractère astérisque (*) peut se développer pour remplacer tout ce qui se trouve dans un segment, y compris des caractères tels qu'une barre oblique (/) qui pourrait autrement sembler être un délimiteur dans un espace de noms de service donné. Par exemple, considérez l'ARN Amazon S3 suivant comme la même logique d'extension générique qui s'applique à tous les services.

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

Les caractères génériques de l'ARN s'appliquent à tous les objets suivants dans le compartiment, et pas seulement au premier objet répertorié.

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/

Considérez les deux derniers objets de la liste précédente. Un nom d'objet Amazon S3 peut valablement commencer ou se terminer par la barre oblique (/) du délimiteur classique. Bien que « / » fonctionne comme un délimiteur, ce caractère n'a pas de signification spécifique lorsqu'il est utilisé dans un ARN de ressource. Il est traité de la même manière que n'importe quel autre caractère valide. L'ARN ne correspondrait pas aux objets suivants :

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

Spécification de plusieurs ressources

Vous pouvez spécifier plusieurs ressources. L'exemple suivant fait référence à deux tables DynamoDB.

"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" ]

Utilisation de variables de politique dans les ARN de ressources

Dans l'élément Resource, vous pouvez utiliser des variables de politique JSON dans la partie de l'ARN qui identifie la ressource spécifique (autrement dit, dans la partie finale de l'ARN). Par exemple, vous pouvez utilisez la clé {aws:username} au sein de l'ARN de la ressource pour indiquer que le nom de l'utilisateur actuel doit être inclus dans le nom de la ressource. L'exemple suivant montre comment utiliser la clé {aws:username} dans un élément Resource. La politique autorise l'accès à une table Amazon DynamoDB correspondant au nom de l'utilisateur actuel.

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

Pour plus d'informations sur les variables de politique JSON, consultez Éléments des politiques IAM : variables et balises.