Contrôler l'accès pour l'appel d'une API - 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.

Contrôler l'accès pour l'appel d'une API

Dans cette section, vous allez apprendre à écrire les déclarations de stratégie IAM pour contrôler qui peut ou non appeler une API déployée dans API Gateway. Ici, vous trouverez également la référence de déclaration de stratégie, y compris les formats des champs Action et Resource liés au service de l'exécution des API. Vous devez également étudier la section IAM de Comment les stratégies de ressources API Gateway affectent le flux de travail d'autorisation.

Pour les API privées, vous devez utiliser une combinaison constituée d'une stratégie de ressources API Gateway et d'un point de terminaison de VPC. Pour plus d'informations, consultez les rubriques suivantes :

Contrôle des personnes habilitées à appeler une méthode d'API API Gateway avec les stratégies IAM

Pour contrôler qui peut ou non appeler une API déployée avec les autorisations IAM, créez un document de stratégie IAM avec les autorisations requises. Un modèle pour un tel document de stratégie est affiché comme suit.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Permission", "Action": [ "execute-api:Execution-operation" ], "Resource": [ "arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path" ] } ] }

Ici, Permission doit être remplacé par Allow ou Deny, selon que vous voulez accorder ou révoquer les autorisations incluses. Execution-operation doit être remplacé par les opérations prises en charge par le service d'exécution des API. METHOD_HTTP_VERB représente un verbe HTTP pris en charge par les ressources spécifiées. Resource-path est l'espace réservé du chemin d'URL d'une instance Resource d'API déployée prenant en charge ledit verbe METHOD_HTTP_VERB. Pour de plus amples informations, veuillez consulter Référence de déclaration de stratégie IAM pour l'exécution des API dans API Gateway.

Note

Pour que les stratégies IAM soient efficaces, vous devez avoir activé l'authentification IAM sur les méthodes de l'API en définissant AWS_IAM pour la propriété authorizationType de la méthode. Faute de quoi ces méthodes d'API seront accessibles au public.

Par exemple, pour accorder à un utilisateur l'autorisation d'afficher la liste des « pets » exposés par une API spécifiée, mais lui refuser l'autorisation d'ajouter un « pet » à la liste, vous pouvez inclure la déclaration suivante dans la stratégie IAM :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets" ] }, { "Effect": "Deny", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/POST/pets" ] } ] }

Pour accorder à un utilisateur l'autorisation d'afficher un « pet » exposé spécifique par une API configurée en tant que GET /pets/{petId}, vous pouvez inclure la déclaration suivante dans la stratégie IAM :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets/a1b2" ] } ] }

Référence de déclaration de stratégie IAM pour l'exécution des API dans API Gateway

Les informations suivantes décrivent le format des expressions Action et Resource des déclarations de stratégie IAM d'autorisation d'accès pour l'exécution d'une API.

Format de l'expression Action des autorisations d'exécution d'API dans API Gateway

L'expression Action des autorisations d'exécution d'API a le format général suivant :

execute-api:action

action est une action d'exécution d'API disponible :

  • *, qui représente l'ensemble des actions suivantes.

  • Invoke, utilisée pour appeler une API sur demande d'un client.

  • InvalidateCache, utilisée pour invalider le cache API sur demande d'un client.

Format de l'expression Resource des autorisations d'exécution d'API dans API Gateway

L'expression Resource des autorisations d'exécution d'API a le format général suivant :

arn:aws:execute-api:region:account-id:api-id/stage-name/HTTP-VERB/resource-path-specifier

où :

  • region est la région AWS (telle que us-east-1 ou * pour toutes les régions AWS) qui correspond à l'API déployée pour la méthode.

  • account-id est l'ID de compte AWS à 12 chiffres du propriétaire de l'API REST.

  • api-id est l'identifiant qu'API Gateway a attribué à l'API pour la méthode.

  • stage-name est le nom de l'étape associée à la méthode.

  • HTTP-VERB est le verbe HTTP pour la méthode. Les valeurs possibles sont GET, POST, PUT, DELETE, PATCH.

  • resource-path-specifier est le chemin de la méthode souhaitée.

Note

Si vous spécifiez un caractère générique (*), l'expression Resource applique le caractère générique au reste de l'expression.

Voici quelques exemples d'expression Resource :

  • arn:aws:execute-api:*:*:* pour tout chemin de ressource à toute étape, pour toute API de toute région AWS.

  • arn:aws:execute-api:us-east-1:*:* pour tout chemin de ressource à toute étape, pour toute API dans la région AWS us-east-1.

  • arn:aws:execute-api:us-east-1:*:api-id/* pour tout chemin de ressource à toute étape, pour l'API avec l'identifiant api-id dans la région AWS us-east-1.

  • arn:aws:execute-api:us-east-1:*:api-id/test/* pour le chemin de ressource à l'étape test, pour l'API avec l'identifiant api-id dans la région AWS us-east-1.

Pour en savoir plus, veuillez consulter la section Référence Amazon Resource Name (ARN) API Gateway.