¿Por qué aparece el error HTTP 403 Prohibido al conectarme a mis API de API Gateway desde una VPC?

5 minutos de lectura
1

Llamo a mis API de Amazon API Gateway desde mi nube privada virtual (VPC), pero aparece el error HTTP 403 Prohibido. ¿A qué se debe?

Descripción breve

El error HTTP 403 Prohibido se produce con mayor frecuencia cuando se habilita el DNS privado para un punto de conexión de VPC de la interfaz API Gateway asociado a una VPC. En este escenario, todas las solicitudes de las API de VPC a API Gateway se resuelven en el punto de conexión de VPC de esa interfaz. Sin embargo, no es posible conectarse a las API públicas mediante un punto de conexión de VPC.

El nombre DNS privado de un punto de conexión de VPC tiene el formato***.execute-api.<REGION>.amazonaws.com**. Este formato coincide con la URL de invocación predeterminada de API Gateway para las API públicas y privadas. Por ejemplo, la URL de invocación predeterminada de una API pública es https://abcd1234.execute-api.us-east-1.amazonaws.com, donde abcd1234 es el ID de la API y us-east-1 es la región de AWS de la API.

Cuando se habilita un DNS privado en un punto de conexión de la VPC, la URL de invocación de la API se incluye con el nombre de DNS privado *.execute-api.us-east-1.amazonaws.com, donde * es un marcador de posición para el ID de la API. Cuando se resuelve una consulta de DNS para una API pública desde una VPC, el DNS resuelto apunta a la IP privada del punto de conexión de la VPC asociado en lugar de a la IP pública de la API pública. A continuación, la llamada a la API se envía a la API pública a través del punto de conexión de la VPC en lugar de enrutarla a través de Internet. Como los puntos de conexión de VPC solo pueden enrutar el tráfico a las API privadas, el resultado es un error HTTP 403.

Si el DNS privado no está habilitado para el punto de conexión de VPC de la interfaz o no hay ningún punto de conexión en la VPC, vaya a la sección Conectarse a las API públicas cuando el DNS privado no está habilitado.

Resolución

Confirme que hay un DNS privado habilitado para un punto de conexión de VPC de interfaz asociado a su VPC

Compruebe su VPC para ver si hay un punto de conexión de VPC de la interfaz para acceder a una API privada. Si hay un punto de conexión de interfaz, compruebe si la configuración de DNS privado está habilitada. Para obtener más información, consulte los atributos de DNS de su VPC.

Conéctese a las API públicas con el DNS privado activado

Si el DNS privado está activado, configure nombres de dominio personalizados optimizados para entornos periféricos o nombres de dominio personalizados regionales para conectarse a sus API públicas.

**Importante:**Los recursos de la VPC que intentan conectarse a las API públicas deben tener conectividad a Internet. Además, al configurar registros DNS para un nombre de dominio personalizado regional, debe utilizar registros de alias de tipo A. Sin embargo, en el caso de los nombres de dominio personalizados optimizados para entornos periféricos, utilice registros de alias de tipo A o registros CNAME.

Conectarse a las API públicas cuando el DNS privado no está habilitado

Si el DNS privado no está habilitado en el punto de conexión de VPC de la interfaz o no hay ningún punto de conexión en la configuración de Amazon Virtual Private Cloud (Amazon VPC), confirme que se cumple lo siguiente:

Cuando su VPC tenga permiso para acceder a sus API públicas, use el DNS público para conectarse a sus API públicas. Para obtener más información, consulte Control y administración del acceso a una API REST en API Gateway.

(Opcional) Cambie la configuración de DNS privado para un punto de conexión de VPC de interfaz

Los usuarios pueden cambiar la configuración de DNS privado de un punto de conexión de VPC de la interfaz en cualquier momento. El cambio de esta configuración afecta a la resolución de la URL de etapa de una API con respecto a la IP privada del punto de conexión de VPC de la interfaz.

**Nota:**Cambiar la configuración del DNS privado afecta a la forma en que los usuarios pueden conectarse a las API privadas y públicas desde una VPC.

  1. En la consola de Amazon VPC, abra el Panel puntos de conexión.
  2. Seleccione el punto de conexión de VPC de la interfaz.
  3. Elija Acciones, y, a continuación, elija Modificar nombre de DNS privado.
  4. En Habilitar el nombre DNS privado, active o desactive la casilla Habilitar para este punto de conexión.
  5. Elija Modificar nombre de DNS privado.

Para obtener más información, consulte Ver y actualizar los atributos DNS de su VPC.


Información relacionada

Acceso a un servicio de AWS mediante un punto de conexión de VPC de interfaz

Configuración de nombres de dominio personalizados para las API REST

Atributos de DNS para su VPC