¿Cómo puedo solucionar los errores de limitación de API o «tasa excedida» en IAM y AWS STS?

3 minutos de lectura
0

Mi aplicación recibe un mensaje de error similar al siguiente «Throttling: Rate exceeded, status code: 400».

Descripción breve

Las llamadas a la API desde la consola de administración de AWS, la Interfaz de la línea de comandos de AWS (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: El SDK de AWS implementa una lógica de reintento automático 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 enlace regionales de AWS STS en lugar de enviar todas las llamadas de AWS STS al punto de enlace global. Cada punto de enlace tiene un límite de limitación independiente. El uso de puntos de enlace 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.
  • Como las cuentas de AWS tienen límites de limitación independientes, 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 AWS Organizations ofrece 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 Manage accounts through AWS Organizations y How do I get started with AWS Organizations?

Información relacionada

¿Cómo puedo crear tablas en Amazon Athena automáticamente para realizar búsquedas en registros de AWS CloudTrail?

How can I find which API call is causing the "Rate exceeded" error?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año