Comment puis-je utiliser le point de terminaison d'un VPC d'interface pour accéder à une API REST privée d'API Gateway sur un autre compte ?
Je souhaite utiliser le point de terminaison d'un cloud privé virtuel (VPC) d'interface pour accéder à une API REST privée d'Amazon API Gateway qui se trouve sur un autre compte AWS.
Brève description
Suivez ces étapes pour utiliser le point de terminaison d'un VPC d'interface afin d'accéder à une API REST privée d'API Gateway qui se trouve dans un autre compte AWS :
- Créez un point de terminaison d'interface dans un Amazon Virtual Private Cloud (Amazon VPC) du premier compte (compte A).
- Créez une API REST privée d'API Gateway dans le deuxième compte (compte B).
- Configurez une stratégie de ressources pour l'API REST privée qui permet au point de terminaison d'interface d'invoquer l'API.
- Configurez une méthode pour l'API REST privée.
- Déployez l'API REST privée.
- Appelez l'API REST privée depuis le compte A pour tester la configuration.
Remarque : l'API REST privée d'Amazon API Gateway et le point de terminaison d'un VPC doivent se trouver dans la même région AWS.
Résolution
Créer un point de terminaison d'interface dans un Amazon VPC du premier compte (compte A)
Créer un nouveau point de terminaison d'un VPC d'interface
À partir du compte A, suivez les instructions de la section Créer un point de terminaison d'un VPC d'interface pour API Gateway execute-api.
Important : dans Stratégie, veillez à sélectionner Accès complet. Il est recommandé d'utiliser une stratégie relative aux points de terminaison d'un VPC afin de restreindre l'accès aux points de terminaison en fonction des ID d'API. Il est également recommandé d'utiliser la stratégie de ressources d'API Gateway afin de restreindre l'accès aux points de terminaison en fonction des principaux. Pour en savoir plus, reportez-vous à Appliquer les autorisations de moindre privilège.
Au moment de créer le point de terminaison d'interface, veuillez prendre les mesures suivantes :
- Il est recommandé de sélectionner plusieurs sous-réseaux dans différentes zones de disponibilité. Lorsque vous configurez des sous-réseaux dans plusieurs zones de disponibilité, le point de terminaison de votre interface est plus résilient face aux défaillances potentielles des zones de disponibilité.
- Activez le DNS privé pour utiliser un DNS public ou privé afin de vous connecter à votre API REST privée.
Remarque : lorsque le DNS privé est activé pour le point de terminaison d'un VPC d'interface, vous ne pouvez pas accéder aux API publiques d'API Gateway depuis votre Amazon VPC. Pour en savoir plus, reportez-vous à Pourquoi l'erreur « HTTP 403 Forbidden » est-elle générée lorsque je me connecte à mes API d'API Gateway à partir d'un VPC ? - Vos groupes de sécurité doivent disposer d'une règle qui autorise le trafic HTTPS entrant sur le port TCP 443 à partir d'une plage d'adresses IP dans votre Amazon VPC. La règle peut également provenir d'un autre groupe de sécurité de votre Amazon VPC.
Remarque : si aucun groupe de sécurité ne répond à l'une de ces exigences, vous devez alors créer un nouveau groupe de sécurité. Si vous ne spécifiez pas de groupe de sécurité, un groupe de sécurité par défaut sera associé aux interfaces réseau des points de terminaison.
Obtenir l'ID de point de terminaison d'un VPC pour le point de terminaison d'interface
Une fois le point de terminaison d'interface créé, l'ID de point de terminaison d'un VPC s'affiche. Copiez l'ID de point de terminaison d'un VPC lié à votre nouveau point de terminaison d'interface, par exemple : vpce-1a2b3c456d7e89012. Choisissez ensuite Fermer.
Remarque : vous utiliserez cet ID lors de la création et de la configuration de votre API REST privée.
Obtenir un nom DNS public du point de terminaison d'interface
Une fois que vous avez cliqué sur Fermer, la page Points de terminaison s'affiche dans la console Amazon VPC. À partir de l'onglet Détails de la page Points de terminaison, dans la colonne Noms DNS, copiez le nom DNS public de votre point de terminaison d'interface, par exemple : vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com.
Création d'une API REST privée d'API Gateway dans le deuxième compte (compte B)
- Dans le compte B, ouvrez la console API Gateway.
- Sélectionnez Créer une API.
- Dans le champ Choisir un type d'API, sous REST API privée, choisissez Création.
- Sur la page Créer, conservez le paramétrage du champ Sélectionner le protocole sur REST.
- Dans le champ Créer une nouvelle API, sélectionnez Nouvelle API.
- Sous Paramètres, saisissez les informations suivantes :
Dans le champ Nom d'API, saisissez un nom.
(Facultatif) Dans le champ Description, saisissez une description.
Définissez le Type de point de terminaison comme étant Privé.
Pour le champ ID de point de terminaison d'un VPC, saisissez l'ID de votre point de terminaison d'interface. Choisissez ensuite Ajouter.
Remarque : lorsque vous associez votre point de terminaison d'interface à votre API REST privée, API Gateway génère un nouvel enregistrement d'alias Amazon Route 53. Vous pouvez utiliser l'alias Route53 pour accéder à votre API privée. - Choisissez Créer une API.
Pour en savoir plus, reportez-vous à Création d'une API privée dans Amazon API Gateway.
Configurer une politique de ressources pour l'API REST privée permettant au point de terminaison d'interface d'invoquer l'API
1. Dans le volet de navigation de la console API Gateway, sous votre API, choisissez Stratégie de ressources.
2. Sur la page Stratégie de ressources, saisissez l'exemple de stratégie de ressources suivant dans la zone de texte :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*/*/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1a2b3c456d7e89012" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*/*/*" } ] }
Remarque : vous devez remplacer vpce-1a2b3c456d7e89012 par l'ID du point de terminaison d'interface.
Pour en savoir plus, reportez-vous à Configurer une stratégie de ressources pour une API privée.
Configurer une méthode pour l'API REST privée
- Dans le volet de navigation de la console API Gateway, sous votre API, choisissez Ressources.
- Dans le volet Ressources, sélectionnez Actions, puis sélectionnez Créer une méthode.
- Dans la liste déroulante située sous le nœud / resource, choisissez ANY, puis choisissez l'icône en forme de coche.
- Dans le volet / - ANY - Setup, dans Type d'intégration, choisissez Mock.
Remarque : une intégration de type « Mock » répondra à toutes les demandes qui lui parviendront. - Choisissez Enregistrer.
Pour en savoir plus, reportez-vous à Configurer des méthodes d'API REST dans API Gateway.
Déploiement de l'API REST privée
- Dans le volet Ressources de la console API Gateway, choisissez Actions, puis choisissez Déployer l'API.
- Dans la boîte de dialogue Déployer l'API, saisissez les informations suivantes :
Dans Étape de déploiement, choisissez [New Stage].
Dans le champ Nom de l'étape, saisissez un non. Exemple : dev ou test. - Sélectionnez Déployer.
- Dans le volet Éditeur d'étape, recherchez le message suivant : « Si le DNS privé est activé, utilisez cette URL : ». Copiez l'URL d'invocation de votre API REST privée.
Remarque : veillez à utiliser l'URL d'invocation de l'API REST privée pour tester la configuration.
Pour en savoir plus, reportez-vous à Déploiement d'une API privée à l'aide de la console API Gateway.
Appeler l'API REST privée depuis le compte A pour tester la configuration
- À partir du compte A, lancez une instance Amazon Elastic Compute Cloud (Amazon EC2) dans le même Amazon VPC que celui de votre point de terminaison d'interface.
Important : vous devez choisir le groupe de sécurité que vous avez associé à votre point de terminaison d'interface. - Connectez-vous à l'instance Amazon EC2.
Remarque : une instance EC2 peut entraîner des frais sur votre compte AWS. Si vous créez une instance à des fins de test, résiliez-la lorsque vous avez terminé vos tests pour éviter de générer des frais récurrents. - À partir de la ligne de commande de votre instance Amazon EC2, exécutez l'une des commandes curl ci-dessous pour appeler l'API REST privée du compte B.
Remarque : pour en savoir plus, reportez-vous à Invoquer votre API privée à l'aide de noms d'hôtes DNS publics spécifiques au point de terminaison. Pour obtenir plus d'informations sur curl, reportez-vous au site Web du projet curl.
Pour un nom DNS privé
Exécutez la commande suivante :
curl -i https://a1bc234d5e.execute-api.region.amazonaws.com/stage-name
Remarque : remplacez https://a1bc234d5e.execute-api.region.amazonaws.com/stage-name par l'URL d'invocation de votre API privée. Cette commande fonctionne uniquement si vous avez activé le DNS privé pour votre point de terminaison d'interface. Pour en savoir plus, reportez-vous à Invoquer votre API privée à l'aide de noms DNS privés.
Pour un alias Route 53
Exécutez la commande suivante :
curl -i https://a1bc234d5e-vpce-1a2b3c456d7e89012.execute-api.region.amazonaws.com/stage-name
Remarque : remplacez a1bc234d5e par l'ID de votre API, vpce-1a2b3c456d7e89012 par l'ID du point de terminaison d'interface et region par la région de votre API. Remplacez stage-name par le nom de l'étape à laquelle vous avez déployé votre API privée. Pour en savoir plus, reportez-vous à Accès à votre API privée à l'aide d'un alias Route53.
Pour un nom DNS public avec un en-tête d'hôte
Exécutez la commande suivante :
curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "Host: a1bc234d5e.execute-api.region.amazonaws.com"
Remarque : remplacez vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com par le nom DNS public de votre point de terminaison d'interface et stage-name par le nom de l'étape à laquelle vous avez déployé votre API privée. Remplacez a1bc234d5e.execute-api.region.amazonaws.com par l'URL d'invocation de votre API privée.
Pour un nom DNS public avec l'en-tête x-apigw-api-id
Exécutez la commande suivante :
curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "x-apigw-api-id:a1bc234d5e"
Remarque : remplacez vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com par le nom DNS public de votre point de terminaison d'interface et stage-name par le nom de l'étape à laquelle vous avez déployé votre API privée. Remplacez a1bc234d5e par l'ID de votre API.
4. Examinez la sortie de la commande. API Gateway renvoie une réponse 200 OK si la connexion est établie correctement.
Informations connexes
Accéder à un service AWS à l'aide du point de terminaison d'un VPC d'interface
Vidéos associées
Contenus pertinents
- demandé il y a un anlg...
- demandé il y a 7 moislg...
- demandé il y a 4 moislg...
- demandé il y a 10 moislg...
- demandé il y a 2 anslg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans