Utilisateur d’API : association de votre point de terminaison de VPC à un nom de domaine personnalisé privé partagé avec vous - Amazon API Gateway

Utilisateur d’API : association de votre point de terminaison de VPC à un nom de domaine personnalisé privé partagé avec vous

La procédure suivante montre comment utiliser un nom de domaine privé d’un autre Compte AWS. Selon votre relation de confiance avec le fournisseur d’API, AWS RAM peut effectuer certaines tâches pour vous.

Si vous vous trouvez dans un autre Compte AWS d’un nom de domaine personnalisé privé, vous pouvez uniquement associer votre point de terminaison de VPC à un nom de domaine personnalisé privé et l’invoquer. Vous ne pouvez pas voir la politique policy ni aucun autre paramètre du nom de domaine personnalisé privé.

Prérequis

Les conditions suivantes sont requises pour utiliser un nom de domaine personnalisé privé d’un autre Compte AWS :

  • Un VPC et un point de terminaison de VPC pour le service execute-api. Les valeurs enableDnsHostnames et enableDnsSupport de votre VPC doivent être définies sur true.

  • Nous vous recommandons de configurer au moins deux zones de disponibilité par point de terminaison de VPC.

(Facultatif) Acceptez le partage de ressources du domaine personnalisé privé

Si votre fournisseur d’API a utilisé AWS RAM pour créer un partage de ressources, vous disposez de 12 heures pour l’accepter. Si vous et le fournisseur d’API faites partie d’une même organisation utilisant AWS Organizations, le partage est automatiquement accepté. Si vous faites partie d’une organisation qui a activé le partage automatique de ressources, celles-ci sont automatiquement partagées avec vous.

AWS Management Console

Pour utiliser la AWS Management Console, consultez Accepting and rejecting resource share invitations dans le Guide de l’utilisateur AWS RAM.

AWS CLI

Pour trouver toutes les ressources partagées avec vous, utilisez la commande get-resource-share-invitations suivante :

aws ram get-resource-share-invitations \ --region us-west-2

Utilisez l’ARN de partage de ressources obtenu pour accepter l’invitation de partage de ressources. La commande accept-resource-share-invitation suivante accepte le partage de ressources.

aws ram accept-resource-share-invitation \ --resource-share-invitation-arn arn:aws:ram:us-west-2:123456789012:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE \ --region us-west-2

Association de votre point de terminaison de VPC à un nom de domaine personnalisé privé partagé

Comme les noms de domaine personnalisés privés ne sont pas uniques, vous devez associer votre point de terminaison de VPC à l’ARN unique du nom de domaine personnalisé. Après avoir créé votre association d’accès au nom de domaine, il peut s’écouler jusqu’à 15 minutes avant que votre point de terminaison de VPC n’invoque avec succès votre nom de domaine personnalisé privé. Si vous utilisez un point de terminaison de VPC pour accéder à un nom de domaine personnalisé public, ne l’utilisez pas pour créer une association d’accès à un nom de domaine.

AWS Management Console
Pour associer votre point de terminaison de VPC à un nom de domaine personnalisé privé partagé
  1. Connectez-vous à la console API Gateway à l’adresse : https://console.aws.amazon.com/apigateway.

  2. Dans le panneau de navigation principal, sélectionnez Associations d’accès aux noms de domaine.

  3. Choisissez Créer une association d’accès au nom de domaine.

  4. Pour ARN du nom de domaine, sélectionnez l’ARN du nom de domaine que le fournisseur d’API a partagé avec vous.

    L’ARN du nom de domaine peut ne pas apparaître dans la liste déroulante. Vous pouvez utiliser la console AWS RAM pour afficher les noms de domaine partagés avec vous, puis copier l’ARN du nom de domaine et le saisir dans ce champ.

  5. Pour ID de point de terminaison de VPC, sélectionnez l’ID de point de terminaison de VPC avec lequel vous souhaitez former l’association d’accès au nom de domaine.

  6. Choisissez Créer une association d’accès au nom de domaine.

AWS CLI

Comme les noms de domaine personnalisés privés ne sont pas uniques, vous devez associer votre point de terminaison de VPC à l’ARN unique du nom de domaine personnalisé. Pour rechercher l’ARN du nom de domaine, utilisez l’une des commandes suivantes.

  1. AWS RAM

    La commande list-resources suivante recense les ressources partagées avec vous. Pour utiliser cette commande, le fournisseur d’API doit avoir utilisé AWS RAM pour partager son domaine personnalisé privé avec vous.

    aws ram list-resources \ --resource-owner OTHER-ACCOUNTS \ --region us-west-2 --resource-type apigateway:Domainnames
    API Gateway

    La commande get-domain-names suivante recense tous les noms de domaine personnalisés privés appartenant à d’autres Comptes AWS avec lesquels vous pouvez former des associations d’accès aux noms de domaine.

    aws apigateway get-domain-names \ --resource-owner OTHER_ACCOUNTS \ --region us-west-2
  2. Après avoir récupéré l’ARN, utilisez API Gateway pour créer l’association d’accès au nom de domaine entre votre point de terminaison de VPC et un nom de domaine personnalisé privé partagé. Utilisez la commande create-domain-name-access-association suivante :

    aws apigateway create-domain-name-access-association \ --access-association-source-type VPCE \ --access-association-source 'vpce-1a2b3c4d5e6f1a2b3' \ --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"

    Le résultat se présente comme suit :

    { "domainNameAccessAssociationARN": "arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg", "accessAssociationSource": "vpce-1a2b3c4d5e6f1a2b3", "accessAssociationSourceType": "VPCE", "domainNameARN" : "arn:aws:apigateway:us-west-1:111122223333:/domainnames/private.example.com+a1b2c3" }

Après avoir associé votre point de terminaison de VPC au nom de domaine personnalisé privé, vérifiez que votre fournisseur d’API a mis à jour la politique de son nom de domaine personnalisé privé de manière à autoriser le point de terminaison de votre VPC à invoquer son nom de domaine. Pour plus d’informations, consultez Autorisation d’autres comptes à invoquer votre nom de domaine personnalisé privé.

Création d’une zone hébergée Route 53

Pour résoudre le nom de domaine personnalisé privé, vous devez créer une zone hébergée privée Route 53. Une zone hébergée est un conteneur qui comporte des informations sur la façon dont vous souhaitez acheminer le trafic pour un domaine dans un ou plusieurs VPC, sans exposer vos ressources à Internet. Pour plus d’informations, veuillez onsulter Utilisation des zones hébergées privées.

AWS Management Console

Pour utiliser la AWS Management Console, consultez Création d’une zone hébergée privée dans le Guide du développeur Amazon Route 53.

Pour Nom, utilisez le nom du nom de domaine personnalisé privé. Pour ID du VPC, utilisez le VPC contenant le point de terminaison de VPC que vous avez utilisé pour votre association d’accès au nom de domaine.

AWS CLI

La commande create-hosted-zone suivante crée une zone hébergée privée :

aws route53 create-hosted-zone --name private.example.com \ --caller-reference 2014-04-01-18:47 \ --hosted-zone-config Comment="command-line version",PrivateZone=true \ --vpc VPCRegion=us-west-2,VPCId=vpc-abcd1234

La sortie contient l’ID de la zone hébergée. Vous allez l’utiliser lors des étapes suivantes.

Création d’un enregistrement DNS Route 53

Après avoir créé la zone hébergée, vous devez créer un enregistrement pour résoudre le domaine personnalisé privé. Dans cet exemple, vous allez créer un type d’enregistrement A. Si vous utilisez IPv6 pour votre point de terminaison de VPC, créez un type d’enregistrement AAAA. Si vous utilisez une double pile pour votre point de terminaison de VPC, créez un enregistrement de type AAAA et un type d’enregistrement A.

AWS Management Console

Pour utiliser la AWS Management Console, consultez Routing traffic to an Amazon API Gateway API by using your domain name.

Utilisez Création rapide et activez Alias. Pour le point de terminaison, utilisez le nom DNS du point de terminaison du VPC.

AWS CLI

Pour configurer vos enregistrements DNS de manière à ce qu’ils mappent le nom de domaine personnalisé privé au nom d’hôte de l’ID de la zone hébergée, commencez par créer un fichier JSON qui contient la configuration pour créer un enregistrement DNS pour le nom de domaine privé.

L’enregistrement setup-dns-record.json suivant montre comment créer un enregistrement DNS A pour mapper un nom de domaine personnalisé privé à son nom d’hôte privé. Vous allez fournir le nom DNSName de l’ID DNS de votre VPC et l’ID de la zone hébergée que vous avez créée à l’étape précédente.

{ "Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Name": "private.example.com", "Type": "A", "AliasTarget": { "DNSName": "vpce-abcd1234.execute-api.us-west-2.vpce.amazonaws.com", "HostedZoneId": "Z2OJLYMUO9EFXC", "EvaluateTargetHealth": false } } } ] }

La commande change-resource-record-sets suivante crée un enregistrement DNS pour le nom de domaine personnalisé privé :

aws route53 change-resource-record-sets \ --hosted-zone-id ZABCDEFG1234 \ --change-batch file://path/to/your/setup-dns-record.json

Remplacez hosted-zone-id par l’ID de la zone hébergée Route 53 du jeu d’enregistrements DNS de votre compte. La valeur du paramètre change-batch pointe vers un fichier JSON.

Prochaines étapes pour un utilisateur d’API

Vous pouvez désormais invoquer l’API privée dans votre propre Compte AWS. Dans votre VPC, vous pouvez utiliser la commande curl suivante pour accéder à votre nom de domaine personnalisé privé.

curl https://private.example.com/v1

Pour découvrir d’autres façons d’invoquer votre API privée, consultez Invocation d’une API privée à l’aide d’un nom de domaine personnalisé.