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 API l'accès avec votre AWS SAM modèle
Le contrôle de l'accès à votre API passerelle 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 passerelleAPIs.
AWS SAM prend en charge plusieurs mécanismes pour contrôler l'accès à votre API passerelleAPIs. 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 | ✓ | ✓ |
IAMautorisations | ✓ | |
Groupes d'utilisateurs Amazon Cognito | ✓ * | ✓ |
APIclés | ✓ | |
Politiques basées sur une ressource | ✓ | |
OAuth2.0/ autorisateurs JWT | ✓ |
* Vous pouvez utiliser Amazon Cognito comme émetteur de jeton JSON Web (JWT) avec le AWS::Serverless::HttpApi
type de ressource.
-
Autorisateurs Lambda — Un autorisateur Lambda (anciennement connu sous le nom d'autorisateur personnalisé) est une fonction Lambda que vous fournissez pour contrôler l'accès à votre. API Lorsque votre API est appelée, cette fonction Lambda est invoquée avec un contexte de demande 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 Travailler avec des AWS Lambda autorisateurs Lambda HTTP APIs dans le Guide du API développeur de Gateway. Pour plus d'informations sur les autorisateurs Lambda avecAWS::Serverless::Api
, consultez la section Utiliser les autorisateurs APILambda Gateway dans le Guide du développeur de Gateway. APIPour 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.
-
IAMautorisations — Vous pouvez contrôler qui peut invoquer vos autorisations API using AWS Identity and Access Management (IAM). Les utilisateurs qui vous appellent API doivent être authentifiés à l'aide IAM d'informations d'identification. Les appels vers votre adresse API aboutissent uniquement s'il existe une IAM politique attachée à l'IAMutilisateur qui représente l'APIappelant, un IAM groupe contenant l'utilisateur ou un IAM rôle assumé par l'utilisateur.
Seul le type de
AWS::Serverless::Api
ressource prend en charge IAM les autorisations.Pour plus d'informations, consultez la section Contrôler l'accès à et API avec IAM des autorisations dans le Guide du développeur de API Gateway. Pour obtenir un exemple, consultez IAMexemple d'autorisation pour AWS SAM.
-
Groupes d'utilisateurs Amazon Cognito – Les groupes d'utilisateurs Amazon Cognito sont des répertoires d'utilisateurs dans Amazon Cognito. L'un de vos clients API doit d'abord connecter un utilisateur au groupe d'utilisateurs et obtenir une identité ou un jeton d'accès pour cet utilisateur. Ensuite, le client vous appelle API avec l'un des jetons renvoyés. L'APIappel ne réussit que si le jeton requis est valide.
Le type de ressource
AWS::Serverless::Api
prend en charge les groupes d'utilisateurs Amazon Cognito. Le type deAWS::Serverless::HttpApi
ressource prend en charge l'utilisation d'Amazon Cognito en tant JWT qu'émetteur.Pour plus d'informations, consultez la section Contrôler l'accès à un REST API groupe d'utilisateurs Amazon Cognito en tant qu'autorisateur dans le guide du développeur de APIGateway. Pour obtenir un exemple, consultez Exemple de groupe d'utilisateurs Amazon Cognito pour AWS SAM.
-
APIclés : API les clés sont des valeurs de chaîne alphanumériques que vous distribuez aux clients développeurs d'applications pour leur accorder l'accès à votreAPI.
Seul le type de
AWS::Serverless::Api
ressource prend en charge API les clés.Pour plus d'informations sur API les clés, consultez la section Création et utilisation de plans d'utilisation avec des API clés dans le guide du développeur de API Gateway. Pour un exemple de API clés, voirAPIexemple clé pour AWS SAM.
-
Politiques relatives aux ressources : les politiques relatives JSON aux ressources sont des documents de politique que vous pouvez joindre à une API passerelleAPI. Utilisez des politiques de ressources pour contrôler si un principal spécifié (généralement un IAM utilisateur ou un rôle) peut invoquer leAPI.
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 GatewayAPIs.Pour plus d'informations sur les politiques de ressources, consultez la section Contrôle de l'accès aux politiques de ressources API avec API Gateway dans le Guide du développeur de API Gateway. Pour un exemple de stratégies de ressources, consultez Exemple de politique de ressources pour AWS SAM.
-
OAuth2.0/ JWT autorisateurs — Vous pouvez les utiliser dans JWTs le cadre des frameworks OpenID Connect (OIDC)
et OAuth2.0 pour contrôler l'accès à votre. APIs APIGateway valide les demandes soumises par JWTs les clients et autorise ou refuse les API 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 OAuth JWT autorisateurs 2.0/.Pour plus d'informations, consultez la section Contrôle de l'accès à l'HTTPAPIsaide JWT des autorisateurs dans le Guide du développeur de API Gateway. Pour obtenir un exemple, consultez OAuth2.0/ exemple JWT d'autorisateur 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 passerelle 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 de API Gateway. Seul le type de AWS::Serverless::Api
ressource prend en charge les réponses API Gateway personnalisées.
Pour plus d'informations sur les réponses de API Gateway, consultez la section Réponses de API Gateway dans Gateway dans le Guide du développeur de API Gateway. Pour obtenir un exemple de réponses personnalisées, consultez Exemple de réponse personnalisée pour AWS SAM.