¿Cómo me conecto a una puerta de enlace de API privada a través de una conexión de Direct Connect?

6 minutos de lectura
0

Deseo conectarme a una Amazon API Gateway privada a través de una conexión de AWS Direct Connect.

Resolución

Creación de un punto de enlace de Amazon Virtual Private Cloud (Amazon VPC) para el servicio de Amazon API Gateway

Un punto de enlace de Amazon VPC permite que los recursos privados de una VPC se comuniquen de forma segura con el servicio de API Gateway. Para crear un punto de enlace de Amazon VPC para API Gateway, siga estos pasos:

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, en Nube virtual privada, elija Puntos de enlace.
  3. En Categoría de servicio, elija Servicios de AWS.
  4. En Nombre del servicio, busque por la palabra clave «execute-api». Esta búsqueda devuelve un único resultado: «com.amazonaws.REGION.execute-api».
  5. Seleccione «com.amazonaws.REGION.execute-api».
  6. En VPC, seleccione la Amazon VPC en la que está configurada la conexión de Direct Connect.
  7. En Subredes, seleccione las subredes en las que desea que esté accesible la API.
  8. En Habilitar nombre de DNS, desactive la casilla Habilitar para este punto de enlace. Para desactivar esta configuración, es necesario que la Amazon VPC tenga activado «nombres de host de DNS», que es una característica opcional. Si se deja esta configuración activada, se interrumpe todo el acceso a las API públicas de API Gateway en la Amazon VPC desplegada si la VPC usa el DNS proporcionado por Amazon.
  9. En Grupo de seguridad, elija el grupo de seguridad para el punto de enlace de Amazon VPC. El grupo de seguridad debe permitir el acceso por TCP/443 entrante desde su Amazon VPC.
  10. En Política, elija Acceso completo. Esta opción permite todas las conexiones desde su Amazon VPC al punto de enlace de VPC mediante los permisos de AWS IAM.
  11. Elija Crear punto de enlace.
  12. Anote el ID de punto de enlace de Amazon VPC (por ejemplo, «vpce-01234567890abcdef»). Necesitará este ID más adelante para editar la política de recursos de la API.

Creación de su API de REST privada, si aún no tiene una

  1. Abra la consola de API Gateway.
  2. Seleccione la región de su conexión de Direct Connect.
  3. Seleccione Crear API.
  4. For Tipo de API, elija API REST privada.
  5. En Protocolo de API, elija REST.
  6. En Crear una API nueva, elija API de ejemplo.
  7. En Configuración, confirme que Tipo de punto de enlace esté configurado como Privado.
  8. Elija Importar.

Cómo conceder al punto de enlace de Amazon VPC permiso para acceder a la API de REST privada

  1. En la página de administración de la API, elija Política de recursos.
  2. Copie la política que aparece a continuación en su Política de recursos.
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Deny",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "execute-api:/*/*/*",
          "Condition": {
            "StringNotEquals": {
              "aws:sourceVpce": "{{vpceID}}"
            }
          }
        },
        {
          "Effect": "Allow",
          "Principal": "*",
          "Action": "execute-api:Invoke",
          "Resource": "execute-api:/*/*/*"
        }
      ]
    }
    Sustituya la cadena {{vpceID}} por el ID de punto de enlace de Amazon VPC que anotó después de crear el punto de enlace de VPC. O bien, busque el ID en la consola de Amazon VPC, en Puntos de enlace.
    Nota: Este ejemplo de política permite el acceso a todos los recursos de la API desde su Amazon VPC. Para restringir aún más el acceso, modifique la clave Recurso.
  3. Elija Guardar.

Cómo desplegar su API para confirmar los cambios

Ahora que ha creado la API y ha añadido una política de recursos, despliegue la API en una etapa para desplegar los cambios:

  1. En el panel de navegación de la consola de API Gateway, elija Recursos.
  2. Elija Acciones.
  3. En Acciones API, elija Implementar API.
  4. En Etapa de implementación, elija [Nueva etapa].
  5. Introduzca un nombre para la etapa.
  6. Elija Implementación. Los cambios se despliegan en la API. Este proceso puede tardar unos minutos en propagarse.

Cómo probar el acceso a la API desde la conexión Direct Connect

Siga estos pasos para probar el acceso:

  1. En la consola de Amazon VPC, elija Puntos de enlace y, a continuación, seleccione el punto de enlace de VPC que creó.

  2. En Detalles, copie el nombre de DNS del punto de enlace de VPC. Por ejemplo,
    «vpce-0123456789abcdef-b238e1kf.execute-api.REGION.vpce.amazonaws.com».

  3. Desde un ordenador conectado a su Amazon VPC mediante Direct Connect, ejecute uno de los siguientes comandos para probar la resolución del nombre de host de DNS del punto de enlace de VPC.

    Windows PowerShell:

    nslookup <YOUR_VPCE_HOSTNAME>

    Alternativa:

    macOS/Unix:

    nslookup <YOUR_VPCE_HOSTNAME>

    Nota: Sustituya YOUR_VPCE_HOSTNAME por el nombre de host del punto de enlace de VPC que creó anteriormente.

    La respuesta devuelve una dirección IP privada que corresponde a su punto de enlace de Amazon VPC. Si no recibe una dirección IP privada en la respuesta, compruebe el nombre de host del punto de enlace de Amazon VPC en la consola de Amazon VPC, en Puntos de enlace.

  4. Si el DNS funciona, realice una solicitud HTTP de prueba. Para ello, necesita el ID de API de la consola de API Gateway. Copie el ID de API de la lista. El ID de API es una cadena de caracteres, como «chw1a2q2xk».

  5. Desde un equipo local conectado a la conexión de Direct Connect, ejecute el siguiente comando:

    Windows PowerShell:

    curl -H @{'x-apigw-api-id' = '<YOUR_API_ID>'} https://<YOUR_VPCE_HOSTNAME>/<STAGE>

    Alternativa:

    macOS/Unix:

    curl -IX GET -H 'x-apigw-api-id:<YOUR_API_ID>' https://<YOUR_VPCE_HOSTNAME>/<STAGE>

    Nota: Sustituya YOUR_API_ID por el ID de su API de REST privada o por la API que creó anteriormente. Sustituya YOUR_VPCE_HOSTNAME por el nombre de host del punto de enlace de VPC y STAGE por la etapa de despliegue que creó anteriormente.

Asegúrese de lo siguiente:

  • La primera línea de la respuesta incluye «HTTP/1.1 200 OK».
  • Si no recibe ninguna respuesta, compruebe que el grupo de seguridad asociado al punto de enlace de Amazon VPC permita las conexiones entrantes en TCP/443 desde la dirección IP de origen. Compruebe también que la conexión esté utilizando correctamente su conexión de Direct Connect.
  • Si recibe la respuesta «403 Prohibido», comprueba que has configurado el encabezado <YOUR_API_ID>. Confirme que está enviando una solicitud GET. Además, compruebe que ha añadido <STAGE> correctamente.

Nota: Las aplicaciones web de cliente atendidas desde un dominio diferente de esta API pueden interactuar con esta API. En estos casos, el navegador genera una solicitud previa de CORS que dificulta la configuración del encabezado x-apigw-api-id. Para resolver este problema, acceda a la API privada con un alias de Route53 en su lugar.

Información relacionada

¿Qué es el CORS?

¿Cómo puedo solucionar los problemas de enrutamiento de la gateway de Direct Connect?

How can I set up a Direct Connect gateway?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 meses