Quiero acceder a una API de Amazon API Gateway desde otra cuenta de AWS.
Descripción corta
Se puede acceder a los puntos de enlace de la API pública (regionales u optimizados para la periferia) directamente desde la URL de la etapa de punto de enlace público o desde un nombre de dominio personalizado.
Se puede acceder a los puntos de enlace de las API de REST privadas desde una nube privada virtual en Amazon Virtual Private Cloud (Amazon VPC) mediante un punto de enlace de VPC de interfaz.
Se puede acceder a los puntos de enlace de Amazon API Gateway mediante la autenticación de AWS Identity and Access Management (IAM) con acceso entre cuentas.
Resolución
Puntos de enlace públicos de API
Puede acceder a los puntos de enlace públicos de API Gateway directamente desde la URL de la etapa de API. Por ejemplo, https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}.
También puede acceder a los puntos de enlace públicos de API Gateway mediante un nombre de dominio personalizado en una zona alojada pública.
Nota: Las API privadas no admiten nombres de dominio personalizados.
Para obtener más información, consulte ¿Cómo puedo configurar un nombre de dominio personalizado para mi API de API Gateway?
Puntos de enlace privados de API de REST
Puede acceder a las API de REST privadas de API Gateway en otra cuenta de AWS con una Amazon Virtual Private Cloud (Amazon VPC) mediante un punto de enlace de interfaz.
Si su API de REST privada está ubicada en una cuenta de AWS y desea acceder a ella desde otra cuenta, puede editar la política de recursos.
Para obtener más información, consulte ¿Cómo puedo acceder a una API de REST privada de API Gateway en otra cuenta de AWS mediante un punto de conexión de VPC de la interfaz?
API que utilizan la autenticación de IAM
Se requiere una configuración adicional para acceder a una API de API Gateway con acceso entre cuentas que utilice la autenticación de IAM. Se debe permitir el acceso explícito al rol de IAM de la cuenta de origen 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 obtener más información, consulte ¿Cómo activo la autenticación de IAM para las API de API Gateway?
API HTTP
La opción de usar políticas de recursos para proporcionar autenticación de IAM entre cuentas no está disponible para las API HTTP de API Gateway.
Puede usar la acción de API sts:AssumeRole para asumir un rol para la cuenta de API HTTP. El rol asumido proporciona credenciales de seguridad temporales que se pueden usar para invocar la API HTTP en otra cuenta.
Para obtener más información, consulte ¿Cómo puedo proporcionar una autorización de IAM entre cuentas para las API HTTP de API Gateway?
Información relacionada
Invocación de las API de REST en API Gateway
Ejemplo: Permitir a los usuarios de otra cuenta de AWS utilizar una API