Configuración de un nombre de dominio personalizado regional en API Gateway - Amazon API Gateway

Configuración de un nombre de dominio personalizado regional en API Gateway

Utilice un nombre de dominio personalizado regional para crear una URL base de la API más descriptiva. Con un nombre de dominio personalizado regional, puede asignar etapas de la API de HTTP y REST al mismo nombre de dominio personalizado y usar la autenticación TLS mutua.

Consideraciones

A continuación, se muestran consideraciones para el nombre de dominio personalizado regional:

  • Debe proporcionar un certificado de ACM específico de la región. Este certificado debe estar en la misma región que la API. Para obtener más información sobre cómo crear o cargar un certificado de nombre de dominio personalizado, consulte Preparación de certificados en AWS Certificate Manager.

  • Cuando crea un nombre de dominio personalizado regional (o migra uno) con un certificado de ACM, API Gateway crea un rol vinculado al servicio en su cuenta. El rol vinculado al servicio es necesario para asociar el certificado de ACM a su punto de conexión regional. El rol se denomina AWSServiceRoleForAPIGateway y llevará asociada la política administrada APIGatewayServiceRolePolicy. Para obtener más información acerca de cómo usar el rol vinculado al servicio, consulte Uso de roles vinculados a servicios.

  • Después de crear el nombre de dominio personalizado regional, deberá crear un registro DNS para que el nombre de dominio personalizado apunte al nombre de dominio regional. Esto permite que el tráfico que se dirige al nombre de dominio personalizado se enrute al nombre de host regional de la API.

    El registro DNS puede ser el registro CNAME o un registro de alias A. Si utiliza Route 53 como proveedor de DNS, cree un registro de alias A. Si utiliza un proveedor de DNS externo, utilice un registro CNAME. Si utiliza un registro CNAME y crea un punto de conexión de VPC de interfaz de API Gateway con el DNS privado habilitado para una API privada, no podrá resolver el nombre de dominio personalizado en la VPC que aloja la API privada.

Creación de un nombre de dominio personalizado regional

En el siguiente procedimiento se muestra cómo crear un nombre de dominio personalizado regional. Una vez completado este procedimiento, cree una regla de enrutamiento para enrutar las etapas de la API al nombre de dominio personalizado.

AWS Management Console
  1. Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway.

  2. Elija Custom domain names (Nombres de dominios personalizados) en el panel de navegación principal.

  3. Seleccione Create (Crear).

  4. En Nombre de dominio, escriba un nombre de dominio.

  5. En Modo de enrutamiento, elija Solo reglas de enrutamiento.

    En este modo de enrutamiento, solo puede enviar tráfico desde el nombre de dominio personalizado a las API mediante reglas de enrutamiento. Para obtener más información, consulte Envío de tráfico a las API a través del nombre de dominio personalizado en API Gateway.

  6. En Versión mínima de TLS, seleccione una versión.

  7. En Configuración de punto de conexión, para Tipo de punto de conexión de la API, elija Regional.

  8. Elija un certificado de ACM. El certificado debe estar en la misma región que la API.

  9. Seleccione Create (Crear).

AWS CLI

El siguiente comando create-domain-name permite crear un nombre de dominio personalizado:

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

El resultado será similar al siguiente:

{ "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" ] }

El valor de propiedad DomainNameConfigurations devuelve el nombre de host de la API regional. Debe crear un registro DNS para apuntar su nombre de dominio personalizado a este nombre de dominio regional. Esto permite que el tráfico que se dirige al nombre de dominio personalizado se enrute al nombre de host de esta API regional.

Creación de una regla de enrutamiento para el nombre de dominio personalizado regional

Después de crear el nombre de dominio personalizado, configure cómo se enruta el tráfico desde el nombre de dominio personalizado a las API. Dado que establece el modo de enrutamiento en ROUTING_RULE_ONLY, utiliza reglas de enrutamiento para enrutar las solicitudes entrantes al nombre de dominio personalizado hacia las API.

En este ejemplo, crea una regla catch-all que enruta todas las solicitudes entrantes al nombre de dominio personalizado a una etapa de la API. También puede configurar reglas de enrutamiento basadas en diferentes condiciones de encabezado y ruta. Para obtener más información, consulte Reglas de enrutamiento para conectar las etapas de API a un nombre de dominio personalizado para las API de REST.

AWS Management Console
  1. Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway.

  2. Elija un nombre de dominio personalizado.

  3. En la pestaña Detalles de enrutamiento, elija Agregar regla de enrutamiento.

  4. Elija Agregar una nueva condición para agregar una nueva condición.

  5. Mantenga esta regla sin condiciones. Esto enruta todas las solicitudes al nombre de dominio personalizado a la API de destino y etapa de destino.

  6. En Acción, utilice la lista desplegable para seleccionar la API de destino y la etapa de destino.

  7. Elija Siguiente.

  8. En el campo de prioridad, introduzca 100.

    API Gateway evalúa las reglas en orden de prioridad, del valor más bajo al más alto. Dado que se trata de una regla catch-all, utilice una prioridad alta para que API Gateway pueda realizar la coincidencia primero con cualquier regla adicional que cree.

  9. Elija Crear regla de enrutamiento.

AWS CLI

El siguiente comando create-routing-rule crea una regla de enrutamiento catch-all:

aws apigatewayv2 create-routing-rule \ --domain-name 'regional.example.com' \ --priority 100 \ --conditions \ --actions '[{ "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod" } }]'

Puede cambiar el modo de enrutamiento y crear nuevas reglas en cualquier momento. Para obtener más información, consulte Envío de tráfico a las API a través del nombre de dominio personalizado en API Gateway.

Creación de un registro de DNS para el nombre de dominio personalizado regional

Después de crear el nombre de dominio personalizado y las asignaciones de rutas base, debe crear un registro DNS para que el nombre de dominio personalizado apunte al nombre de dominio regional que se acaba de crear.

AWS Management Console

Para usar la AWS Management Console, siga la documentación de Route 53 sobre la configuración de Route 53 para enrutar el tráfico a API Gateway.

AWS CLI

Para configurar sus registros de DNS para asignar el nombre de dominio regional personalizado al nombre de host del ID de zona alojada designado, cree primero un archivo JSON que contenga la configuración a fin de establecer un registro de DNS para el nombre de dominio regional.

En el siguiente setup-dns-record.json se muestra cómo crear un registro A de DNS para asignar un nombre de dominio personalizado regional (regional.example.com) a su nombre de host regional (d-numh1z56v6.execute-api.us-west-2.amazonaws.com) aprovisionado como parte de la creación de nombres de dominio personalizados. Las propiedades DNSName y HostedZoneId de AliasTarget pueden tener los valores regionalDomainName y regionalHostedZoneId, respectivamente, del nombre de dominio personalizado. También puede obtener los ID de zona alojada regionales de Route 53 en Puntos de conexión y cuotas de 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 } } } ] }

El siguiente comando change-resource-record-sets permite crear un registro de DNS para el nombre de dominio personalizado regional:

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

Reemplace hosted-zone-id por el ID de zona alojada de Route 53 del conjunto de registros de DNS de la cuenta. El valor del parámetro change-batch apunta a un archivo JSON (setup-dns-record.json) de una carpeta (ruta/a/su).