En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Comment faire pour utiliser un Application Load Balancer ou un Network Load Balancer pour invoquer une API privée API Gateway ?

Lecture de 6 minute(s)
0

Je souhaite configurer mon API privée Amazon API Gateway comme cible derrière un équilibreur de charge. Je souhaite ensuite utiliser un compte AWS pour accéder à mon API privée à partir d’un Application Load Balancer ou d’un Network Load Balancer.

Résolution

Pour accéder à votre API privée à l’aide d’AWS Direct Connect ou d’Amazon Route 53, consultez Invoquer une API privée. Vous pouvez également utiliser un point de terminaison de cloud privé virtuel (VPC) d’interface pour accéder à une API REST privée API Gateway dans un autre compte AWS.

La solution ci-après utilise une adresse IP d’interface réseau Elastic du point de terminaison Amazon Virtual Private Cloud (Amazon VPC). Avec cette adresse IP, vous pouvez ajouter votre API privée en tant que cible à l'équilibreur de charge.

Important : la passerelle d'API ne prend pas en charge les noms de domaine personnalisés pour les API privées. Pour contourner ce problème, vous pouvez invoquer et associer le domaine à un équilibreur de charge. Utilisez ensuite la configuration suivante pour invoquer l’API privée.

Créer un point de terminaison d’un VPC Amazon

Procédez comme suit :

  1. Ouvrez la console VPC Amazon.
  2. Choisissez Points de terminaison, puis Créer un point de terminaison.
  3. Saisissez les informations suivantes :
    Pour Services, choisissez com.amazonaws.com.your-region.execute-api.
    Pour VPC, sélectionnez votre VPC Amazon.
    Pour Sous-réseaux, sélectionnez deux sous-réseaux dans des zones de disponibilité différentes (ID AZ).
    Remarque : si des points de terminaison VPC Amazon sont déjà configurés dans votre VPC avec execute-api, désactivez le DNS privé.
  4. Choisissez Créer un point de terminaison.
  5. Sélectionnez votre point de terminaison, choisissez Sous-réseaux, puis copiez l’adresse IP.

Pour plus d’informations, consultez API REST privées dans API Gateway.

Créer une API REST privée et accorder l’autorisation au point de terminaison d’un VPC Amazon

Procédez comme suit :

  1. Ouvrez la console API Gateway, puis choisissez Créer l’API.
  2. Dans API REST, choisissez Créer.
  3. Dans Paramètres, entrez les informations suivantes :
    Pour Nom d’API, entrez un nom de l’API.
    Pour Type de point de terminaison, sélectionnez Privé.
    Pour les ID de point de terminaison, saisissez l’ID de point de terminaison que vous avez créé.
  4. Choisissez Créer une API.
  5. Dans le volet de navigation, choisissez Politique de ressources.
  6. Saisissez la politique suivante :
    {
      "Version": "2012-10-17",  "Statement": [
        {
          "Effect": "Deny",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*",
          "Condition": {
            "StringNotEquals": {
              "aws:SourceVpce": "vpce-081234d1ad408e"
            }
          }
        },
        {
          "Effect": "Allow",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*"
        }
      ]
    }
    Remarque : remplacez vpce-081234d1ad408e par l’ID de votre point de terminaison d’un VPC. Remplacez également arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID par l’Amazon Resource Name (ARN) de votre API.
  7. Choisissez Enregistrer.

Créer ou importer un certificat public AWS Certificate Manager

Vous pouvez soit demander un certificat public, soit importer un certificat.

Créer un Application Load Balancer ou un Network Load Balancer

Vous pouvez créer un Application Load Balancer ou un Network Load Balancer.

Créer le groupe cible

Procédez comme suit :

  1. Ouvrez la console Amazon Elastic Compute Cloud (Amazon EC2).
  2. Dans le volet de navigation, sous Équilibrage des charges, choisissez Équilibreurs de charges, puis Groupes cibles.
  3. Choisissez Créer un groupe cible.
  4. Saisissez les informations suivantes :
    Pour Type de cible, choisissez Adresses IP.
    Pour Nom du groupe cible, saisissez un nom.
    Application Load Balancer
    Pour Protocole, choisissez HTTPS.
    Pour Port, sélectionnez 443.
    Pour VPC, sélectionnez votre VPC.
    Pour Chemin d’accès à la surveillance de l’état, saisissez « / » et pour Codes de réussite, saisissez 200,403 afin que le point de terminaison d’un VPC soit considéré comme Sain.
    Network Load Balancer
    Pour Protocole, choisissez TLS.
    Pour Port, sélectionnez 443.
    Pour VPC, sélectionnez votre VPC.
  5. Choisissez Suivant.
  6. Pour Spécifier les adresses IP, saisissez l’adresse IP que vous avez copiée dans la section Créer un point de terminaison d’un VPC Amazon d’interface. Choisissez ensuite Ajouter une adresse IPv4.
  7. Choisissez Créer un groupe cible.

Configurer l’équilibreur de charge

Procédez comme suit :

  1. Ouvrez la console EC2.
  2. Dans le volet de navigation, choisissez Équilibreurs de charge, puis Créer un équilibreur de charge.
    Application Load Balancer
    Pour Schéma, choisissez Accès à Internet ou Interne en fonction de votre configuration.
    Pour Protocole, sélectionnez HTTPS.
    Pour VPC et Sous-réseaux, sélectionnez votre VPC et vos sous-réseaux.
    Network Load Balancer
    Pour Schéma, choisissez Accès à Internet ou Interne en fonction de votre configuration.
    Pour Protocole, sélectionnez TLS.
    Pour VPC et Sous-réseaux, sélectionnez votre VPC et vos sous-réseaux.
    Pour Politique de sécurité, sélectionnez la politique par défaut ELBSecurityPolicy-TLS (recommandée).
    Pour Certificat SSL/TLS par défaut, sélectionnez À partir d'ACM.
    Choisissez Sélectionner un certificat, puis sélectionnez votre certificat.
  3. Choisissez Créer un équilibreur de charge.
    Remarque : les cibles de l'équilibreur de charge se trouvent dans les adresses IP de l'interface réseau élastique créée par le point de terminaison d'un VPC. Pour trouver ces interfaces réseau Elastic, sélectionnez votre point de terminaison d'un VPC, puis ouvrez l'onglet Sous-réseaux.

Créer un enregistrement dans une zone hébergée publique ou privée Amazon Route 53

Créez une zone hébergée publique ou une zone hébergée privée. Ensuite, créez un CNAME ou un enregistrement alias et associez-le à votre application ou au Network Load Balancer.

Créer un domaine personnalisé

Créez un domaine personnalisé dans la console d’API Gateway. Ensuite, mappez l’API Rest privée sous le domaine personnalisé.

Tests

Pour les équilibreurs de charge publics, faites une requête curl depuis votre machine locale. Pour les équilibreurs de charge privés, lancez une nouvelle instance EC2 dans l'un des sous-réseaux de votre équilibreur de charge. Ensuite, faites une requête curl similaire à l’exemple suivant :

curl -v https://{custom-domain-name}/<resource-path>

Une demande aboutie renvoie un code de réponse 200 OK. Une demande infructueuse renvoie un code de réponse 403 Interdit ou une erreur de résolution DNS. Si vous rencontrez des problèmes, consultez Résoudre les problèmes liés aux équilibreurs de charge de votre application.

Informations connexes

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

Comment faire pour résoudre les problèmes de connexion à un point de terminaison d’une API privée API Gateway ?

Surveiller l’exécution de l’API REST à l’aide des métriques d’Amazon CloudWatch

Configurer la journalisation CloudWatch pour les API REST dans API Gateway

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