Invocación de una API privada - Amazon API Gateway

Invocación de una API privada

Solo puede invocar una API privada en una VPC mediante un punto de conexión de VPC. La API privada debe tener una política de recursos que permita que las VPC y los puntos de conexión de VPC específicos invoquen la API.

Puede invocar la API privada de las siguientes maneras.

  • Invoque la API con un alias de Route53. Esto solo está disponible si asoció el punto de conexión de VPC a la API. Para obtener más información, consulte (Opcional) Asociación o desasociación de un punto de conexión de VPC con una API privada.

  • Invoque la API con DNS privado. Esto solo está disponible si habilitó el DNS privado para la VPC.

  • Invoque la API con AWS Direct Connect.

  • Invoque la API con nombres de host de DNS públicos específicos de punto de conexión.

Para invocar la API privada con un nombre de DNS, debe identificar los nombres de DNS de la API. El siguiente procedimiento muestra cómo buscar los nombres de DNS.

AWS Management Console
Búsqueda de los nombres de DNS
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.

  2. En el panel de navegación principal, elija Puntos de conexión y, a continuación, elija el punto de conexión de VPC de la interfaz para API Gateway.

  3. En el panel Detalles, verá cinco valores en el campo Nombres de DNS. Los tres primeros son los nombres de DNS públicos de la API. Los otros dos son los nombres de DNS privados.

AWS CLI

Use el siguiente comando describe-vpc-endpoints para mostrar los valores de DNS.

aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-01234567abcdef012

Los tres primeros son los nombres de DNS públicos de la API. Los otros dos son los nombres de DNS privados.

Invocación de una API privada a través de un alias de Route53

Puede asociar o desasociar un punto de conexión de VPC con la API privada. Para obtener más información, consulte (Opcional) Asociación o desasociación de un punto de conexión de VPC con una API privada.

Tras asociar los puntos de conexión de VPC a la API privada, puede utilizar la siguiente URL base para invocar la API:

https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}

Por ejemplo, si configuró el método GET /pets para la etapa test y el ID de la API de REST era 01234567ab, el ID de punto de conexión de VPC era vpce-01234567abcdef012 y la región era us-west-2, puede invocar la API de la siguiente manera:

curl -v https://01234567ab-vpce-01234567abcdef012.execute-api.us-west-2.amazonaws.com/test/pets

Invocación de una API privada a través de nombres de DNS privados

Si ha habilitado un DNS privado, puede acceder a la API privada con el nombre de DNS privado siguiente:

{restapi-id}.execute-api.{region}.amazonaws.com

La URL base para invocar la API tiene el formato siguiente:

https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}

Por ejemplo, si configuró el método GET /pets para la etapa test y el ID de la API de REST era 01234567ab y la región era us-west-2, podría invocar la API privada ingresando la siguiente URL en un navegador:

https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets

También puede usar el comando cURL siguiente para invocar la API privada:

curl -X GET https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets
aviso

Si habilita el DNS privado para el punto de conexión de VPC, no podrá acceder al punto de conexión predeterminado para las API públicas. Para obtener más información, consulte el artículo sobre el tema ¿Por qué no puedo conectarme a mi API pública desde un punto de enlace de la VPC de API Gateway?

Invocación de una API privada con AWS Direct Connect

Puede utilizar AWS Direct Connect para establecer una conexión privada dedicada entre una red en las instalaciones y Amazon VPC y acceder al punto de conexión de la API privada a través de esa conexión mediante nombres de DNS públicos.

También puede utilizar nombres DNS privados para acceder a su API privada desde una red local mediante la configuración de un punto de conexión entrante de Amazon Route 53 Resolver y el reenvío de todas las consultas DNS del DNS privado desde su red remota. Para obtener más información, consulte Reenvío de consultas DNS entrantes a sus VPC en la Guía para desarrolladores de Amazon Route 53.

Invocación de la API privada mediante nombres de host de DNS públicos específicos de punto de conexión

Puede obtener acceso a su API privada utilizando nombres de host DNS específicos de punto de enlace. Se trata de nombres de host DNS públicos que contienen el ID de punto de enlace de VPC o el ID de su API privada.

La URL base generada tiene el siguiente formato:

https://{public-dns-hostname}.execute-api.{region}.vpce.amazonaws.com/{stage}

Por ejemplo, si configura el método GET /pets para la etapa test y el ID de la API de REST era abc1234, el nombre de host de DNS público era vpce-def-01234567 y la región era us-west-2, podría invocar la API privada con su ID de VPCE utilizando el siguiente encabezado Host en un comando cURL:

curl -v https://vpce-def-01234567.execute-api.us-west-2.vpce.amazonaws.com/test/pets -H 'Host: abc1234.execute-api.us-west-2.amazonaws.com'

También puede invocar la API privada a través de su ID de API mediante el encabezado x-apigw-api-id en un comando cURL en el siguiente formato:

curl -v https://{public-dns-hostname}.execute-api.{region}.vpce.amazonaws.com/{stage} -H 'x-apigw-api-id:{api-id}'