Invocation d’une API privée - Amazon API Gateway

Invocation d’une API privée

Vous ne pouvez invoquer une API privée que depuis un VPC à l’aide d’un point de terminaison de VPC. Votre API privée doit disposer d’une politique de ressources qui autorise des VPC et des points de terminaison de VPC spécifiques à invoquer votre API.

Invocation d’une API privée à l’aide d’un nom de domaine personnalisé

Pour invoquer une API privée à l’aide d’un nom de domaine personnalisé, votre point de terminaison de VPC a besoin d’une association d’accès au nom de domaine avec un nom de domaine personnalisé, et le nom de domaine personnalisé doit autoriser l’accès au point de terminaison de VPC pour l’invoquer. Pour plus d’informations, consultez Noms de domaine personnalisés pour les API privées dans API Gateway.

Il n’existe pas de différence entre l’invocation d’un nom de domaine personnalisé privé d’un VPC de votre Compte AWS et l’invocation d’un nom de domaine personnalisé privé d’un VPC d’un autre Compte AWS.

Utilisation de votre nom de domaine personnalisé

Dans votre VPC, vous pouvez invoquer votre API à l’aide du nom de domaine personnalisé. L’exemple suivant est une commande curl permettant d’invoquer votre nom de domaine personnalisé privé :

curl https://private.example.com

Utilisation de noms d’hôte DNS privés spécifiques au point de terminaison

Vous pouvez invoquer votre API en utilisant le nom de domaine personnalisé et le nom d’hôte DNS privé spécifique au point de terminaison.

curl https://private-dns-hostname.execute-api.region.vpce.amazonaws.com/basepath -H 'Host:custom-domain-name'

L’exemple suivant est une commande curl permettant d’invoquer votre nom de domaine personnalisé à l’aide d’un nom d’hôte DNS privé spécifique au point de terminaison :

curl https://vpce-123456-abc000.execute-api.us-east-2.vpce.amazonaws.com/test -H 'Host:private.example.com'

Invocation d’une API privée sans utiliser de nom de domaine personnalisé

Pour invoquer votre API privée sans utiliser de nom de domaine personnalisé, vous devez identifier les noms DNS de votre API. La procédure suivante montre comment rechercher vos noms DNS.

AWS Management Console
Pour rechercher les noms DNS
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon VPC à l’adresse https://console.aws.amazon.com/vpc/.

  2. Dans le panneau de navigation de gauche, choisissez Points de terminaison, puis choisissez votre point de terminaison de VPC d’interface pour API Gateway.

  3. Dans le volet Détails, cinq valeurs sont répertoriées dans le champ Noms DNS. Les trois premières sont les noms DNS publics de votre API. Les deux autres sont ses noms DNS privés.

AWS CLI

Utilisez la commande describe-vpc-endpoints suivante pour répertorier vos valeurs DNS.

aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-01234567abcdef012

Les trois premières sont les noms DNS publics de votre API. Les deux autres sont ses noms DNS privés.

Invocation d’une API privée à l’aide d’un alias Route53

Vous pouvez associer un point de terminaison de VPC à votre API privée ou l’en dissocier. Pour plus d’informations, consultez (Facultatif) Association d’un point de terminaison de VPC à une API privée ou dissociation d’un point de terminaison de VPC d’une API privée.

Après avoir associé vos points de terminaison de VPC à votre API privée, vous pouvez utiliser l’URL de base suivante pour invoquer l’API :

https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}

Par exemple, si vous avez configuré la méthode GET /pets pour l’étape test, que l’ID de votre API REST était 01234567ab, que l’ID de votre point de terminaison de VPC était vpce-01234567abcdef012 et que votre région était us-west-2, vous pouvez invoquer votre API comme suit :

curl -v https://01234567ab-vpce-01234567abcdef012.execute-api.us-west-2.amazonaws.com/test/pets

Invocation d’une API privée à l’aide de noms DNS privés

Si vous avez activé le DNS privé, vous pouvez accéder à votre API privée en utilisant les noms DNS privés suivants :

{restapi-id}.execute-api.{region}.amazonaws.com

L’URL de base pour appeler l’API est au format suivant :

https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}

Par exemple, si vous avez configuré la méthode GET /pets pour l’étape test, que l’ID de votre API REST était 01234567ab et que votre région était us-west-2, vous pouvez invoquer votre API privée en saisissant l’URL suivante dans un navigateur :

https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets

Vous pouvez également utiliser la commande cURL suivante pour invoquer votre API privée :

curl -X GET https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets
Avertissement

Si vous activez le DNS privé pour votre point de terminaison de VPC, vous ne pourrez pas accéder au point de terminaison par défaut pour les API publiques. Pour plus d’informations, consultez Pourquoi ne puis-je pas me connecter à mon API publique à partir d’un point de terminaison de VPC API Gateway ?

Invocation d’une API privée à l’aide d’AWS Direct Connect

Vous pouvez utiliser AWS Direct Connect pour établir une connexion privée dédiée entre un réseau sur site et Amazon VPC, et accéder au point de terminaison de votre API privée via cette connexion en utilisant des noms DNS publics.

Vous pouvez également utiliser des noms DNS privés pour accéder à votre API privée à partir d’un réseau sur site en configurant un point de terminaison entrant Amazon Route 53 Resolver et en lui transférant toutes les requêtes DNS du DNS privé à partir de votre réseau distant. Pour plus d’informations, consultez Consignation des requêtes DNS vers vos VPC dans le Guide du développeur Amazon Route 53.

Invocation d’une API privée à l’aide de noms d’hôte DNS publics spécifiques au point de terminaison

Vous pouvez accéder à votre API privée en utilisant des noms d’hôte DNS spécifiques au point de terminaison. Il s’agit des noms d’hôte DNS publics contenant l’ID du point de terminaison de VPC ou l’ID d’API de votre API privée.

Format de l’URL de base générée :

https://{public-dns-hostname}.execute-api.{region}.vpce.amazonaws.com/{stage}

Par exemple, si vous configurez la méthode GET /pets pour l’étape test et que l’ID de votre API REST était abc1234, que son nom d’hôte DNS public était vpce-def-01234567 et que votre région était us-west-2, vous pouvez invoquer votre API privée à l’aide de son ID VPCe en utilisant l’en-tête Host dans une commande cURL :

curl -v https://vpce-def-01234567.execute-api.us-west-2.vpce.amazonaws.com/test/pets -H 'Host: abc1234.execute-api.us-west-2.amazonaws.com'

Vous pouvez également invoquer votre API privée via son ID d’API en utilisant l’en-tête x-apigw-api-id dans une commande cURL au format suivant :

curl -v https://{public-dns-hostname}.execute-api.{region}.vpce.amazonaws.com/{stage} -H 'x-apigw-api-id:{api-id}'