Como posso resolver os erros de controle de utilização da API ou de “Taxa excedida” para IAM e AWS STS?

Data da última atualização: 24/01/2022

Minha aplicação está recebendo uma mensagem de erro semelhante à seguinte:

“Controle de utilização: taxa excedida, código de status: 400”

Breve descrição

As chamadas de API do Console de Gerenciamento da AWS, da AWS Command Line Interface (AWS CLI) e das aplicações contribuem para um limite máximo de taxa para a conta da AWS.

Observação: os limites da taxa de serviço da AWS não podem ser aumentados.

Resolução

Siga essas práticas recomendadas para evitar erros de controle de utilização.

  • Implemente o recuo exponencial no código de suas aplicações. O recuo exponencial permite esperas mais longas sempre que uma chamada de API para a AWS passa pelo controle de utilização. Dependendo da aplicação, o número máximo de atrasos e o número máximo de novas tentativas podem variar.
    Observação: o AWS SDK implementa lógica de novas tentativas e algoritmos de recuo exponencial.
  • Algumas aplicações podem implementar o armazenamento em cache para reduzir a taxa de chamadas de API. Por exemplo, se a aplicação chamar a chamada de API AssumeRole para um fluxo de trabalho entre contas, as credenciais temporárias recebidas poderão ser armazenadas e reutilizadas para várias chamadas entre contas. Isso significa que não é preciso fazer uma nova chamada AssumeRole para cada chamada de API entre contas.
  • Se a aplicação estiver chamando AssumeRole e armazenando as credenciais em cache, será possível verificar a duração máxima da sessão das credenciais temporárias da função. Aumentar a duração das credenciais temporárias garante que não será preciso chamar o AssumeRole com tanta frequência.
  • Estenda as chamadas de API por um longo período em vez de chamar as APIs de uma só vez. Por exemplo, aplicativos que têm uma chamada diária de trabalho SimulatePrincipalPolicy ou GenerateServiceLastAccesssedDetails para auditar permissões para usuários e funções do AWS Identity and Access Management (IAM). É possível escalonar as chamadas de API em vez de executá-las ao mesmo tempo.
  • Para as aplicações que alteram dinamicamente as permissões de política do IAM usando chamadas de API como CreatePolicyVersion, considere outro método. Por exemplo, é possível utilizar as políticas de sessão durante a suposição de função do IAM.
  • Para erros de controle de utilização do AWS Security Token Service (AWS STS), considere utilizar endpoints STS regionais em vez de enviar todas as chamadas do AWS STS para o endpoint global. Cada endpoint tem um limite de controle de utilização separado. A utilização de endpoints regionais do AWS STS pode fornecer às aplicações um tempo de resposta mais rápido nas chamadas de API do AWS STS.
  • Caso não tenha certeza sobre qual usuário ou função do IAM na sua conta da AWS está fazendo uma grande quantidade de chamadas de API, utilize o AWS CloudTrail para visualizar o Histórico de eventos. Também é possível utilizar o Amazon Athena para executar consultas SQL e filtrar logs do CloudTrail. Para instruções, consulte Como posso descobrir qual chamada de API está causando o erro “Taxa excedida”?
  • Como as contas da AWS têm limites de controle de utilização separados, considere distribuir os workloads entre várias contas usando o AWS Organizations. A criação de novas contas da AWS não tem custo adicional e o Organizations fornece faturamento consolidado. A utilização de políticas de controle de serviço (SCPs) permite controlar o máximo de permissões de usuários e funções do IAM em uma conta da AWS. Para obter mais informações, consulte Gerenciar contas por meio do AWS Organizations e Como faço para começar a utilizar o AWS Organizations?

Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?