Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

Wie kann ich API-Drosselungs- oder „Rate exceeded“-Fehler bei IAM und AWS STS beheben?

Lesedauer: 3 Minute
0

Meine Anwendung erhält eine Fehlermeldung wie „Throttling: Rate exceeded, status code: 400“.

Kurzbeschreibung

Für API-Aufrufe von der AWS-Managementkonsole, von AWS Command Line Interface (AWS CLI) und aus Anwendungen gilt ein Ratenlimit Ihres AWS-Kontos.

Hinweis: Sie können die AWS-Service-Ratenlimits nicht erhöhen.

Behebung

Gehen Sie wie folgt vor, um Drosselungsfehler zu vermeiden:

  • Implementieren Sie exponentielles Backoff im Code Ihrer Anwendung. Exponentielles Backoff ermöglicht längere Wartezeiten, wenn ein API-Aufruf an AWS gedrosselt wird. Je nach Anwendung kann die maximale Anzahl von Verzögerungen und Wiederholungen variieren.
    Hinweis: AWS SDK implementiert automatische Wiederholungslogik und Algorithmen für exponentielles Backoff.
  • Manche Anwendungen können Caching implementieren, um die Rate von API-Aufrufen zu senken. Angenommen, Ihre Anwendung verwendet den API-Aufruf AssumeRole für einen kontoübergreifenden Workflow. Das bedeutet, dass die temporären Anmeldeinformationen, die Sie erhalten haben, gespeichert und für mehrere kontoübergreifende Aufrufe wiederverwendet werden können. Außerdem müssen Sie nicht für jeden ausgeführten kontoübergreifenden API-Aufruf einen neuen AssumeRole-Aufruf durchführen.
  • Wenn Ihre Anwendung AssumeRole aufruft und die Anmeldeinformationen zwischenspeichert, überprüfen Sie die maximale Sitzungsdauer der temporären Anmeldeinformationen der Rolle. Wenn Sie die Dauer der temporären Anmeldeinformationen verlängern, müssen Sie AssumeRole weniger häufig aufrufen.
  • Verteilen Sie Ihre API-Aufrufe über einen längeren Zeitraum, statt die APIs alle auf einmal aufzurufen. Dies betrifft zum Beispiel Anwendungen, die täglich SimulatePrincipalPolicy oder GenerateServiceLastAccessedDetails aufrufen, um die Berechtigungen für Benutzer und Rollen in AWS Identity and Access Management (IAM) zu überprüfen. Anstatt die API-Aufrufe gleichzeitig auszuführen, können Sie sie gestaffelt ausführen.
  • Für Anwendungen, die IAM-Richtlinien-Berechtigungen mithilfe von API-Aufrufen wie CreatePolicyVersion dynamisch ändern, sollten Sie eine andere Methode in Betracht ziehen. Beispielsweise können Sie bei der Übernahme der IAM-Rolle Sitzungsrichtlinien verwenden.
  • Verwenden Sie bei Drosselungsfehlern in AWS Security Token Service (AWS STS) ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)AWS-regionale STS-Endpunkte[, anstatt alle AWS-STS-Aufrufe an den globalen Endpunkt zu senden. Jeder Endpunkt hat ein eigenes Drosselungslimit. Regionale AWS-STS-Endpunkte können Anwendungen eine schnellere Reaktionszeit auf die API-Aufrufe von AWS STS bieten.
  • Da AWS-Konten separate Drosselungslimits haben, ziehen Sie in Betracht, die Workloads mithilfe von AWS Organizations auf mehrere Konten zu verteilen. Für die Erstellung neuer AWS-Konten fallen keine zusätzlichen Kosten an, und Organizations bietet konsolidierte Fakturierung. Mithilfe von Servicekontrollrichtlinien können Sie die maximalen Berechtigungen von IAM-Benutzern und -Rollen in einem AWS-Konto steuern. Weitere Informationen finden Sie unter Manage accounts through AWS Organizations und How do I get started with AWS Organizations?

Verwandte Informationen

Wie erstelle ich automatisch Tabellen in Amazon Athena, um AWS-CloudTrail-Protokolle zu durchsuchen?

Wie kann ich herausfinden, welcher AWS-API-Aufruf den Fehler „Rate überschritten“ verursacht?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr