Contrôle de l'accès à une API avec des autorisations IAM - 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ôle de l'accès à une API avec des autorisations IAM

Vous contrôlez l'accès à votre API Amazon API Gateway avec les autorisations IAM en contrôlant l'accès aux deux processus de composant API Gateway suivants :

  • Pour créer, déployer et gérer une API dans API Gateway, vous devez accorder les autorisations aux développeurs d'API pour qu'ils exécutent les actions requises prises en charge par le composant de gestion des API API Gateway.

  • Pour appeler une API déployée ou pour actualiser la mise en cache de l'API, vous devez accorder les autorisations de l'appelant d'API pour exécuter les actions IAM obligatoires prises en charge par le composant de l'exécution d'API API Gateway.

Le contrôle d'accès pour les deux processus implique différents modèles d'autorisation, expliqués plus bas.

Modèle d'autorisation API Gateway pour créer et gérer une API

Pour permettre à un développeur d'API de créer et gérer une API dans API Gateway, vous devez créer des stratégies d'autorisation IAM qui permettent à un développeur d'API spécifié de créer, mettre à jour, déployer, afficher ou supprimer les entités d'API requises. Vous attachez la politique d'autorisations à un utilisateur, un rôle ou un groupe.

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :

Pour plus d'informations sur l'utilisation de ce modèle d'autorisation, consultez Stratégies basées sur l'identité d'API Gateway.

Modèle d'autorisation API Gateway pour l'appel d'une API

Pour permettre à un appelant d'API d'appeler l'API ou d'actualiser sa mise en cache, vous devez créer des politiques IAM qui permettent à un appelant d'API spécifié d'appeler la méthode d'API pour laquelle l'authentification d'utilisateur est activée. Le développeur d'API définit la propriété authorizationType de la méthode sur AWS_IAM pour imposer à l'appelant de soumettre les informations d'identification de l'utilisateur à l'authentification. Vous pouvez ensuite attacher la politique à un utilisateur, un groupe ou un rôle.

Dans cette déclaration de stratégie d'autorisation IAM, l'élément IAM Resource contient la liste des méthodes d'API déployées et identifiées par les verbes HTTP fournis et les chemins d'accès des ressources API Gateway. L'élément IAM Action contient les actions d'exécution requises des API API Gateway. Ces actions incluent execute-api:Invoke ou execute-api:InvalidateCache, où execute-api désigne le composant d'exécution des API sous-jacent d'API Gateway.

Pour plus d'informations sur l'utilisation de ce modèle d'autorisation, consultez Contrôler l'accès pour l'appel d'une API.

Lorsqu'une API est intégrée à un AWS service (par exemple, AWS Lambda) dans le back-end, API Gateway doit également être autorisée à accéder aux AWS ressources intégrées (par exemple, en invoquant une fonction Lambda) au nom de l'appelant de l'API. Pour accorder ces autorisations, créez un rôle IAM du type service AWS pour API Gateway. Lorsque vous créez ce rôle dans la console de gestion IAM, le rôle résultant contient la stratégie d'approbation IAM suivante qui déclare API Gateway en tant qu'entité de confiance autorisée à assumer le rôle :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Si vous créez le rôle IAM en appelant la commande create-role de la CLI ou une méthode de kit SDK correspondante, vous devez fournir la politique d'approbation ci-dessus en tant que paramètre d'entrée de assume-role-policy-document. N'essayez pas de créer une telle politique directement dans la console de gestion IAM ou d'appeler la commande AWS CLI create-policy ou une méthode du SDK correspondante.

Pour qu'API Gateway puisse appeler le AWS service intégré, vous devez également associer à ce rôle des politiques d'autorisation IAM appropriées pour appeler les AWS services intégrés. Par exemple, pour appeler une fonction Lambda, vous devez inclure la stratégie d'autorisations IAM suivante dans le rôle IAM :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "*" } ] }

Notez que Lambda prend en charge la stratégie d'accès basée sur les ressources, qui combine les stratégies d'approbation et d'autorisation. Lors de l'intégration d'une API à une fonction Lambda à l'aide de la console API Gateway, il ne vous est pas demandé de définir ce rôle IAM explicitement, car la console définit pour vous les autorisations basées sur les ressources sur la fonction Lambda, avec votre consentement.

Note

Pour mettre en place un contrôle d'accès à un AWS service, vous pouvez utiliser le modèle d'autorisation basé sur l'appelant, dans lequel une politique d'autorisation est directement attachée à l'utilisateur ou au groupe de l'appelant, ou le modèle d'autorisation basé sur les rôles, dans lequel une politique d'autorisation est attachée à un rôle IAM que API Gateway peut assumer. Les stratégies d'autorisation peuvent varier dans les deux modèles. Par exemple, la stratégie basée sur l'appelant bloque l'accès tandis que la stratégie basée sur les rôles l'autorise. Vous pouvez en profiter pour exiger qu'un utilisateur accède à un AWS service via une API API Gateway uniquement.