Configuration d’un nom de domaine personnalisé régional dans API Gateway
Utilisez un nom de domaine personnalisé régional pour créer une URL de base d’API conviviale. Avec un nom de domaine personnalisé régional, vous pouvez mapper les étapes d’API HTTP et REST au même nom de domaine personnalisé et utiliser l’authentification TLS mutuelle.
Considérations
Voici quelques points à prendre en compte pour votre nom de domaine personnalisé régional :
-
Vous devez fournir un certificat ACM spécifique à la région. Ce certificat doit se trouver dans la même région que votre API. Pour plus d’informations sur la création ou le chargement d’un certificat de nom de domaine personnalisé, consultez Préparation de certificats dans AWS Certificate Manager.
-
Lorsque vous créez un nom de domaine personnalisé régional (ou que vous en migrez un) avec un certificat ACM, API Gateway crée un rôle lié à un service dans votre compte. Le rôle lié à un service est requis pour attacher votre certificat ACM à votre point de terminaison régional. Ce rôle est appelé AWSServiceRoleForAPIGateway et la politique APIGatewayServiceRolePolicy y sera attachée. Pour plus d’informations sur l’utilisation du rôle lié à un service, consultez Utilisation des rôles liés à un service.
-
Après avoir créé votre nom de domaine personnalisé régional, vous devez créer un enregistrement DNS pour pointer le nom de domaine personnalisé vers le domaine régional. Cela permet au trafic lié au nom de domaine personnalisé d’être acheminé vers le nom d’hôte régional de l’API.
L’enregistrement DNS peut être un enregistrement CNAME ou A Alias. Si vous utilisez Route 53 comme fournisseur DNS, créez un enregistrement A Alias. Si vous utilisez un fournisseur DNS tiers, utilisez un enregistrement CNAME. Si vous utilisez un enregistrement CNAME et créez un point de terminaison de VPC d’interface API Gateway avec le DNS privé activé pour une API privée, vous ne pouvez pas résoudre le nom de domaine personnalisé dans le VPC qui héberge votre API privée.
Création d’un nom de domaine personnalisé régional
La procédure suivante montre comment créer un nom de domaine personnalisé régional. Après avoir effectué cette procédure, vous allez créer une règle de routage pour acheminer les étapes de votre API vers votre nom de domaine personnalisé.
- AWS Management Console
Connectez-vous à la console API Gateway à l’adresse https://console.aws.amazon.com/apigateway.
-
Sélectionnez Noms de domaine personnalisés dans le volet de navigation principal.
-
Choisissez Créer.
-
Pour Nom de domaine, entrez un nom de domaine.
Pour Mode de routage, choisissez Règles de routage uniquement.
Dans ce mode de routage, vous ne pouvez envoyer le trafic de votre nom de domaine personnalisé vers vos API qu’en utilisant des règles de routage. Pour plus d’informations, consultez Envoi du trafic à vos API via votre nom de domaine personnalisé dans API Gateway.
-
Pour Version TLS minimale, sélectionnez une version.
-
Sous Configuration du point de terminaison, pour Type de point de terminaison d’API, choisissez Régional.
-
Choisissez un certificat ACM. Le certificat doit se trouver dans la même région que l’API.
-
Choisissez Créer.
- AWS CLI
-
La commande create-domain-name suivante crée un nom de domaine personnalisé :
aws apigatewayv2 create-domain-name \
--domain-name 'regional.example.com' \
--domain-name-configurations CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678 \
--routing-mode ROUTING_RULE_ONLY
Le résultat se présente comme suit :
{
"ApiMappingSelectionExpression": "$request.basepath",
"DomainName": "regional.example.com",
"DomainNameConfigurations": [
{
"ApiGatewayDomainName": "d-numh1z56v6.execute-api.us-west-2.amazonaws.com",
"CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678",
"DomainNameStatus": "AVAILABLE",
"EndpointType": "REGIONAL",
"HostedZoneId": "Z2OJLYMUO9EFXC",
"SecurityPolicy": "TLS_1_2"
}
"RoutingMode": "ROUTING_RULE_ONLY"
]
}
La valeur de la propriété DomainNameConfigurations renvoie le nom d’hôte de l’API régionale. Vous devez créer un enregistrement DNS pour pointer votre nom de domaine personnalisé vers ce nom de domaine régional. Cela permet au trafic lié au nom de domaine personnalisé d’être acheminé vers le nom d’hôte de cette API régionale.
Création d’une règle de routage pour votre nom de domaine personnalisé régional
Après avoir créé votre nom de domaine personnalisé, vous allez configurer le mode d’acheminement du trafic de votre nom de domaine personnalisé vers vos API. Comme vous avez défini le mode de routage sur ROUTING_RULE_ONLY, vous allez utiliser des règles de routage pour acheminer les demandes entrantes de votre nom de domaine personnalisé vers vos API.
Dans cet exemple, vous allez créer une règle fourre-tout qui achemine toutes les demandes entrantes de votre nom de domaine personnalisé vers une étape de votre API. Vous pouvez également configurer des règles de routage en fonction de différentes conditions d’en-tête et de chemin. Pour plus d’informations, consultez Règles de routage pour connecter des étapes d’API REST à un nom de domaine personnalisé.
- AWS Management Console
Connectez-vous à la console API Gateway à l’adresse https://console.aws.amazon.com/apigateway.
-
Choisissez un nom de domaine personnalisé.
-
Dans l’onglet Détails du routage, choisissez Ajouter une règle de routage.
-
Choisissez Ajouter une nouvelle condition pour ajouter une nouvelle condition.
-
Conservez cette règle sans condition. Cette opération achemine toutes les demandes de votre nom de domaine personnalisé vers votre API et votre étape cibles.
Sous Action, utilisez le menu déroulant pour sélectionner votre API et votre étape cibles.
-
Choisissez Suivant.
Dans le champ Priorité, saisissez 100.
API Gateway évalue les règles par ordre de priorité, de la valeur la plus basse à la valeur la plus élevée. Comme il s’agit d’une règle fourre-tout, utilisez une priorité élevée afin qu’API Gateway puisse faire correspondre toutes les règles supplémentaires créées en premier.
Choisissez Créer une règle de routage.
- AWS CLI
La commande create-routing-rule suivante crée une règle de routage fourre-tout :
aws apigatewayv2 create-routing-rule \
--domain-name 'regional.example.com' \
--priority 100 \
--conditions \
--actions '[{
"InvokeApi": {
"ApiId": "a1b2c3",
"Stage": "prod"
}
}]'
Vous pouvez modifier le mode de routage et créer de nouvelles règles à tout moment. Pour plus d’informations, consultez Envoi du trafic à vos API via votre nom de domaine personnalisé dans API Gateway.
Création d’un enregistrement DNS pour votre nom de domaine personnalisé régional
Après avoir créé votre nom de domaine personnalisé et créé les mappages de chemins de base, vous allez créer un enregistrement DNS pour pointer votre nom de domaine personnalisé vers le nom de domaine régional que vous venez de créer.
- AWS Management Console
Pour utiliser l’AWS Management Console, suivez la documentation de Route 53 sur la configuration de Route 53 pour acheminer le trafic vers API Gateway.
- AWS CLI
Pour configurer vos enregistrements DNS de manière à mapper le nom de domaine personnalisé régional 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 régional.
L’exemple setup-dns-record.json suivant montre comment créer un enregistrement DNS A afin de mapper un nom de domaine personnalisé régional (regional.example.com) à son nom d’hôte régional (d-numh1z56v6.execute-api.us-west-2.amazonaws.com) configuré dans le cadre de la création du nom de domaine personnalisé. Les propriétés DNSName et HostedZoneId d’AliasTarget peuvent prendre respectivement les valeurs regionalDomainName et regionalHostedZoneId du nom de domaine personnalisé. Vous pouvez également obtenir les ID de la zone hébergée Route 53 régionale dans Points de terminaison et quotas Amazon API Gateway.
{
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "regional.example.com",
"Type": "A",
"AliasTarget": {
"DNSName": "d-numh1z56v6.execute-api.us-west-2.amazonaws.com",
"HostedZoneId": "Z2OJLYMUO9EFXC",
"EvaluateTargetHealth": false
}
}
}
]
}
La commande change-resource-record-sets suivante crée un enregistrement DNS pour votre nom de domaine personnalisé régional :
aws route53 change-resource-record-sets \
--hosted-zone-id Z2OJLYMUO9EFXC \
--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 (setup-dns-record.json) dans un dossier (path/to/your).