Creación de un nombre de dominio personalizado optimizado para bordes - Amazon API Gateway

Creación de un nombre de dominio personalizado optimizado para bordes

Configuración de un nombre de dominio personalizado optimizado para bordes para una API de API Gateway

El siguiente procedimiento describe cómo crear un nombre de dominio personalizado para una API con la consola de API Gateway.

Para crear un nombre de dominio personalizado con la consola de API Gateway
  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 Configuration (Configuración), elija Edge-optimized (Optimizado para límites).

  6. Elija una versión mínima de TLS.

  7. Elija un certificado de ACM.

    nota

    Si desea utilizar un certificado de ACM con un nombre de dominio personalizado optimizado para bordes de API Gateway debe solicitar o importar el certificado en la región us-east-1 [EE. UU. Este (Norte de Virginia)].

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

  9. Una vez creado el nombre de dominio personalizado, la consola mostrará el nombre de dominio de la distribución de CloudFront asociado, con la forma de distribution-id.cloudfront.net, junto con el ARN del certificado. 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.

    nota

    El nombre de dominio personalizado que acaba de crear tarda unos 40 minutos en estar listo. Mientras tanto, puede configurar el alias de registro DNS para asignar el nombre de dominio personalizado al nombre de dominio de distribución de CloudFront asociado y para configurar el mapeo de ruta base para el nombre de dominio personalizado mientras se inicializa el nombre de dominio personalizado.

  10. A continuación, configure los registros DNS con su proveedor de DNS para mapear el nombre de dominio personalizado a la distribución asociada de CloudFront. 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.

    Para la mayoría de los proveedores de DNS, se añade un nombre de 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.

    Route 53 le permite 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.

    El uso de un alias de registro A elimina también la exposición del nombre de dominio de distribución de CloudFront subyacente, ya que el mapeo de nombres de dominio se realiza únicamente en Route 53. Por estos motivos, recomendamos que utilice el alias de registro A de Route 53 siempre que sea posible.

Además de utilizar la consola de API Gateway, puede usar la API REST de API Gateway, la AWS CLI o uno de los AWS SDK para configurar el nombre de dominio personalizado para las API. A modo de ilustración, en el siguiente procedimiento se describen los pasos para realizar esta operación mediante las llamadas a la API de REST.

Para configurar un nombre de dominio personalizado con la API de REST de API Gateway
  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.

  3. Siga el procedimiento anterior para configurar un alias de registro A para asignar el nombre de dominio a su nombre de distribución de CloudFront.

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

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. 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.

Región 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-north-1 394634713161
ap-northeast-1 969236854626
ap-northeast-2 020402002396
ap-southeast-1 195145609632
ap-southeast-2 798376113853
ap-south-1 507069717855
ap-east-1 174803364771
sa-east-1 287228555773
me-south-1 855739686837

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

Puede utilizar un único nombre de dominio personalizado como el nombre de host de varias API. Para ello, debe configurar asignaciones de ruta base en el nombre de dominio personalizado. Con la asignaciones de ruta base, una API bajo el dominio personalizado estará accesible a través de la combinación del nombre de dominio personalizado y la ruta base asociada.

Por ejemplo, si creó una API llamada PetStore y otra API con el nombre PetShop, y configuró un nombre de dominio personalizado de api.example.com en API Gateway, puede establecer la URL de la API PetStore como https://api.example.com o https://api.example.com/myPetStore. La API PetStore se asocia con la ruta base de una cadena vacía o myPetStore bajo el nombre de dominio personalizado api.example.com. Del mismo modo, puede asignar una ruta base de yourPetShop para la API PetShop. La dirección URL de https://api.example.com/yourPetShop es entonces la URL raíz de la API PetShop.

Antes de configurar la ruta base de una API, complete los pasos de Configuración de un nombre de dominio personalizado optimizado para bordes para una API de API Gateway.

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

Para crear nombres de mapeos de API con la consola de API Gateway
  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. Elija Configure API mappings (Configurar asignaciones de API).

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

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

  6. Seleccione Save.

Además, puede llamar a la API REST de API Gateway, a la AWS CLI o a uno de los AWS SDK para configurar el mapeo de ruta base de una API con un nombre de dominio personalizado como su nombre de host. A modo de ilustración, en el siguiente procedimiento se describen los pasos para realizar esta operación mediante las llamadas a la API de REST.

Para configurar el mapeo de ruta base de una API con la API de REST de API Gateway
  • 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 para solicitar o importar una nuevo certificado de ACMpara el nombre de dominio especificado.

Para rotar un certificado para un nombre de dominio puede utilizar la consola de API Gateway, la API REST de API Gateway, la AWS CLI o uno de los AWS SDK.

Para rotar un certificado que está a punto de vencer importado en ACM mediante la consola de API Gateway
  1. Solicite o importe un certificado en ACM.

  2. Vuelva a la consola de API Gateway.

  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.

    nota

    Este proceso tarda en completarse unos 40 minutos. 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.

Para ilustrar cómo rotar mediante programación un certificado importado para importar un nombre de dominio personalizado, describimos los pasos utilizando la API de REST de API Gateway.

Rotación de un certificado importado con la API de REST de API Gateway

  • 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.

Direcciones URL raíz de las API con nombres de dominio predeterminados y personalizados
ID de API Etapa URL predeterminada Ruta base URL personalizada
udxjef Pro https://udxjef.execute-api.us-east-1.amazonaws.com/pro /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.