¿Cómo soluciono los problemas al conectarme a un punto de enlace de API privada de API Gateway?
Quiero solucionar problemas cuando me conecto a mi punto de enlace de API privada de Amazon API Gateway que se encuentra en Amazon Virtual Private Cloud (Amazon VPC).
Descripción corta
Los recursos de AWS de Amazon VPC pueden no conectarse a un punto de enlace de la API privada por los motivos siguientes:
- No has configurado correctamente la política de recursos de API Gateway para el punto de enlace de la API privada.
- No has configurado correctamente la política de punto de enlace de VPC para el punto de enlace de VPC de la interfaz.
- No has configurado correctamente las reglas para un grupo de seguridad de Amazon VPC.
- La URL de invocación de la API privada no incluye los nombres DNS correctos.
- No has asociado el nombre de dominio personalizado privado a un punto de enlace de VPC.
- No has configurado correctamente la política de recursos para el nombre de dominio personalizado privado.
Para determinar la causa, puedes activar Registros de Amazon CloudWatch para tu API y revisar los registros.
Si la solicitud de la API no genera ningún registro una vez activado Registros de CloudWatch, significa que la solicitud no llegó al punto de enlace. Si las solicitudes de API no llegan al punto de enlace, comprueba que has configurado correctamente la URL de invocación de la API privada.<br id=hardline_break/> Para obtener más información, consulta ¿Cómo puedo encontrar los errores de la API de REST de la API Gateway en los registros de CloudWatch?
Nota: Una política de recursos de API Gateway configurada incorrectamente o un nombre DNS incorrecto en la URL de invocación del punto de enlace de la API privada pueden provocar problemas de conexión.
Resolución
Confirmación de la causa del problema
Sigue estos pasos:
- Activa Registros de CloudWatch para tu API de REST privada.
- En Nivel de registro, elige INFO y, a continuación, elige Registrar datos completos de solicitudes/respuestas.
- Consulta los registros de ejecución de la API de REST en CloudWatch para identificar la causa del problema.
Si las solicitudes de la API llegan al punto de enlace, aparece un mensaje de error similar a uno de los siguientes ejemplos:
- "User: anonymous is not authorized to perform: execute-api:Invoke on resource:"
- "SSL: no alternative certificate subject name matches target host name custom-domain.com/resource"
- "Connection timed out"
- "Could not resolve host: https://example.com/resource"
"User: anonymous is not authorized to perform: execute-api:Invoke on resource:"
Para resolver este problema, configura las siguientes políticas:
- La política de recursos de API Gateway de la API privada debe permitir el tráfico desde el punto de enlace de VPC de la interfaz o la VPC de origen hasta el punto de enlace de la API.
- La política de punto de enlace de VPC debe permitir el acceso del cliente al punto de enlace de la API privada. Esta es la política de recursos del servicio execute-api.
- La política de recursos del nombre de dominio personalizado debe permitir el acceso a los puntos de enlace de VPC para invocar el nombre de dominio personalizado privado. De forma predeterminada, API Gateway aprovisiona un nombre de dominio personalizado con una denegación explícita en la política de recursos del nombre de dominio personalizado. Para obtener más información, consulta Tutorial: Creación e invocación de un nombre de dominio personalizado para API privadas.<br id=hardline_break/> Importante: Si modificas la política de recursos de la API, despliega la API en la etapa para guardar los cambios.
"SSL: no alternative certificate subject name matches target host name custom-domain.com/resource"
Para resolver este problema, comprueba si has creado asociaciones de acceso a nombres de dominio personalizados privadas para el punto de enlace de VPC privado para el servicio execute-api.
"Connection timed out"
Para resolver los problemas de tiempo de espera de la conexión, sigue estos pasos:
-
Comprueba que exista un punto de enlace de VPC de execute-api de API Gateway en la VPC en la que aloja al cliente. A continuación, asegúrate de que el punto de enlace se encuentre en la misma región de AWS que la API privada. Si el punto de enlace no existe, crea un punto de enlace de VPC de la interfaz para execute-api de API Gateway.
-
Usa traceroute para verificar que el cliente que invoca la API privada existe en la misma VPC o puede acceder a la VPC con el punto de enlace de VPC.
Para instalar traceroute, ejecuta los siguientes comandos:
Amazon Linux:
sudo yum install tracerouteUbuntu:
sudo apt-get install traceroutePara usar traceroute para probar la conectividad, ejecuta el siguiente comando:
sudo traceroute -n -T -p 443 VPC-endpoint IP-addressNota: El argumento -T -p 443 -n lleva a cabo un rastreo basado en TCP en el puerto 443. Sustituye VPC-endpoint IP-address por la dirección IP del punto de enlace de VPC.
-
Comprueba que las reglas de tus grupos de seguridad de Amazon VPC estén configuradas correctamente.<br id=hardline_break/> Para probar los grupos de seguridad de Amazon VPC, ejecuta el siguiente comando desde el cliente que realiza las solicitudes al punto de enlace de la API privada:
telnet public-dns-hostname.execute-api.region.vpce.amazonaws.com 443Nota: Sustituye public-dns-hostname por los nombres de host de DNS públicos que contienen el ID de punto de enlace de VPC de la API. Además, sustituye region por la región en la que se encuentra el punto de enlace de VPC de tu interfaz.
O bien, ejecuta el siguiente comando desde el cliente que realiza solicitudes al nombre de dominio personalizado de la API privada:
telnet custom-domain-name 443Nota: Sustituye custom-domain-name por el nombre de dominio personalizado de la API privada.
Si se agota el tiempo de espera de la conexión, significa que no has configurado correctamente las reglas de los grupos de seguridad de Amazon VPC.
El recurso solicitante debe tener una regla de grupo de seguridad que permite el tráfico saliente del puerto TCP 443 al intervalo de direcciones IP o al grupo de seguridad del punto de enlace de VPC. Además, el punto de enlace de VPC debe tener una regla de grupo de seguridad que permite el tráfico entrante del puerto TCP 443 desde el intervalo de direcciones IP o el grupo de seguridad del recurso solicitante.
Para obtener más información, consulta ¿Cómo restrinjo el tráfico hacia y desde los recursos de Amazon VPC?
"Could not resolve host:https://www.example.com/resource"
Para solucionar este problema, toma las siguientes medidas:
- Comprueba que has asociado la VPC correcta a tu zona alojada de Amazon Route 53.
- Comprueba que has creado el registro para tu nombre de dominio personalizado en la zona alojada de Route 53 con el objetivo como alias del nombre DNS del punto de enlace de VPC.
Comprobar que el dominio del punto de enlace de la API privada se resuelve correctamente en la dirección IP del punto de enlace de VPC
Nota: Asegúrate de que el cliente esté dentro de la VPC donde existe el punto de enlace de VPC execute-api.
Sigue estos pasos:
- Ejecuta el siguiente comando nslookup desde el cliente que lleva a cabo solicitudes al punto de enlace de la API privada:
Nota: Sustituye restapi-id por el ID de tu API privada y region por la región en la que se encuentra el punto de enlace de tu API privada.nslookup restapi-id.execute-api.region.amazonaws.com - Ejecuta el siguiente comando nslookup desde el cliente que realiza solicitudes al nombre de dominio personalizado de la API privada:
Nota: Sustituye custom-domain-name por el nombre de dominio personalizado de tu API privada. Un resultado exitoso muestra las direcciones IP privadas del punto de enlace de VPC.nslookup custom-domain-name - Ejecuta el siguiente comando nslookup:
Nota: Sustituye public-dns-hostname por los nombres de host de DNS públicos que contienen el ID de punto de enlace de VPC de la API. Sustituye region por la región en la que se encuentra el punto de enlace de VPC de tu interfaz. Un resultado exitoso muestra las direcciones IP privadas del punto de enlace de VPC.nslookup public-dns-hostname.execute-api.region.vpce.amazonaws.com - Compara las direcciones IP de las salidas de cada comando. Si las direcciones IP de las salidas de cada comando coinciden, la configuración funciona según lo previsto.
Para activar el DNS privado para el punto de enlace de VPC, sigue estos pasos.
- Abre la consola de Amazon VPC.
- En el panel Puntos de enlace, selecciona el punto de enlace de VPC de tu interfaz.
- Selecciona Acciones.
- Elige Modificar nombres DNS privados.
- Selecciona Habilitar nombre DNS privado y, a continuación, elige Guardar cambios.
La solicitud de API no produce ningún registro de CloudWatch después de activar Registros de CloudWatch
Para solucionar este problema, toma las siguientes medidas:
- Configura correctamente la política de recursos de API Gateway del punto de enlace de la API privada.
- Formatea correctamente la URL de invocación de la API privada para acceder al punto de enlace de la API privada.<br id=hardline_break/> Nota: Si has activado un DNS privado, debes usar nombres de host DNS públicos específicos del punto de enlace. Si no has activado un DNS privado, usa nombres DNS privados.
- Asigna el nombre de dominio personalizado de la API privada a la etapa de API correcta.
Información relacionada
¿Por qué aparece un error HTTP 403 Forbidden al conectarme a mis API de API Gateway desde una VPC?
¿Cómo puedo supervisar el tráfico en mi VPC con registros de flujo?
- Etiquetas
- Amazon API Gateway
- Idioma
- Español
Vídeos relacionados


Contenido relevante
preguntada hace 9 meses
preguntada hace 9 meses
preguntada hace un año