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.
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}'