Come posso risolvere gli errori di limitazione delle API o di superamento della frequenza per IAM e AWS STS?

3 minuti di lettura
0

L’applicazione riceve un messaggio di errore simile a “Throttling: Rate exceeded, status code: 400,".

Breve descrizione

Le chiamate API dalla Console di gestione AWS, dall'interfaccia della linea di comando AWS (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

Per evitare errori di limitazione, segui queste best practice:

  • Implementa il backoff esponenziale nel codice dell’applicazione. Il backoff esponenziale consente 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 effettua la chiamata API AssumeRole per un flusso di lavoro tra più account, significa che le credenziali temporanee ricevute possono essere archiviate e riutilizzate per più chiamate tra account. Inoltre, non è necessario effettuare una nuova chiamata AssumeRole per ogni chiamata API tra account effettuata.
  • Se l'applicazione chiama AssumeRole e memorizza nella cache le credenziali, controlla la durata massima della sessione delle credenziali temporanee del ruolo. Quando si allunga la durata delle credenziali temporanee, non è necessario chiamare AssumeRole con la stessa frequenza.
  • Distribuisci le chiamate API su un periodo di tempo più lungo invece di chiamare le API tutte in una volta. Ad esempio, le applicazioni che chiamano quotidianamente SimulatePrincipalPolicy o GenerateServiceLastAccessedDetails per verificare le autorizzazioni degli utenti e i ruoli di AWS Identity and Access Management (IAM). Invece di eseguire le chiamate API contemporaneamente, è possibile scaglionarle.
  • Per le applicazioni che modificano dinamicamente le autorizzazioni delle policy IAM utilizzando chiamate API come CreatePolicyVersion, è possibile considerare un altro metodo. Ad esempio, si potrebbe utilizzare le policy di sessione durante l'assunzione del ruolo IAM.
  • Per gli errori di limitazione di AWS Security Token Service (AWS STS), utilizza gli endpoint regionali AWS STS anziché inviare tutte le chiamate AWS STS all'endpoint globale. Ogni endpoint ha una soglia di limitazione separata. Gli endpoint regionali AWS STS possono fornire alle applicazioni tempi di risposta più rapidi sulle chiamate API AWS STS.
  • Poiché gli account AWS hanno soglie di limitazione separate, può essere utile 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. Le policy di controllo dei servizi (SCP) consentono di controllare le autorizzazioni massime degli utenti e dei ruoli IAM in un account AWS. Per ulteriori informazioni, consulta Manage accounts through AWS Organizations e How do I get started with AWS Organizations?

Informazioni correlate

Come faccio a creare automaticamente tabelle in Amazon Athena per effettuare ricerche nei log di AWS CloudTrail?

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

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa