Saltar al contenido

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

3 minutos de lectura
0

Quiero acceder a una API de Amazon API Gateway desde otra cuenta de AWS.

Resolución

Puntos de enlace públicos de API

Puedes acceder a los puntos de enlace públicos de API Gateway (regionales u optimizados para la periferia) directamente desde la URL de la fase de API. Por ejemplo, https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}.

También puedes usar un nombre de dominio personalizado en una zona alojada pública para acceder a los puntos de enlace públicos de API Gateway.

Para obtener más información, consulta ¿Cómo puedo configurar un nombre de dominio personalizado para mi API de API Gateway?

Puntos de enlace privados de API de REST

Puedes usar un punto de enlace de VPC de interfaz para acceder a puntos de enlace de API de REST privados desde tu Amazon Virtual Private Cloud (Amazon VPC).

Para acceder a una API de REST privada ubicada en otra cuenta, edita la política de recursos para conceder permisos entre cuentas. También puedes usar un nombre de dominio personalizado privado para asociar tu punto de enlace de VPC a otra cuenta.

Para obtener más información, consulta ¿Cómo utilizo un punto enlace de VPC de interfaz para acceder a una API de REST privada de API Gateway en otra cuenta?

Uso de 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 AWS Identity and Access Management (IAM). Asegúrate de que la entidad de IAM de la cuenta de consumidor tenga permisos para invocar la API mediante una política basada en la identidad.

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::CONSUMER-ACCOUNT-ID:user/USERNAME",
                    "CONSUMER-ACCOUNT-ID"
                ]
            },
            "Action": "execute-api:Invoke",
            "Resource": [
                "arn:aws:execute-api:YOUR-REGION:API-OWNER-ACCOUNT-ID:API-ID///*"
            ]
        }
    ]
}

Nota: Sustituye CONSUMER-ACCOUNT-ID, USERNAME, YOUR-REGION, API-OWNER-ACCOUNT-ID y API-ID por tus variables.

Para obtener más información sobre las pruebas, consulta ¿Cómo activo la autenticación de IAM para las API de REST 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.

Puedes 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, consulta ¿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 roles de otra cuenta de AWS utilizar una API