AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
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'API Gateway et le point de terminaison de VPC doivent se trouver dans la même région AWS.
Résolution
Créer un point de terminaison d'interface dans le Amazon VPC du premier compte (compte A)
Créer un nouveau point de terminaison de VPC d'interface
À partir du compte A, suivez les instructions de la section Créer un point de terminaison de VPC d'interface pour API Gateway dans votre VPC.
**Important :Dans Politique, choisissez ** Accès complet. Il est recommandé d'utiliser une stratégie relative aux points de terminaison de 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 plus d'informations, reportez-vous à la section Appliquer des 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 de VPC d'interface, vous ne pouvez pas accéder aux API publiques d'API Gateway depuis votre VPC. Pour en savoir plus, consultez la section Pourquoi l'erreur « HTTP 403 Interdit » s’affiche-t-elle 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 VPC. La règle peut également provenir d'un autre groupe de sécurité de votre 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é pour votre VPC. 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 de VPC s'affiche. Copiez l'ID de point de terminaison de VPC lié à votre nouveau point de terminaison d'interface, par exemple : vpce-1a2b3c456d7e89012.
Remarque : Vous utiliserez cet ID de point de terminaison de VPC 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
La page Points de terminaison s'affiche dans la console Amazon VPC. Dans l'onglet Détails de la page Points de terminaison, dans la colonne Noms DNS, copiez le nom DNS public du point de terminaison de votre interface. Par exemple : vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com.
Créer 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.
- Dans la section Détails de l'API, entrez les informations suivantes :
Dans Nom d'API, saisissez un nom.
(Facultatif) Pour le champ Description, saisissez une description.
Définissez le Type de point de terminaison comme étant Privé.
Dans ID du point de terminaison de VPC, saisissez l'ID de votre point de terminaison d'interface. Puis, sélectionnez 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. - Sélectionnez Créer une API.
Pour en savoir plus, consultez la section Créer une API privée.
Configurer une politique de ressources pour l'API REST privée permettant au point de terminaison d'interface d'invoquer l'API
- Dans le volet de navigation de la console API Gateway, sous votre API, choisissez Stratégie de ressources.
- Sur la page Stratégie de ressources, saisissez l'exemple de stratégie de ressources suivant dans la zone de texte :
Remarque : Vous devez remplacer vpce-1a2b3c456d7e89012 par l'ID du point de terminaison d'interface.{ "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:/*/*/*" } ] }
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. - Sélectionnez Enregistrer.
Pour plus d'informations, consultez la section Méthodes pour les API REST dans API Gateway.
Déployer 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 Nom de l’étape, saisissez un nom. Par exemple, dev ou test. - Choisissez Déployer.
- Dans le volet Éditeur d’étapes, recherchez le message 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, consultez la section Déployer une API privée.
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 VPC que celui de votre point de terminaison d'interface.
Important : Choisissez 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 supplémentaires. - À partir de la ligne de commande de votre instance 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, consulte la section Invoquer votre API privée à l'aide de noms d'hôtes DNS publics spécifiques au point de terminaison.
Pour un nom DNS privé
Exécutez la commande suivante :
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, consultez la section Invoquer une API privée à l'aide de noms DNS privés.curl -i https://a1bc234d5e.execute-api.region.amazonaws.com/stage-name
Pour un alias Route53
Exécutez la commande suivante :
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 plus d'informations, consultez la section Invoquer une API privée à l'aide d'un alias Route53.curl -i https://a1bc234d5e-vpce-1a2b3c456d7e89012.execute-api.region.amazonaws.com/stage-name
Pour un nom DNS public avec un en-tête d'hôte
Exécutez la commande suivante :
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.curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "Host: a1bc234d5e.execute-api.region.amazonaws.com"
Pour un nom DNS public avec l'en-tête x-apigw-api-id
Exécutez la commande suivante :
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.curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "x-apigw-api-id:a1bc234d5e" - Vérifiez la sortie de la commande. Si la connexion est établie, API Gateway renvoie une réponse 200 OK.
Informations connexes
Accéder à un service AWS à l'aide du point de terminaison de VPC d'interface
- Balises
- Amazon API Gateway
- Langue
- Français
Vidéos associées


Contenus pertinents
demandé il y a 3 ans
demandé il y a un an
demandé il y a 6 mois
demandé il y a 3 ans
demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a un an