Comment puis-je me connecter à une passerelle d’API privée via une connexion Direct Connect ?

Lecture de 6 minute(s)
0

Je souhaite me connecter à une passerelle Amazon API Gateway privée via une connexion AWS Direct Connect.

Résolution

Création d’un point de terminaison Virtual Private Cloud (VPC) Amazon pour le service Amazon API Gateway

Un point de terminaison de VPC Amazon permet aux ressources privées d’un VPC de communiquer en toute sécurité avec le service de passerelle d’API. Pour créer un point de terminaison de VPC Amazon pour la passerelle d’API, procédez comme suit :

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, sous Cloud privé virtuel, choisissez Points de terminaison.
  3. Pour Catégorie de service, choisissez Services AWS.
  4. Pour Nom de service, recherchez par mot clé « execute-api ». Cette recherche renvoie un résultat unique : « com.amazonaws.REGION.execute-api ».
  5. Sélectionnez « com.amazonaws.REGION.execute-api ».
  6. Pour VPC, sélectionnez le VPC Amazon sur lequel la connexion Direct Connect est configurée.
  7. Pour Sous-réseaux, sélectionnez les sous-réseaux pour lesquels vous souhaitez que l’API soit accessible.
  8. Pour Activer le nom DNS, désélectionnez la case Activer pour ce point de terminaison. La désactivation de ce paramètre exige d’activer la fonctionnalité facultative « noms d’hôte DNS » d’Amazon VPC. Le fait de laisser ce paramètre activé interrompt tout accès aux API publiques de passerelle d’API dans le VPC Amazon déployé si celui-ci utilise le DNS fourni par Amazon.
  9. Pour Groupe de sécurité, choisissez le groupe de sécurité du point de terminaison d’un VPC Amazon. Le groupe de sécurité doit autoriser l’accès au protocole TCP/443 entrant depuis votre Amazon VPC.
  10. Pour Politique, choisissez Accès complet. Cette option autorise toutes les connexions entre le VPC Amazon et le point de terminaison de VPC à l’aide des autorisations AWS IAM.
  11. Choisissez Créer un point de terminaison.
  12. Notez l’ID de point de terminaison du VPC Amazon (par exemple, « vpce-01234567890abcdef »). Vous aurez besoin de cet identifiant ultérieurement pour modifier la politique de ressources de l’API.

Création d’une API REST privée si cela n’est pas déjà fait

  1. Ouvrez la console API Gateway.
  2. Sélectionnez la région de la connexion Direct Connect.
  3. Sélectionnez Créer une API.
  4. Pour Type d’API, choisissez API REST privée.
  5. Pour Protocole d’API, choisissez REST.
  6. Sous Créer une nouvelle API, choisissez Exemple d’API.
  7. Sous Paramètres, vérifiez que Type de point de terminaison est défini sur Privé.
  8. Choisissez Importer.

Autorisation du point de terminaison du VPC Amazon d’accéder à l’API REST privée

  1. Sur la page Gestion des API, choisissez Politique de ressources.
  2. Copiez la politique ci-dessous dans votre Politique de ressources.
    {
      "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:/*/*/*"
        }
      ]
    }
    Remplacez la chaîne {{vpceID}} par l’ID de point de terminaison du VPC Amazon que vous avez noté après avoir créé le point de terminaison du VPC. Vous pouvez également rechercher l’ID dans la console Amazon VPC sous Points de terminaison.
    Remarque : cet exemple de politique permet d’accéder à toutes les ressources de l’API depuis le VPC Amazon. Pour restreindre davantage l’accès, modifiez la clé Ressource.
  3. Choisissez Enregistrer.

Déploiement de l’API pour valider les modifications

Maintenant que vous avez créé l’API et ajouté une politique de ressources, déployez l’API à une étape permettant de mettre en œuvre vos modifications :

  1. Dans le volet de navigation de la console API Gateway, choisissez Ressources.
  2. Choisissez Actions.
  3. Sous Actions d’API, choisissez Déployer l’API.
  4. Pour Étape de déploiement, choisissez [Nouvelle étape].
  5. Entrez un nom pour l’étape.
  6. Sélectionnez Déployer. Les modifications sont déployées dans l’API. La propagation des modifications de ce processus peut prendre quelques minutes.

Test d’accès à l’API depuis la connexion Direct Connect

Pour tester l’accès, procédez comme suit :

  1. Sur la console Amazon VPC, choisissez Point de terminaison, puis sélectionnez le point de terminaison de VPC que vous avez créé.

  2. Sous Détails, copiez le nom de DNS du point de terminaison du VPC. Exemple,
    « vpce-0123456789abcdef-b238e1kf.execute-api.REGION.vpce.amazonaws.com. »

  3. À partir d’un ordinateur connecté à votre VPC Amazon via Direct Connect, exécutez l’une des commandes suivantes pour tester la résolution du nom d’hôte DNS du point de terminaison du VPC.

    Windows PowerShell :

    nslookup <YOUR_VPCE_HOSTNAME>

    -ou-

    MacOS/Unix :

    nslookup <YOUR_VPCE_HOSTNAME>

    Remarque : remplacez YOUR_VPCE_HOSTNAME par le nom d’hôte du point de terminaison de VPC que vous avez créé précédemment.

    La réponse renvoie une adresse IP privée qui correspond au point de terminaison du VPC Amazon. Si vous ne recevez pas d’adresse IP privée dans la réponse, vérifiez le nom d’hôte du point de terminaison du VPC Amazon sur la console Amazon VPC sous Point de terminaison.

  4. Si le DNS fonctionne, effectuez une requête HTTP de test. Pour ce faire, vous avez besoin de l’ID d’API de la console API Gateway. Copiez l’ID d’API dans la liste. L’ID d’API est une chaîne de caractères, telle que « chw1a2q2xk ».

  5. Exécutez la commande suivante à partir d’un ordinateur sur site connecté à la connexion Direct Connect :

    Windows PowerShell :

    curl -H @{'x-apigw-api-id' = '<YOUR_API_ID>'} https://<YOUR_VPCE_HOSTNAME>/<STAGE>

    -ou-

    MacOS/Unix :

    curl -IX GET -H 'x-apigw-api-id:<YOUR_API_ID>' https://<YOUR_VPCE_HOSTNAME>/<STAGE>

    Remarque : remplacez YOUR_API_ID par l’ID de l’API REST privée ou de l’API que vous avez créée précédemment. Remplacez YOUR_VPCE_HOSTNAME par le nom d’hôte du point de terminaison de VPC et STAGE par l’étape de déploiement que vous avez créée précédemment.

Assurez-vous de ce qui suit :

  • La première ligne de la réponse inclut « HTTP/1.1 200 OK ».
  • Si vous ne recevez pas de réponse, vérifiez que le groupe de sécurité associé au point de terminaison du VPC Amazon autorise les connexions entrantes sur TCP/443 depuis l’adresse IP source. Vérifiez également que la connexion fonctionne correctement à l’aide de la connexion Direct Connect.
  • Si vous recevez une réponse « 403 Interdit », vérifiez que vous avez défini l’en-tête <YOUR_API_ID>. Vérifiez que vous envoyez une requête GET. Vérifiez également que <STAGE> a été correctement ajouté.

Remarque : les applications Web client proposées à partir d’un domaine différent de cette API peuvent interagir avec cette dernière. Dans de tels cas, le navigateur génère une demande de pré-contrôle de CORS qui rend difficile la définition de l’en-tête x-apigw-api-id. Pour résoudre ce problème, accédez plutôt à l’API privée à l’aide d’un alias Route53.

Informations connexes

Qu’est-ce que le CORS ?

Comment puis-je résoudre les problèmes de routage de la passerelle Direct Connect ?

Comment puis-je configurer une passerelle Direct Connect ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 mois