¿Cómo puedo acceder a una API de Amazon API Gateway desde otra cuenta de AWS?

Última actualización: 03-10-2022

Me gustaría acceder a una API de Amazon API Gateway desde otra cuenta de AWS. ¿Cómo puedo hacerlo?

Descripción corta

Se puede acceder a los puntos de conexión de la API pública (regionales o bien optimizados para la periferia) directamente desde la URL de la etapa del punto de conexión público o desde un nombre de dominio personalizado.

Se puede acceder a los puntos finales de las API de REST privadas desde una nube privada virtual en Amazon Virtual Private Cloud (Amazon VPC) por medio de un punto de conexión de VPC con la interfaz.

Se puede acceder a los puntos de conexión de Amazon API Gateway mediante la autenticación de AWS Identity and Access Management (IAM) con acceso entre cuentas.

Resolución

Puntos de conexión de API públicos

Puede acceder a los puntos de conexión públicos de API Gateway directamente desde la URL de etapa de la API. Por ejemplo, https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}.

Asimismo, puede acceder a los puntos de conexión públicos de API Gateway utilizando un nombre de dominio personalizado en una zona alojada pública.

Nota: Los nombres de dominio personalizados no son compatibles con las API privadas.

Si desea obtener más información, consulte How can I set up a custom domain name for my API Gateway API? (¿Cómo puedo configurar un nombre de dominio personalizado para mi API de API Gateway?).

Puntos de conexión para las API de REST privadas

Puede acceder a las API de REST privadas de API Gateway en otra cuenta de AWS mediante una Amazon Virtual Private Cloud (Amazon VPC) utilizando un punto de conexión con la interfaz.

Si la API de REST privada se encuentra en una cuenta de AWS y desea acceder a ella desde otra cuenta, puede editar la política de recursos.

Si desea obtener más información, consulte How can I access an API Gateway private REST API in another AWS account using an interface VPC endpoint? (¿Cómo puedo acceder a una API de REST privada de API Gateway en otra cuenta de AWS a través de un punto de conexión de VPC con la interfaz?)

API que utilizan la autenticación de IAM

Es necesaria una configuración adicional para acceder a una API de API Gateway con acceso entre cuentas que utilice autenticación de IAM. El rol de IAM de la cuenta de origen debe contar con acceso explícito en la política de recursos, de forma similar a la siguiente:

API de REST

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::account-id-2:user/Alice",
          "account-id-2"
        ]
      },
      "Action": "execute-api:Invoke",
      "Resource": [
        "arn:aws:execute-api:us-east-1:{account-id}:{api-id}/*/*/*"
      ]
    }
  ]
}

Para más información, consulte How do I activate IAM authentication for API Gateway REST APIs? (¿Cómo activo la autenticación de IAM para las API de REST de API Gateway?)

API de HTTP

La opción de usar políticas de recursos para proporcionar la autenticación de IAM en cuentas cruzadas no está disponible para las API de HTTP de API Gateway.

Puede usar la acción de API sts:AssumeRole para asumir un rol en la cuenta de la API de HTTP. El rol asumido proporciona credenciales de seguridad temporales que se pueden usar para invocar la API de HTTP en otra cuenta.

Para más información, consulte ¿Cómo puedo proporcionar autorización de IAM entre cuentas para las API HTTP de API Gateway? (¿Cómo puedo proporcionar autorización de IAM entre cuentas para las API HTTP de API Gateway?).


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?