Configuración de un nombre de dominio personalizado optimizado para la periferia para en API Gateway - Amazon API Gateway

Configuración de un nombre de dominio personalizado optimizado para la periferia para en API Gateway

Cuando crea un nombre de dominio personalizado para una API optimizada para la periferia, API Gateway configura una distribución de Amazon CloudFront y un registro de DNS para asignar el nombre de dominio de API al nombre de dominio de distribución de CloudFront. Las solicitudes para la API se redirigen a API Gateway a través de la distribución de CloudFront asignada. Este mapeo es para solicitudes de API que estén enlazadas para que el nombre de dominio personalizado se dirija a API Gateway a través de la distribución de CloudFront asignada.

Consideraciones

Las siguientes son consideraciones para su nombre de dominio personalizado optimizado para la periferia.

  • Para configurar un nombre de dominio personalizado optimizado para bordes o para actualizar su certificado, debe tener permiso para actualizar las distribuciones de CloudFront.

    Se requieren los siguientes permisos para actualizar las distribuciones de CloudFront:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontUpdateDistribution", "Effect": "Allow", "Action": [ "cloudfront:updateDistribution" ], "Resource": [ "*" ] } ] }
  • Debe solicitar o importar un certificado para su nombre de dominio personalizado optimizado para la periferia en la región Este de EE. UU. (Norte de Virginia) - us-east-1.

  • La distribución de CloudFront que ha creado API Gateway es propiedad de un cuenta específica de la región afiliada a API Gateway. Cuando realice un seguimiento de las operaciones para crear y actualizar esta distribución de CloudFront en CloudTrail, deberá utilizar este ID de cuenta de API Gateway. Para obtener más información, consulte Registro de la creación del nombre de dominio personalizado en CloudTrail.

  • API Gateway admite nombres de dominio personalizados optimizados para bordes mediante la indicación de nombre de servidor (SNI) en la distribución de CloudFront. Para obtener más información acerca de cómo usar nombres de dominio personalizados en una distribución de CloudFront, incluido el formato de certificado necesario y el tamaño máximo de una longitud de clave de certificado, consulte Uso de nombres de dominio alternativos y HTTPS en la Guía para desarrolladores de Amazon CloudFront.

  • Un nombre de dominio personalizado optimizado para la periferia tarda unos 40 minutos en estar listo.

  • Una vez creado su nombre de dominio personalizado optimizado para la periferia, debe crear un registro de DNS para asignar el nombre de dominio personalizado al nombre de distribución de CloudFront.

Creación de un nombre de dominio personalizado optimizado para la periferia

El siguiente procedimiento describe cómo crear un nombre de dominio personalizado optimizado para la periferia para una API.

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 Domain Name (Nombre de dominio), escriba un nombre de dominio.

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

  6. En Configuración de punto de conexión, en Tipo de punto de conexión de API, elija Optimizado para la periferia.

  7. En Certificado de ACM, elija un certificado de ACM.

  8. Elija Crear nombre de dominio (Crear un nombre de dominio).

REST API
  1. Llame a domainname:create, especificando el nombre de dominio personalizado y el ARN de un certificado almacenado en AWS Certificate Manager.

    Si la llamada a la API se realiza correctamente, se devuelve una respuesta 201 Created, la cual contiene el ARN del certificado, así como el nombre de distribución de CloudFront asociado en su carga.

  2. Anote el nombre de dominio de distribución de CloudFront que aparece en el resultado. Lo necesitará en el siguiente paso para establecer el valor CNAME o un destino de alias de registro A del dominio personalizado en su DNS.

Para ver ejemplos de código de esta llamada a la API de REST, consulte domainname:create.

Un nombre de dominio personalizado optimizado para la periferia tarda unos 40 minutos en estar listo, pero la consola mostrará inmediatamente el nombre de dominio de distribución de CloudFront asociado, con el formato distribution-id.cloudfront.net, junto con el ARN del certificado. Mientras tanto, puede continuar con el siguiente paso y configurar el alias de registro de DNS para asignar el nombre de dominio personalizado al nombre de dominio de distribución de CloudFront asociado.

Creación de un registro de DNS para el nombre de dominio personalizado optimizado para la periferia

Después de iniciar la creación de su nombre de dominio personalizado optimizado para la periferia, configure el alias de registro de DNS.

Le recomendamos que use Route 53 para crear un alias de registro A para su nombre de dominio personalizado y especificar el nombre de dominio de distribución de CloudFront como el alias de destino. Esto significa que Route 53 pueden enrutar su nombre de dominio personalizado aunque se trate de un ápex de zona. Para obtener más información, consulte Elección entre registros de alias y sin alias en la guía para desarrolladores de Amazon Route 53.

En su lugar, puede agregar su dominio personalizado a la zona alojada como un conjunto de registros de recursos CNAME. El nombre de registro CNAME especifica el nombre de dominio personalizado que especificó anteriormente en Domain Name (Nombre de dominio) (por ejemplo, api.example.com). El valor del registro CNAME especifica el nombre de dominio de la distribución de CloudFront.

Sin embargo, el uso de un registro CNAME no funcionará si su dominio personalizado es un ápex de zona (es decir, example.com en lugar de api.example.com). Un ápex de zona se conoce también como el dominio raíz de la organización. Para un ápex de zona necesita utilizar un alias de registro A, siempre y cuando lo admita su proveedor de DNS.

Para obtener instrucciones sobre Amazon Route 53, consulte Routing traffic to an Amazon API Gateway API by using your domain name en la Guía para desarrolladores de Amazon Route 53.

Registro de la creación del nombre de dominio personalizado en CloudTrail

Cuando CloudTrail está habilitado para registrar llamadas de API Gateway realizadas por su cuenta, API Gateway registra las actualizaciones de la distribución de CloudFront asociadas cuando se crea o se actualiza un nombre de dominio personalizado para una API. Estos registros están disponibles en us-east-1. Como estas distribuciones de CloudFront son propiedad de API Gateway, cada una de estas distribuciones de CloudFront registradas se identifican mediante uno de los siguientes ID de cuenta de API Gateway específicos de cada región, en lugar de mediante el ID de la cuenta del propietario de la API.

Region

ID de cuenta

us-east-1 392220576650
us-east-2 718770453195
us-west-1 968246515281
us-west-2 109351309407
ca-central-1 796887884028
eu-west-1 631144002099
eu-west-2 544388816663
eu-west-3 061510835048
eu-central-1 474240146802
eu-central-2 166639821150
eu-north-1 394634713161
eu-south-1 753362059629
eu-south-2 359345898052
ap-northeast-1 969236854626
ap-northeast-2 020402002396
ap-northeast-3 360671645888
ap-southeast-1 195145609632
ap-southeast-2 798376113853
ap-southeast-3 652364314486
ap-southeast-4 849137399833
ap-south-1 507069717855
ap-south-2 644042651268
ap-east-1 174803364771
sa-east-1 287228555773
me-south-1 855739686837
me-central-1 614065512851

Configurar el mapeo de ruta base de una API con un nombre de dominio personalizado como su nombre de host

Puede usar la asignación de ruta base para utilizar un único nombre de dominio personalizado como el nombre de host de varias API. De este modo, una API estará accesible a través de la combinación del nombre de dominio personalizado y la ruta base asociada.

Por ejemplo, si en API Gateway creó una API llamada PetStore y otra API con el nombre Dogs, y configuró un nombre de dominio personalizado de api.example.com, puede establecer la URL de la API PetStore como https://api.example.com.

Esto asocia la API PetStore con la ruta base de una cadena vacía. Si establece la URL de la API PetStore como https://api.example.com/PetStore, se asocia la API PetStore a la ruta base de PetStore. Puede asignar una ruta base de MyDogList para la API Dogs. La dirección URL de https://api.example.com/MyDogList es entonces la URL raíz de la API Dogs.

Para configurar las asignaciones de API en varios niveles, solo puede usar un nombre de dominio personalizado regional. No se admiten los nombres de dominio personalizados optimizados para la periferia. Para obtener más información, consulte Asignación de etapas de API a un nombre de dominio personalizado para las API de REST.

El siguiente procedimiento configura asignaciones de API para asignar rutas desde el nombre de dominio personalizado a las etapas de API.

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 dominio personalizados) en el panel de navegación principal de la consola de API Gateway.

  3. Elija un nombre de dominio personalizado.

  4. Elija Configure API mappings (Configurar asignaciones de API).

  5. Seleccione Add new mapping (Agregar nueva asignación).

  6. Especifique la API, Stage (Etapa) y Route (Ruta) (opcional) para la asignación.

  7. Seleccione Guardar.

REST API

Llame a basepathmapping:create en un nombre de dominio personalizado concreto especificando los elementos basePath, restApiId y una propiedad stage de implementación en la carga de la solicitud.

La llamada a la API, si se realiza correctamente, devuelve una respuesta 201 Created.

Para ver ejemplos de código de la llamada a la API de REST, consulte basepathmapping:create.

Rotación de un certificado importado en ACM

ACM se encarga automáticamente de renovar los certificados que emite. No necesita rotar ningún certificado emitido por ACM para los nombres de dominio personalizados. CloudFront lo gestiona por usted.

No obstante, si importa un certificado en ACM y lo usa para un nombre de dominio personalizado, debe rotar el certificado antes de que venza. Esto implica importar un nuevo certificado de terceros para el nombre de dominio y reemplazar el certificado existente por el nuevo. Necesita repetir el proceso cuando el certificado que acaba de importar venza. De forma alternativa, puede solicitar a ACM que emita un nuevo certificado para el nombre de dominio y reemplazar el existente por el nuevo certificado emitido por ACM. A partir de entonces, puede dejar que ACM y CloudFront se ocupen de administrar la rotación de certificados automáticamente. Para crear o importar un nuevo certificado de ACM, siga los pasos de Creación o importación de un certificado SSL/TLS en ACM.

En el siguiente procedimiento se describe cómo rotar un certificado para un nombre de dominio.

nota

Se tarda unos 40 minutos en rotar un certificado importado a ACM.

AWS Management Console
  1. Solicite o importe un certificado en ACM.

  2. Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway.

  3. Elija Custom domain names (Nombres de dominio personalizados) en el panel de navegación principal de la consola de API Gateway.

  4. Elija un nombre de dominio personalizado.

  5. Elija Edit.

  6. Elija el certificado que desee en la lista desplegable ACM Certificate (Certificado de ACM).

  7. Elija Save (Guardar) para empezar a rotar el certificado para el nombre de dominio personalizado.

  8. Una vez realizada la rotación, puede elegir el icono de flecha bidireccional junto a ACM Certificate (Certificado de ACM) para restaurar el certificado original.

REST API

Llame a la acción domainname:update especificando el ARN del nuevo certificado de ACM para el nombre de dominio especificado.

Llamar a la API con nombres de dominio personalizados

Llamar a una API con un nombre de dominio personalizado es lo mismo que llamar a la API con su nombre de dominio predeterminado, siempre que se use la URL correcta.

En los siguientes ejemplos se compara y se contrasta un conjunto de direcciones URL predeterminadas y las URL personalizadas correspondientes de dos API (udxjef y qf3duz) en una región especificada (us-east-1) y de un nombre de dominio personalizado (api.example.com) especificado.

ID de API Etapa URL predeterminada Ruta base URL personalizada
udxjef prod https://udxjef.execute-api.us-east-1.amazonaws.com/prod /petstore https://api.example.com/petstore
udxjef tst https://udxjef.execute-api.us-east-1.amazonaws.com/tst /petdepot https://api.example.com/petdepot
qf3duz dev https://qf3duz.execute-api.us-east-1.amazonaws.com/dev /bookstore https://api.example.com/bookstore
qf3duz tst https://qf3duz.execute-api.us-east-1.amazonaws.com/tst /bookstand https://api.example.com/bookstand

API Gateway admite nombres de dominio personalizados para una API mediante el uso de la indicación de nombre de servidor (SNI). Puede invocar la API con un nombre de dominio personalizado mediante un navegador o una biblioteca cliente que admita SNI.

API Gateway aplica SNI en la distribución CloudFront. Para obtener información sobre cómo CloudFront utiliza nombres de dominio personalizados, consulte Certificados SSL personalizados de Amazon CloudFront.