Come posso risolvere gli errori di limitazione dell'API o di "Frequenza superata" per IAM e AWS STS?

Ultimo aggiornamento: 24/01/2022

L'applicazione riceve un messaggio di errore simile al seguente:

"Limitazione: frequenza superata, codice di stato: 400,"

Breve descrizione

Le chiamate API dalla Console di gestione AWS, della AWS Command Line Interface (AWS CLI) e dalle applicazioni contribuiscono a stabilire un limite di frequenza massima per l'account AWS.

Nota: i limiti delle tariffe dei servizi AWS non possono essere aumentati.

Soluzione

Segui queste best practice per evitare errori di limitazione.

  • Implementa il backoff esponenziale nel codice dell'applicazione. Il backoff esponenziale permette attese più lunghe ogni volta che una chiamata API ad AWS viene limitata. A seconda dell'applicazione, il numero massimo di ritardi e il numero massimo di tentativi possono variare.
    Nota: SDK AWS implementa la logica dei tentativi automatica e algoritmi di backoff esponenziale.
  • Alcune applicazioni possono implementare la memorizzazione nella cache per ridurre la frequenza delle chiamate API. Ad esempio, se l'applicazione chiama la chiamata API AssumeRole per un flusso di lavoro tra più account, le credenziali temporanee ricevute possono essere archiviate e riutilizzate per più chiamate tra più account. Ciò significa che non è necessario effettuare una nuova chiamata AssumeRole per ogni chiamata API tra più account effettuata.
  • Se l'applicazione sta chiamando AssumeRole e memorizza nella cache le credenziali, è possibile verificare la durata massima della sessione delle credenziali temporanee del ruolo. L'allungamento della durata delle credenziali temporanee fa in modo che non sia necessario chiamare AssumeRole con la stessa frequenza.
  • Distribuisci le chiamate API su un periodo di tempo più lungo anziché chiamare le API tutte in una volta. Ad esempio, le applicazioni che hanno un compito quotidiano di chiamare SimulatePrincipalPolicy o GenerateServiceLastAccessedDetails per verificare le autorizzazioni per gli utenti e i ruoli di AWS Identity and Access Management (IAM). È possibile scaglionare le chiamate API anziché eseguirle contemporaneamente.
  • Per le applicazioni che modificano dinamicamente le autorizzazioni delle policy IAM utilizzando chiamate API quali CreatePolicyVersion, si consideri un altro metodo. Ad esempio, è possibile utilizzare le policy di sessione durante l'assunzione del ruolo IAM.
  • Per gli errori di limitazione di AWS Security Token Service (AWS STS), si consideri l'utilizzo di endpoint STS regionali anziché inviare tutte le chiamate AWS STS all'endpoint globale. Ogni endpoint ha un limite di limitazione separato. L'utilizzo degli endpoint regionali AWS STS può fornire alle applicazioni un tempo di risposta più rapido alle chiamate API AWS STS.
  • Se non sei sicuro di quale utente o ruolo IAM nell'account AWS stia effettuando una grande quantità di chiamate API, utilizza AWS CloudTrail per visualizzare la Cronologia degli eventi. Puoi anche utilizzare Amazon Athena per eseguire query SQL e filtrare i registri di CloudTrail. Per istruzioni, consulta Come posso sapere quale chiamata API causa l'errore "Frequenza superata"?
  • Poiché gli account AWS hanno limiti di limitazione separati, si consideri la possibilità di distribuire i carichi di lavoro su più account utilizzando AWS Organizations. La creazione di nuovi account AWS non comporta costi aggiuntivi e Organizations fornisce una fatturazione consolidata. L'utilizzo delle policy di controllo dei servizi (SCP) permette di controllare le autorizzazioni massime degli utenti e dei ruoli IAM su un account AWS. Per ulteriori informazioni, consulta Gestire gli account tramite AWS Organizations e Come iniziare a utilizzare AWS Organizations?

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?