¿Cómo puedo resolver los errores «HTTP 403 Forbidden» al invocar mi API con la autenticación de IAM entre cuentas para API Gateway?

2 minutos de lectura
0

Llamé a mi API de Amazon API Gateway con una entidad (usuario o rol) entre cuentas de AWS Identity and Access Management (IAM). Aparece el error «HTTP 403 Forbidden».

Resolución

API de REST

Para acceder a las API de REST de API Gateway, active la autenticación de IAM para un método de API en la consola de API Gateway. A continuación, use las políticas de IAM y las políticas de recursos para designar los permisos para los usuarios de la API.

Asegúrese de que la entidad de IAM entre cuentas tenga permisos para invocar la API y que se le permita el acceso en la política de recursos.

En este ejemplo, la API de REST de la cuenta A 111111111 tiene habilitada la autenticación de IAM. El usuario1 intenta invocar desde la cuenta B 999999999. El usuario1 de la cuenta B tiene adjunta la siguiente política de IAM:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "execute-api:Invoke",
        "execute-api:ManageConnections"
      ],
      "Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/*/*/*"
    }
  ]
}

Para permitir que el usuario de IAM de la cuenta B en la cuenta A invoque el acceso entre cuentas, utilice una política de recursos similar a la siguiente:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::999999999:user/User1"
      },
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/stage/*/*"
    }
  ]
}

Para obtener más información sobre las pruebas, consulte ¿Cómo activo la autenticación de IAM para las API de REST de API Gateway?

API HTTP

Para acceder a 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.

Asegúrese de que las credenciales de seguridad temporales utilizadas para invocar la API HTTP sean correctas y no hayan caducado.

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

Ejemplos de políticas de recursos de API Gateway

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 meses