¿Cómo utilizo un punto conexión de VPC de interfaz para acceder a una API de REST privada de API Gateway en otra cuenta?
Quiero usar un punto de conexión de nube virtual privada (VPC) de la interfaz para acceder a una API de REST privada de Amazon API Gateway que se encuentra en otra cuenta de AWS.
Descripción breve
Para usar un punto de conexión de VPC de la interfaz para acceder a una API de REST privada de API Gateway que se encuentra en otra cuenta de AWS, complete los siguientes pasos:
- Cree un punto de conexión de la interfaz en una Amazon Virtual Private Cloud (Amazon VPC) en una cuenta (cuenta A).
- Cree una API de REST privada de API Gateway en una segunda cuenta (cuenta B).
- Configure una política de recursos para la API de REST privada que permita al punto de conexión invocar la API.
- Configure un método para la API de REST privada.
- Despliegue la API de REST privada.
- Llame a la API de REST privada desde la cuenta A para probar la configuración.
Nota: La API de REST privada de Amazon API Gateway y el punto de conexión de VPC deben estar en la misma región de AWS.
Resolución
Cree un punto de conexión de la interfaz en una Amazon VPC en una cuenta (cuenta A)
Cree un punto de conexión de VPC de interfaz nuevo
Desde la cuenta A, siga las instrucciones de Creación de un punto de conexión de VPC de la interfaz para API Gateway execute-api.
Importante: En Política, seleccione Acceso completo. Se recomienda utilizar una política de puntos de conexión de VPC para restringir el acceso a los puntos de conexión mediante el ID de API. También se recomienda utilizar la política de recursos de API Gateway para restringir el acceso de la entidad principal a los puntos de conexión. Para obtener más información, consulte Aplicar permisos de privilegios mínimos.
Al crear el punto de conexión de la interfaz, considere la posibilidad de llevar a cabo las siguientes acciones:
- Se recomienda seleccionar varias subredes en diferentes zonas de disponibilidad. Al configurar subredes en varias zonas de disponibilidad, el punto de conexión de la interfaz es más resistente a los posibles errores de la zona de disponibilidad.
- Active el DNS privado para usar el DNS público o privado para conectarse a la API REST privada.
Nota: Al activar el DNS privado para un punto de conexión de VPC, ya no podrá acceder a las API públicas de API Gateway desde Amazon VPC. Para obtener más información, consulte ¿Por qué aparece un error HTTP 403 Prohibido al conectarme a mis API de API Gateway desde una VPC? - Sus grupos de seguridad deben tener una regla que permita el tráfico HTTPS entrante del puerto TCP 443 desde un rango de direcciones IP de Amazon VPC. La regla también puede provenir de otro grupo de seguridad de su Amazon VPC.
**Nota:**Si no tiene un grupo de seguridad que cumpla cualquiera de estos requisitos, elija Crear un grupo de seguridad nuevo. Si no especifica un grupo de seguridad, se asociará un grupo de seguridad predeterminado a las interfaces de red de los puntos de conexión.
Recupere el ID del punto de conexión de VPC del punto de conexión de la interfaz
Después de crear el punto de conexión de la interfaz, se muestra el ID del punto de conexión de VPC. Copie el ID del punto de conexión de VPC del nuevo punto de conexión de la interfaz (por ejemplo: vpce-1a2b3c456d7e89012). A continuación, seleccione Cerrar.
**Nota:**Use este ID al crear y configurar la API REST privada.
Recupere el nombre de DNS público del punto de conexión de la interfaz
Tras elegir Cerrar, se abre la página Puntos de conexión en la consola de Amazon VPC. En la pestaña Detalles de la página Puntos de conexión, en la columna de nombres DNS, copie el nombre DNS público del punto de conexión de la interfaz, por ejemplo: vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com.
Cree una API de REST privada de API Gateway en una segunda cuenta (cuenta B)
- En la cuenta B, abra la consola de API Gateway.
- Seleccione Crear API.
- En Elegir un tipo de API, en API de REST privada, elija Crear.
- En la página Crear, mantenga Elegir el protocolo establecido en ** REST**.
- En Crear nueva API, seleccione Nueva API.
- En Configuración, introduzca la siguiente información:
En Nombre de la API, introduzca un nombre.
(Opcional) En Descripción, introduzca una descripción.
Mantenga el tipo de punto de conexión establecido en Privado.
Para los ID de punto de conexión de VPC, ingrese el ID de punto de conexión de la interfaz. A continuación, seleccione Añadir.
Nota: Al asociar el punto de conexión de la interfaz a su API de REST privada, API Gateway genera un nuevo registro de alias de Amazon Route 53. Puede utilizar el alias de Route53 para acceder a su API privada. - Seleccione Crear API.
Para obtener más información, consulte Creación de una API privada en Amazon API Gateway.
Configure una política de recursos para la API de REST privada que permita al punto de conexión de la interfaz invocar la API
1. En el panel de navegación de la consola de API Gateway, en su API, seleccione Política de recursos.
2. En la página Política de recursos, ingrese el siguiente ejemplo de política de recursos en el cuadro de texto:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*/*/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1a2b3c456d7e89012" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/*/*/*" } ] }
Nota: Sustituya vpce-1a2b3c456d7e89012 por el ID del punto de conexión de la interfaz.
Para obtener más información, consulte Configurar una política de recursos para una API privada.
Configurar un método para la API de REST privada
- En el panel de navegación de la consola de API Gateway, en su API, seleccione Recursos.
- En el panel Recursos, elija Acciones y, a continuación, elija Crear método.
- En la lista desplegable situada debajo del nodo de / resource, elija ANY y, a continuación, elija el icono de marca de verificación.
- En el panel /- ANY - Setup, como Tipo de integración, elija Simulacro.
Nota: Una integración simulada responde a cualquier solicitud que le llegue. - Elija Guardar.
Para obtener más información, consulte Configurar métodos de API de REST en API Gateway.
Despliegue la API de REST privada
- En el panel Recursos de la consola de API Gateway, elija Acciones y, a continuación, elija Desplegar API.
- En el cuadro de diálogo Desplegar API, introduzca la siguiente información:
En Etapa de despliegue, elija [Nueva etapa].
En Nombre de etapa, introduzca un nombre, por ejemplo dev o test. - Elija Implementar.
- En el panel Stage Editor, busque el mensaje: Si el DNS privado está habilitado, use esta URL:. Copie la URL de invocación de la API de REST privada.
**Nota:**Use la URL de invocación de la API de REST privada para probar la configuración.
Para obtener más información, consulte Desplegar una API privada mediante la consola de API Gateway.
Llame a la API de REST privada desde la cuenta A para probar la configuración.
- En la cuenta A, inicie una instancia de Amazon Elastic Compute Cloud (Amazon EC2) en la misma Amazon VPC que el punto de conexión de la interfaz.
Importante:Elija el grupo de seguridad que asoció al punto de conexión de la interfaz. - Conéctese a la instancia de Amazon EC2.
Nota: Una instancia de EC2 puede incurrir en cargos en su cuenta de AWS. Si crea una instancia para probarla, termine la instancia cuando termine para evitar que se produzcan cargos recurrentes. - Desde la línea de comandos de su instancia de Amazon EC2, utilice cualquiera de los siguientes comandos curl para llamar a la API de REST privada de la cuenta B.
Nota: Para obtener más información, consulte Invocación de su API privada mediante nombres de host de DNS públicos específicos de punto de conexión. Para obtener más información sobre curl, consulte el sitio web del proyecto curl.
Para un nombre de DNS privado
Ejecute el comando siguiente:
curl -i https://a1bc234d5e.execute-api.region.amazonaws.com/stage-name
**Nota:Sustituya ** por la URL de invocación de su API privada. Este comando solo funciona si ha activado el DNS privado para el punto de conexión de la interfaz. Para obtener más información, consulte Invocación de la API privada a través de nombres de DNS privados.
Para un alias de Route 53
Ejecute el comando siguiente:
curl -i https://a1bc234d5e-vpce-1a2b3c456d7e89012.execute-api.region.amazonaws.com/stage-name
Nota: Sustituya a1bc234d5e por el ID de su API, vpce-1a2b3c456d7e89012 por el ID de punto de conexión de la interfaz y región por la región de su API. Reemplace el stage-name por el nombre de la etapa en la que desplegó su API privada. Para obtener más información, consulte Acceso a la API privada a través de un alias de Route53.
Para un nombre de DNS público con un encabezado de host
Ejecute el comando siguiente:
curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "Host: a1bc234d5e.execute-api.region.amazonaws.com"
Nota: Sustituya vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com por el nombre de DNS público del punto de conexión de su interfaz y el nombre de etapa por el nombre de la etapa en la que implementó su API privada. Sustituya a1bc234d5e.execute-api.region.amazonaws.com por la URL de invocación de su API privada.
Para un nombre de DNS público con el encabezado x-apigw-api-id
Ejecute el comando siguiente:
curl -i https://vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com/stage-name -H "x-apigw-api-id:a1bc234d5e"
Nota: Sustituya vpce-1a2b3c456d7e89012-f3ghijkl.execute-api.region.vpce.amazonaws.com por el nombre de DNS público del punto de conexión de su interfaz y el nombre de etapa por el nombre de la etapa en la que implementó su API privada. Reemplace a1bc234d5e por el ID de su API.
4. Revise el resultado del comando. API Gateway devuelve una respuesta de 200 OK si la conexión se lleva a cabo correctamente.
Información relacionada
¿Cómo soluciono los problemas al conectarme a un punto de conexión de la API privada de API Gateway?
Acceso a un servicio de AWS mediante un punto de conexión de VPC de interfaz
Vídeos relacionados
Contenido relevante
- preguntada hace 20 díaslg...
- preguntada hace 9 díaslg...
- preguntada hace un meslg...
- preguntada hace un meslg...
- preguntada hace un meslg...
- OFICIAL DE AWSActualizada hace un año
- ¿Cómo soluciono los problemas al conectarme a un punto de conexión de la API privada de API Gateway?OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 4 años
- OFICIAL DE AWSActualizada hace 2 meses