Wie kann ich API-Drosselung oder „Rate überschritten“-Fehler für IAM und AWS STS beheben?

Lesedauer: 3 Minute
0

Meine Anwendung erhält eine Fehlermeldung ähnlich der Folgenden: „Drosselung: Rate überschritten, Statuscode: 400“

Kurzbeschreibung

API-Aufrufe von der AWS-Managementkonsole, dem AWS Command Line Interface (AWS CLI) und Anwendungen tragen zu einer maximalen Tarifbegrenzung für Ihr AWS-Konto bei.

Hinweis: Die Tarifbegrenzungen für AWS-Services können nicht erhöht werden.

Auflösung

Befolgen Sie diese bewährten Methoden, um Drosselungsfehler zu vermeiden.

  • Implementieren Sie einen exponentiellen Backoff im Code Ihrer Anwendung. Exponentielles Backoff ermöglicht jedes Mal längere Wartezeiten, wenn ein API-Aufruf an AWS gedrosselt wird. Je nach Anwendung können die maximale Anzahl von Verzögerungen und die maximale Anzahl von Wiederholungsversuchen variieren.
    Hinweis: Das AWS SDK implementiert automatische Wiederholungslogik und exponentielle Backoff-Algorithmen.
  • Einige Anwendungen können das Caching implementieren, um die Rate der API-Aufrufe zu senken. Wenn Ihre Anwendung beispielsweise den API-Aufruf AssumeRole für einen kontenübergreifenden Workflow aufruft, können die temporären Anmeldeinformationen, die Sie erhalten haben, gespeichert und für mehrere kontenübergreifende Aufrufe wiederverwendet werden. Das bedeutet, dass Sie nicht für jeden kontenübergreifenden API-Aufruf einen neuen AssumeRole-Aufruf tätigen müssen.
  • Wenn Ihre Anwendung AssumeRole aufruft und die Anmeldeinformationen zwischenspeichert, können Sie die maximale Sitzungsdauer der temporären Anmeldeinformationen der Rolle überprüfen. Wenn Sie die Dauer der temporären Anmeldeinformationen verlängern, müssen Sie AssumeRole nicht so oft aufrufen.
  • Verteilen Sie Ihre API-Aufrufe über einen längeren Zeitraum, anstatt die APIs auf einmal aufzurufen. Zum Beispiel Anwendungen, die einen täglichen Auftrag haben und SimulatePrincipalPolicy oder GenerateServiceLastAccessedDetails aufrufen, um Berechtigungen für Benutzer und Rollen von AWS Identity and Access Management (IAM) zu überprüfen. Sie können die API-Aufrufe staffeln, anstatt sie gleichzeitig auszuführen.
  • Erwägen Sie für Anwendungen, die die IAM-Richtlinienberechtigungen mithilfe von API-Aufrufen wie CreatePolicyVersion dynamisch ändern, eine andere Methode. Sie können beispielsweise Sitzungsrichtlinien während der IAM-Rollenübernahme verwenden.
  • Bei Drosselungsfehlern des AWS Security Token Service (AWS STS) sollten Sie erwägen, regionale STS-Endpunkte zu verwenden, anstatt alle AWS-STS-Aufrufe an den globalen Endpunkt zu senden. Jeder Endpunkt hat eine separate Drosselungsgrenze. Durch die Verwendung regionaler AWS-STS-Endpunkte können Anwendungen eine schnellere Reaktionszeit auf die AWS-STS-API-Aufrufe erhalten.
  • Wenn Sie nicht sicher sind, welcher IAM-Benutzer oder welche IAM-Rolle in Ihrem AWS-Konto eine große Anzahl von API-Aufrufen tätigt, verwenden Sie AWS CloudTrail, um den Ereignisverlauf anzuzeigen. Sie können Amazon Athena auch verwenden, um SQL-Abfragen auszuführen und CloudTrail-Protokolle zu filtern. Anweisungen finden Sie unter Wie finde ich heraus, welcher API-Aufruf den Fehler „Rate überschritten“ verursacht?
  • Da für AWS-Konten separate Beschränkungen gelten, sollten Sie erwägen, die Arbeitslasten mithilfe von AWS Organizations auf mehrere Konten zu verteilen. Das Erstellen neuer AWS-Konten ist ohne zusätzliche Kosten und Organizations bietet eine konsolidierte Abrechnung. Durch die Verwendung von Service-Kontrollrichtlinien (SCPs) können Sie die maximalen Berechtigungen von IAM-Benutzern und -Rollen in einem AWS-Konto steuern. Weitere Informationen finden Sie unter Verwalten von Konten über AWS Organizations und Wie mache ich die ersten Schritte mit AWS Organizations?

Zugehörige Informationen

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

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren