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 plus d’informations, consultez 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é pour invalider le cache de l'API à la 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ù :

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

  • account-id est l'identifiant de AWS compte à 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-specifierest le chemin d'accès à 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 n'importe quel chemin de ressource à n'importe quelle étape, pour n'importe quelle API dans n'importe quelle AWS région.

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

  • arn:aws:execute-api:us-east-1:*:api-id/*pour tout chemin de ressource à n'importe quelle étape, pour l'API dont l'identifiant api-id se situe dans la AWS région 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.