Utilisation de balises pour contrôler l'accès aux ressources API REST API Gateway - Amazon API Gateway

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.

Utilisation de balises pour contrôler l'accès aux ressources API REST API Gateway

Les conditions dans les stratégies AWS Identity and Access Management font partie de la syntaxe que vous utilisez pour spécifier des autorisations sur des ressources API Gateway. Pour de plus amples informations sur la spécification de stratégies IAM, veuillez consulter Contrôle de l'accès à une API avec des autorisations IAM. Dans API Gateway, les ressources et certaines actions peuvent comporter des balises. Lorsque vous créez une stratégie IAM, vous pouvez utiliser des clés de condition de balise pour contrôler :

  • quels utilisateurs peuvent effectuer des actions sur une ressource API Gateway, en fonction des balises que la ressource possède déjà ;

  • quelles balises peuvent être transmises dans une demande d'action ;

  • si des clés de balise spécifiques peuvent être utilisées dans une demande.

L’utilisation d’identifications pour le contrôle d'accès basé sur les attributs peut permettre un contrôle plus précis que le contrôle au niveau de l'API, et un contrôle plus dynamique que le contrôle d'accès basé sur les ressources. Il est possible de créer des stratégies IAM qui autorisent ou interdisent une opération en fonction des balises fournies dans la demande (balises de demande) ou des balises sur la ressource à laquelle les stratégies s’appliquent (balises de ressource). En général, les balises de ressource sont destinées aux ressources qui existent déjà. Les balises de demande conviennent lorsque vous créez des ressources.

Pour connaître la syntaxe complète et la sémantique des clés de condition de balise, consultez Contrôle de l'accès à l'aide de balises dans le Guide de l'utilisateur IAM .

Les exemples suivants montrent comment spécifier des conditions de balises dans les stratégies pour les utilisateurs API Gateway.

Limiter les actions en fonction des balises de ressource

L'exemple de politique suivant autorise les utilisateurs à effectuer toutes les actions sur toutes les ressources, à condition que ces ressources n'aient pas de balise Environment avec la valeur prod.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "apigateway:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "prod" } } } ] }

Autoriser des actions en fonction des balises de ressource

L'exemple de politique suivant autorise les utilisateurs à effectuer toutes les actions sur les ressources API Gateway, à condition que ces ressources aient la balise Environment avec la valeur Development. L'instruction Deny empêche l'utilisateur de modifier la valeur de la balise Environment.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConditionallyAllow", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "Development" } } }, { "Sid": "AllowTagging", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ] }, { "Sid": "DenyChangingTag", "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "Environment" } } } ] }

Refuser les opérations de balisage

L'exemple de politique suivant permet à un utilisateur d'exécuter toutes les actions API Gateway, sauf la modification de balises.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "*" ], }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "arn:aws:apigateway:*::/tags*", } ] }

Autoriser les opérations de balisage

L'exemple de politique suivant permet à un utilisateur d'obtenir toutes les ressources API Gateway et de modifier les balises de ces ressources. Pour obtenir les balises d'une ressource, l'utilisateur doit disposer des autorisations GET nécessaires pour cette ressource. Pour mettre à jour les balises d'une ressource, l'utilisateur doit disposer des autorisations PATCH nécessaires pour cette ressource.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PUT", "apigateway:POST", "apigateway:DELETE" ], "Resource": [ "arn:aws:apigateway:*::/tags/*", ] }, { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PATCH", ], "Resource": [ "arn:aws:apigateway:*::*", ] } ] }