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 figurant dans les AWS Identity and Access Management politiques font partie de la syntaxe que vous utilisez pour spécifier les autorisations d'accès aux ressources API Gateway. Pour de plus amples informations sur la spécification de stratégies IAM, veuillez consulter Contrôler l'accès à un REST API avec des IAM autorisations. 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:*::*", ] } ] }