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 à un REST API avec des IAM autorisations
Vous contrôlez l'accès à votre Amazon API Gateway à l'APIaide IAMd'autorisations en contrôlant l'accès aux deux processus suivants du composant API Gateway :
-
Pour créer, déployer et gérer un outil intégré API à API Gateway, vous devez accorder au API développeur les autorisations nécessaires pour effectuer les actions requises prises en charge par le composant de API gestion de API Gateway.
-
Pour appeler une instance déployée API ou actualiser la API mise en cache, vous devez accorder à l'APIappelant les autorisations nécessaires pour effectuer les IAM actions requises prises en charge par le composant API d'exécution de API Gateway.
Le contrôle d'accès pour les deux processus implique différents modèles d'autorisation, expliqués plus bas.
APIModèle d'autorisations de passerelle pour créer et gérer un API
Pour permettre à un API développeur de créer et de gérer une API instance intégrée à API Gateway, vous devez créer IAM des politiques d'autorisation qui permettent à un API développeur spécifique de créer, mettre à jour, déployer, afficher ou supprimer APIles entités 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 :
-
Utilisateurs et groupes dans AWS IAM Identity Center :
Créez un jeu d’autorisations. Suivez les instructions de la rubrique Création d’un jeu d’autorisations du Guide de l’utilisateur AWS IAM Identity Center .
-
Utilisateurs gérés IAM via un fournisseur d'identité :
Créez un rôle pour la fédération d’identité. Suivez les instructions de la section Création d'un rôle pour un fournisseur d'identité tiers (fédération) dans le guide de IAM l'utilisateur.
-
IAMutilisateurs :
-
Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la section Création d'un rôle pour un IAM utilisateur dans le Guide de IAM l'utilisateur.
-
(Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la section Ajouter des autorisations à un utilisateur (console) dans le guide de IAM l'utilisateur.
-
Pour plus d'informations sur l'utilisation de ce modèle d'autorisation, consultez APIPolitiques basées sur l'identité de la passerelle.
APIModèle d'autorisations de passerelle pour appeler un API
Pour permettre à un API appelant d'invoquer API ou d'actualiser sa mise en cache, vous devez créer des IAM politiques qui permettent à un API appelant spécifié d'invoquer la API méthode pour laquelle l'authentification utilisateur est activée. Le API développeur définit la authorizationType
propriété de la méthode de manière AWS_IAM
à exiger que l'appelant soumette les informations d'identification de l'utilisateur pour être authentifié. Vous pouvez ensuite attacher la politique à un utilisateur, un groupe ou un rôle.
Dans cette déclaration de politique d'IAMautorisations, l'IAMResource
élément contient une liste de API méthodes déployées identifiées par des HTTP verbes et des chemins de ressources de API passerelle donnés. L'IAMAction
élément contient les actions d'APIexécution de la API passerelle requises. Ces actions incluent execute-api:Invoke
ouexecute-api:InvalidateCache
, où, execute-api
désigne le composant API d'exécution sous-jacent de API Gateway.
Pour plus d'informations sur l'utilisation de ce modèle d'autorisation, consultez Contrôler l'accès pour invoquer un API.
Lorsqu'un API est intégré à un AWS service (par exemple, AWS Lambda) dans le back-end, API Gateway doit également être autorisé à accéder aux AWS ressources intégrées (par exemple, en invoquant une fonction Lambda) au nom de l'APIappelant. Pour accorder ces autorisations, créez un IAM rôle du AWS service pour le type API Gateway. Lorsque vous créez ce rôle dans la console IAM de gestion, le rôle qui en résulte contient la politique de IAM confiance suivante qui déclare API Gateway comme une 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 IAM rôle en appelant la commande create-role de CLI ou une SDK méthode correspondante, vous devez fournir la politique de confiance ci-dessus comme paramètre d'entrée de. assume-role-policy-document
N'essayez pas de créer une telle politique directement dans la console de IAM gestion ou d'appeler la commande AWS CLI create-policy ou une méthode correspondanteSDK.
Pour que API Gateway puisse appeler le AWS service intégré, vous devez également associer à ce rôle des politiques d'IAMautorisation appropriées pour appeler les AWS services intégrés. Par exemple, pour appeler une fonction Lambda, vous devez inclure la politique d'IAMautorisation suivante dans le IAM rôle :
{ "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. Lorsque vous API intégrez une fonction Lambda à l'aide de la console API Gateway, il ne vous est pas demandé de définir ce IAM rôle de manière explicite, car la console définit pour vous les autorisations basées sur les ressources sur la fonction Lambda, avec votre accord.
Note
Pour mettre en place un contrôle d'accès à un AWS service, vous pouvez utiliser soit 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, soit le modèle d'autorisation basé sur les rôles, dans lequel une politique d'autorisation est attachée à un IAM rôle que Gateway peut assumer. API 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 passerelle API uniquement.