Tutoriel : Création d'un compte privé REST API - APIPasserelle Amazon

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.

Tutoriel : Création d'un compte privé REST API

Dans ce didacticiel, vous allez créer un compte privé RESTAPI. Les clients API ne peuvent y accéder que depuis votre AmazonVPC. APIIl est isolé de l'Internet public, ce qui constitue une exigence de sécurité courante.

Ce didacticiel vous prendra environ 30 minutes. Tout d'abord, vous utilisez un AWS CloudFormation modèle pour créer un AmazonVPC, un VPC point de terminaison, une AWS Lambda fonction et vous lancez une EC2 instance Amazon que vous utiliserez pour tester votreAPI. Ensuite, vous utilisez le AWS Management Console pour créer une politique de ressources privée API et y joindre une politique de ressources qui autorise l'accès uniquement depuis votre VPC point de terminaison. Enfin, vous testez votreAPI.

Vue d'ensemble du privé API que vous créez dans ce didacticiel.

Pour suivre ce didacticiel, vous avez besoin d'un AWS compte et d'un AWS Identity and Access Management utilisateur disposant d'un accès à la console. Pour plus d’informations, consultez Configuration pour utiliser API Gateway.

Dans ce tutoriel, vous utiliserez l AWS Management Console. Pour un AWS CloudFormation modèle qui crée cette ressource API et toutes les ressources associées, consultez template.yaml.

Étape 1 : création de dépendances

Téléchargez et décompressez ce AWS CloudFormation modèle. Vous utilisez le modèle pour créer toutes les dépendances de votre compte privéAPI, y compris un AmazonVPC, un VPC point de terminaison et une fonction Lambda qui sert de backend à votre compte. API Vous créerez le privé API ultérieurement.

Pour créer une AWS CloudFormation pile
  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Choisissez Créer une pile, puis choisissez Avec de nouvelles ressources (standard).

  3. Dans Spécifier le modèle, choisissez Charger un modèle de fichier.

  4. Sélectionnez le modèle que vous avez téléchargé.

  5. Choisissez Suivant.

  6. Pour Nom de la pile, saisissez private-api-tutorial, puis choisissez Suivant.

  7. Pour Configurer les options de pile, choisissez Suivant.

  8. Pour les fonctionnalités, reconnaissez que AWS CloudFormation vous pouvez créer IAM des ressources dans votre compte.

  9. Sélectionnez Envoyer.

AWS CloudFormation provisionne les dépendances pour vousAPI, ce qui peut prendre quelques minutes. Lorsque le statut de votre AWS CloudFormation pile est CREATE_ COMPLETE, choisissez Outputs. Notez l'identifiant de votre VPC point de terminaison. Vous en avez besoin pour les étapes ultérieures de ce tutoriel.

Étape 2 : créer un compte privé API

Vous créez un compte privé API pour autoriser uniquement les clients de votre VPC choix à y accéder.

Pour créer un compte privé API
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez Create API, puis pour RESTAPI, choisissez Build.

  3. Pour APIle nom, entrezprivate-api-tutorial.

  4. Pour le type de API point de terminaison, sélectionnez Privé.

  5. Pour le VPCpoint de terminaison IDs, entrez l'ID du VPC point de terminaison indiqué dans les sorties de votre AWS CloudFormation pile.

  6. Choisissez Create API.

Étape 3 : création d'une méthode et intégration

Vous créez une GET méthode et une intégration Lambda pour traiter les GET demandes adressées à votre. API Lorsqu'un client invoque votre demandeAPI, API Gateway envoie la demande à la fonction Lambda que vous avez créée à l'étape 1, puis renvoie une réponse au client.

Pour créer une méthode et une intégration
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez votre API.

  3. Choisissez Créer une méthode.

  4. Pour Type de méthode, sélectionnez GET.

  5. Pour Type d'intégration, sélectionnez Fonction Lambda.

  6. Activez Intégration de proxy Lambda. Avec une intégration de proxy Lambda, API Gateway envoie un événement à Lambda avec une structure définie et transforme la réponse de votre fonction Lambda en réponse. HTTP

  7. Pour la fonction Lambda, choisissez la fonction que vous avez créée avec le AWS CloudFormation modèle à l'étape 1. Le nom de la fonction commence par private-api-tutorial.

  8. Choisissez Créer une méthode.

Étape 4 : attacher une stratégie de ressources

Vous attachez une politique de ressources API qui permet aux clients de API n'invoquer la vôtre que par le biais de votre VPC point de terminaison. Pour restreindre davantage l'accès à votre terminalAPI, vous pouvez également configurer une politique de point de VPC terminaison pour votre VPC point de terminaison, mais cela n'est pas nécessaire dans le cadre de ce didacticiel.

Pour attacher une stratégie de ressources
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez votre API.

  3. Choisissez Stratégie de ressources, puis Créer une stratégie.

  4. Saisissez la stratégie suivante. Remplacez vpceID avec votre identifiant de point de VPC terminaison figurant dans les sorties de votre AWS CloudFormation stack.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpceID" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*" } ] }
  5. Sélectionnez Enregistrer les modifications.

Étape 5 : Déployez votre API

Ensuite, vous déployez le vôtre API pour le mettre à la disposition des clients de votre AmazonVPC.

Pour déployer un API
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez votre API.

  3. Choisissez DeployAPI (Déployer).

  4. Pour Étape, sélectionnez Nouvelle étape.

  5. Sous Stage name (Nom de l'étape), entrez test.

  6. (Facultatif) Sous Description, entrez une description.

  7. Choisissez Deploy (Déployer).

Vous êtes maintenant prêt à tester votreAPI.

Étape 6 : Vérifiez que le vôtre API n'est pas accessible au public

curlÀ utiliser pour vérifier que vous ne pouvez pas invoquer votre nom API depuis l'extérieur de votre AmazonVPC.

Pour tester votre API
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez votre API.

  3. Dans le volet de navigation principal, choisissez Étapes, puis choisissez l’étape de test.

  4. Sous Détails de l'étape, cliquez sur l'icône de copie pour copier votre API appelURL. URLOn dirait quehttps://abcdef123.execute-api.us-west-2.amazonaws.com/test. Le VPC point de terminaison que vous avez créé à l'étape 1 est DNS activé en mode privé. Vous pouvez donc utiliser le paramètre fourni URL pour appeler votreAPI.

  5. Utilisez curl pour tenter d'invoquer votre nom API depuis l'extérieur de votreVPC.

    curl https://abcdef123.execute-api.us-west-2.amazonaws.com/test

    Curl indique que votre point API de terminaison ne peut pas être résolu. Si vous obtenez une réponse différente, revenez à l'étape 2 et assurez-vous de choisir Privé pour le type API de terminal de votre choix.

    curl: (6) Could not resolve host: abcdef123.execute-api.us-west-2.amazonaws.com/test

Ensuite, vous vous connectez à une EC2 instance Amazon dans votre VPC pour appeler votreAPI.

Étape 7 : Connectez-vous à une instance dans votre VPC et appelez votre API

Ensuite, vous testez votre formulaire au sein API de votre AmazonVPC. Pour accéder à votre espace privéAPI, vous vous connectez à une EC2 instance Amazon dans votre compte, VPC puis vous utilisez curl pour appeler votreAPI. Vous utilisez le Gestionnaire de session Systems Manager pour vous connecter à votre instance dans le navigateur.

Pour tester votre API
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Choisissez Instances.

  3. Choisissez l'instance nommée private-api-tutorialque vous avez créée avec le AWS CloudFormation modèle à l'étape 1.

  4. Choisissez Connecter, puis Session Manager.

  5. Choisissez Connecter pour lancer une session basée sur un navigateur vers votre instance.

  6. Dans votre session du gestionnaire de session, utilisez curl pour appeler votreAPI. Vous pouvez invoquer votre API parce que vous utilisez une instance sur votre AmazonVPC.

    curl https://abcdef123.execute-api.us-west-2.amazonaws.com/test

    Vérifiez que vous obtenez la réponse Hello from Lambda!.

Vous utilisez le gestionnaire de session pour appeler votre formulaire au sein API de votre AmazonVPC.

Vous avez créé avec succès un API fichier accessible uniquement depuis votre Amazon, VPC puis vous avez vérifié qu'il fonctionne.

Étape 8 : Nettoyer

Pour éviter des coûts inutiles, supprimez les ressources que vous avez créées dans le cadre de ce tutoriel. Les étapes suivantes suppriment votre pile REST API et votre AWS CloudFormation pile.

Pour supprimer un REST API
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sur la APIspage, sélectionnez unAPI. Choisissez APIdes actions, choisissez Supprimer API, puis confirmez votre choix.

Pour supprimer une AWS CloudFormation pile
  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Sélectionnez votre AWS CloudFormation pile.

  3. Choisissez Supprimer, puis confirmez votre choix.

Prochaines étapes : Automatisez avec AWS CloudFormation

Vous pouvez automatiser la création et le nettoyage de toutes les AWS ressources impliquées dans ce didacticiel. Pour un exemple complet de modèle AWS CloudFormation , veuillez consulter template.yaml.