¿Cómo puedo solucionar los errores de limitación de API o “Tasa excedida” de IAM y AWS STS?

Última actualización: 24 de enero de 2022

Mi aplicación recibe un mensaje de error similar al siguiente:

“Limitación: tasa excedida, código de estado: 400,”

Descripción corta

Las llamadas a la API desde la consola de administración de AWS, AWS Command Line Interface (AWS CLI) y las aplicaciones contribuyen a un límite de tasa máximo para su cuenta de AWS.

Nota: Los límites de tasa de los servicios de AWS no se pueden aumentar.

Resolución

Siga estas prácticas recomendadas para evitar errores de limitación.

  • Implemente un retroceso exponencial en el código de su aplicación. El retroceso exponencial permite esperas más largas cada vez que se limita una llamada a la API de AWS. Según la aplicación, el número máximo de retrasos y el número máximo de reintentos pueden variar.
    Nota: AWS SDK implementa una lógica de reintentos automáticos y algoritmos de retroceso exponencial.
  • Algunas aplicaciones pueden implementar el almacenamiento en caché para reducir la tasa de llamadas a la API. Por ejemplo, si su aplicación llama a la API AssumeRole para un flujo de trabajo multicuenta, las credenciales temporales que recibió se pueden almacenar y reutilizar para varias llamadas multicuenta. Esto significa que no es necesario realizar una nueva llamada a AssumeRole por cada llamada a la API multicuenta realizada.
  • Si su aplicación llama a AssumeRole y almacena en caché las credenciales, puede comprobar la duración máxima de la sesión de las credenciales temporales del rol. Al alargar la duración de las credenciales temporales, se asegura de que no sea necesario llamar a AssumeRole con tanta frecuencia.
  • Distribuya sus llamadas a la API durante un período de tiempo más largo en lugar de llamar a las API de una sola vez. Por ejemplo, aplicaciones que tienen un trabajo diario que llama a SimulatePrincipalPolicy o GenerateServiceLastAccessedDetails para auditar los permisos de los usuarios y roles de AWS Identity and Access Management (IAM). Puede escalonar las llamadas a la API en lugar de ejecutarlas al mismo tiempo.
  • Para las aplicaciones que cambian dinámicamente los permisos de las políticas de IAM mediante llamadas a la API como createPolicyVersion, considere otro método. Por ejemplo, puede usar políticas de sesión durante la asunción del rol de IAM.
  • Para los errores de limitación de AWS Security Token Service (AWS STS), considere el uso de puntos de conexión de STS regionales en lugar de enviar todas las llamadas de AWS STS al punto de conexión global. Cada punto de conexión tiene un límite de limitación independiente. El uso de puntos de conexión regionales de AWS STS puede proporcionar a las aplicaciones un tiempo de respuesta más rápido en las llamadas a la API de AWS STS.
  • Si no está seguro de qué usuario o rol de IAM de su cuenta de AWS está realizando una gran cantidad de llamadas a la API, utilice AWS CloudTrail para consultar el historial de eventos. También puede usar Amazon Athena para ejecutar consultas SQL y filtrar los registros de CloudTrail. Para obtener instrucciones, consulte ¿Cómo puedo encontrar qué llamada a la API está causando el error “Tasa excedida”?
  • Como las cuentas de AWS tienen límites de limitación separados, considere la posibilidad de distribuir las cargas de trabajo entre varias cuentas mediante AWS Organizations. La creación de nuevas cuentas de AWS no supone ningún coste adicional y las organizaciones ofrecen facturación consolidada. El uso de políticas de control de servicios (SCP) le permite controlar los permisos máximos de los usuarios y roles de IAM en una cuenta de AWS. Para obtener más información, consulte Administrar cuentas a través de AWS Organizations y ¿Cómo empiezo a trabajar con AWS Organizations?

¿Le resultó útil este artículo?


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