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ôlez l'accès aux API avec votre AWS SAM modèle
Le contrôle de l'accès à votre API Gateway APIs permet de garantir que votre application sans serveur est sécurisée et n'est accessible que par le biais de l'autorisation que vous autorisez. Vous pouvez activer l'autorisation dans votre AWS SAM modèle pour contrôler qui peut accéder à votre API Gateway APIs.
AWS SAM prend en charge plusieurs mécanismes pour contrôler l'accès à votre API Gateway APIs. L'ensemble des mécanismes pris en charge diffère entre les types de ressources AWS::Serverless::HttpApi
et AWS::Serverless::Api
.
Le tableau suivant récapitule les mécanismes pris en charge par type de ressource.
Mécanismes de contrôle de l'accès | AWS::Serverless::HttpApi | AWS::Serverless::Api |
---|---|---|
Mécanismes d'autorisation Lambda | ✓ | ✓ |
Autorisations IAM | ✓ | |
Groupes d'utilisateurs Amazon Cognito | ✓ * | ✓ |
Clés d’API | ✓ | |
Politiques basées sur une ressource | ✓ | |
OAuth 2.0/Autorisateurs JWT | ✓ |
* Vous pouvez utiliser Amazon Cognito en tant qu'auteur de jeton web JSON (JWT) avec le type de ressource AWS::Serverless::HttpApi
.
-
Mécanismes d'autorisation – Un mécanisme d'autorisation Lambda (anciennement appelé Custom Authorizer (mécanisme d'autorisation personnalisée)) est une fonction Lambda vous permettant de contrôler l'accès à vos API. Lorsque votre API est appelée, cette fonction Lambda est appelée avec un contexte de requête ou un jeton d'autorisation fourni par l'application cliente. La fonction Lambda répond si l'appelant est autorisé à effectuer l'opération demandée.
Les types de ressources
AWS::Serverless::HttpApi
etAWS::Serverless::Api
prennent tous deux en charge les mécanismes d'autorisation Lambda.Pour plus d'informations sur les autorisateurs Lambda avec
AWS::Serverless::HttpApi
, consultez la section Working with AWS Lambda authorizers for HTTP dans le Guide du développeur APIs d'API Gateway. Pour plus d'informations sur les mécanismes d'autorisation Lambda avecAWS::Serverless::Api
, consultez Utilisation des mécanismes d'autorisation Lambda API Gateway dans le Guide du développeur API Gateway.Pour obtenir des exemples de mécanismes d'autorisation Lambda pour l'un ou l'autre des deux type de ressource, consultez Exemples d'autorisateurs Lambda pour AWS SAM.
-
Autorisations IAM – Vous pouvez contrôler les personnes pouvant appeler votre API en utilisant AWS Identity and Access Management (IAM) autorisations. Les utilisateurs appelant votre API doivent être authentifiés avec des informations d'identification IAM. Les appels vers votre API ne réussissent que s'il existe une stratégie IAM attachée à l'utilisateur IAM qui représente l'appelant API, un groupe IAM qui contient l'utilisateur ou un rôle IAM assumé par l'utilisateur.
Seul le type de ressource
AWS::Serverless::Api
prend en charge les autorisations IAM.Pour plus d'informations, consultez le Contrôle de l'accès à une API avec des autorisations IAM dans le Guide du développeur API. Pour obtenir un exemple, consultez Exemple d'autorisation IAM pour AWS SAM.
-
Groupes d'utilisateurs Amazon Cognito – Les groupes d'utilisateurs Amazon Cognito sont des répertoires d'utilisateurs dans Amazon Cognito. Un client de votre API doit d'abord se connecter à un groupe d'utilisateurs et obtenir un jeton d'identité ou d'accès pour l'utilisateur. Ensuite, le client appelle votre API avec l'un des jetons renvoyés. L'appel d'API réussit uniquement si le jeton requis est valide.
Le type de ressource
AWS::Serverless::Api
prend en charge les groupes d'utilisateurs Amazon Cognito. Le type de ressourceAWS::Serverless::HttpApi
prend en charge l'utilisation d'Amazon Cognito en tant qu'auteur de JWT.Pour plus d'informations, consultez Contrôle de l'accès à une API REST à l'aide de groupes d'utilisateurs Amazon Cognito en tant que mécanisme d'autorisation dans le Guide du développeur API Gateway. Pour obtenir un exemple, consultez Exemple de groupe d'utilisateurs Amazon Cognito pour AWS SAM.
-
Les clés API sont des valeurs de chaînes alphanumériques que vous distribuez aux clients développeurs d'applications pour leur accorder l'accès à votre API.
Seul le type de ressource
AWS::Serverless::Api
prend en charge les clés API.Pour plus d'informations concernant les clés API, consultez Création et utilisation de plans d'utilisation avec les clés API dans le Guide du développeur API Gateway. Pour obtenir un exemple de clés API, voirExemple de clé d'API pour AWS SAM.
-
Stratégies de ressources – Les stratégies de ressources sont des documents de stratégie JSON que vous pouvez attacher à une API API Gateway. Vous pouvez utiliser les stratégies de ressources pour contrôler si un mandataire spécifié (généralement, un utilisateur ou un rôle IAM) peut appeler l'API.
Seul le type de
AWS::Serverless::Api
ressource prend en charge les politiques de ressources en tant que mécanisme de contrôle de l'accès à API Gateway APIs.Pour plus d'informations sur les stratégies de ressources, consultez Contrôle de l'accès à une API avec des stratégies de ressources API Gateway dans le Guide du développeur API. Pour un exemple de stratégies de ressources, consultez Exemple de politique de ressources pour AWS SAM.
-
OAuth Autorisateurs 2.0/JWT — Vous pouvez les utiliser dans JWTs le cadre des frameworks OpenID Connect (OIDC)
et OAuth 2.0 pour contrôler l'accès à votre. APIs API Gateway valide les JWTs demandes d'API soumises par les clients et autorise ou refuse les demandes en fonction de la validation du jeton et, éventuellement, des étendues du jeton. Seul le type de
AWS::Serverless::HttpApi
ressource prend en charge les autorisateurs OAuth 2.0/JWT.Pour plus d'informations, consultez la section Contrôle de l'accès au protocole HTTP APIs avec les autorisateurs JWT dans le guide du développeur d'API Gateway. Pour obtenir un exemple, consultez OAuth Exemple d'autorisateur 2.0/JWT pour AWS SAM.
Choix d'un mécanisme de contrôle d'accès
Le mécanisme que vous choisissez d'utiliser pour contrôler l'accès à votre API Gateway APIs dépend de plusieurs facteurs. Par exemple, si vous avez un projet inédit sans autorisation ni contrôle d'accès configuré, les groupes d'utilisateurs Amazon Cognito peuvent constituer votre meilleure option. En effet, lorsque vous configurez des groupes d'utilisateurs, vous configurez également automatiquement l'authentification et le contrôle d'accès.
Cependant, si votre application a déjà configuré l'authentification, l'utilisation de mécanismes d'autorisation Lambda pourrait être votre meilleur choix. Cela est dû au fait que vous pouvez appeler votre service d'authentification existant et renvoyer un document de stratégie basé sur la réponse. En outre, si votre application nécessite une authentification personnalisée ou une logique de contrôle d'accès que les groupes d'utilisateurs ne prennent pas en charge, alors les autorisations Lambda pourraient constituer votre meilleure option.
Lorsque vous avez choisi le mécanisme à utiliser, consultez la section correspondante Exemples pour savoir comment l'utiliser AWS SAM pour configurer votre application afin qu'elle utilise ce mécanisme.
Personnalisation des réponses d'erreur
Vous pouvez l'utiliser AWS SAM pour personnaliser le contenu de certaines réponses d'erreur d'API Gateway. Seul le type de ressource AWS::Serverless::Api
prend en charge les réponses personnalisées API Gateway.
Pour plus d'informations sur les réponses API Gateway, consultez Réponses de passerelle dans API Gateway dans le Guide du développeur API Gateway. Pour obtenir un exemple de réponses personnalisées, consultez Exemple de réponse personnalisée pour AWS SAM.