Registrar em log chamadas de APIs do Amazon API Gateway usando o AWS CloudTrail - Amazon API Gateway

Registrar em log chamadas de APIs do Amazon API Gateway usando o AWS CloudTrail

O Amazon API Gateway é integrado ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, por um perfil ou por um AWS service (Serviço da AWS). O CloudTrail captura as chamadas de API REST do serviço do API Gateway como eventos. As chamadas capturadas incluem as chamadas do console do API Gateway e as chamadas de código para as APIs do serviço do API Gateway. Ao fazer uso das informações coletadas pelo CloudTrail, é possível determinar a solicitação feita ao API Gateway, o endereço IP no qual a solicitação foi feita, quando a solicitação foi feita e detalhes adicionais.

nota

TestInvokeAuthorizer e TestInvokeMethod não são registrados no CloudTrail.

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações de identidade ajudam a determinar:

  • Se a solicitação foi feita com credenciais de usuário raiz ou credenciais de usuário.

  • Se a solicitação foi feita em nome de um usuário do Centro de Identidade do IAM.

  • Se a solicitação foi feita com credenciais de segurança temporárias de uma função ou de um usuário federado.

  • Se a solicitação foi feita por outro AWS service (Serviço da AWS).

O CloudTrail está ativo em sua Conta da AWS e você tem acesso automático ao Histórico de eventos do CloudTrail. O Histórico de eventos do CloudTrail fornece um registro visualizável, pesquisável, baixável e imutável dos últimos 90 dias de eventos de gerenciamento gravados em uma Região da AWS. Para obter mais informações, consulte Trabalhar com histórico de eventos do CloudTrail no Guia do usuário do AWS CloudTrail. Não há cobranças do CloudTrail pela visualização do Histórico de eventos.

Para obter um registro contínuo de eventos em sua Conta da AWS nos últimos 90 dias, crie uma trilha ou um um armazenamento de dados de eventos do CloudTrail Lake.

Trilhas do CloudTrail

Uma trilha permite que o CloudTrail entregue arquivos de log a um bucket Amazon S3. As trilhas criadas usando o AWS Management Console são de várias regiões. Só é possível criar uma trilha de região única ou de várias regiões usando a AWS CLI. Criar uma trilha de várias regiões é uma prática recomendada, pois você captura atividades em todas as Regiões da AWS da conta. Se você criar uma trilha de região única, poderá visualizar somente os eventos registrados na Região da AWS da trilha. Para obter mais informações sobre trilhas, consulte Criar uma trilha para a Conta da AWS e Criar uma trilha para uma organização no Guia do usuário do AWS CloudTrail.

Uma cópia dos seus eventos de gerenciamento em andamento pode ser entregue no bucket do Amazon S3 sem nenhum custo via CloudTrail com a criação de uma trilha. No entanto, há cobranças de armazenamento do Amazon S3. Para obter mais informações sobre o preço do CloudTrail, consulte AWS CloudTrailPreço do. Para receber informações sobre a definição de preço do Amazon S3, consulte Definição de preço do Amazon S3.

Armazenamentos de dados de eventos do CloudTrail Lake

O CloudTrail Lake permite executar consultas baseadas em SQL em seus eventos. O CloudTrail Lake converte eventos existentes em formato JSON baseado em linhas para o formato Apache ORC. O ORC é um formato colunar de armazenamento otimizado para recuperação rápida de dados. Os eventos são agregados em armazenamentos de dados de eventos, que são coleções imutáveis de eventos baseados nos critérios selecionados com a aplicação de seletores de eventos avançados. Os seletores que você aplica a um armazenamento de dados de eventos controlam quais eventos persistem e estão disponíveis para você consultar. Para obter mais informações sobre o CloudTrail Lake, consulte Trabalhar com o AWS CloudTrail Lake, no Guia do usuário do AWS CloudTrail.

Os armazenamentos de dados de eventos e consultas do CloudTrail Lake incorrem em custos. Ao criar um armazenamento de dados de eventos, você escolhe a opção de preço que deseja usar para ele. A opção de preço determina o custo para a ingestão e para o armazenamento de eventos, e o período de retenção padrão e máximo para o armazenamento de dados de eventos. Para obter mais informações sobre o preço do CloudTrail, consulte AWS CloudTrailPreço do.

Eventos de gerenciamento do API Gateway no CloudTrail

Os Eventos de gerenciamento fornecem informações sobre operações de gerenciamento executadas em recursos na sua Conta da AWS. Elas também são conhecidas como operações de plano de controle. Por padrão, o CloudTrail registra eventos de gerenciamento em logs.

O Amazon API Gateway registra em log todas as ações do API Gateway como eventos de gerenciamento, exceto TestInvokeAuthorizer e TestInvokeMethod. Para encontrar uma lista das ações do Amazon API Gateway que o API Gateway registra em log no CloudTrail, consulte Amazon API Gateway API Reference.

Exemplo de evento do API Gateway

Um evento representa uma única solicitação de qualquer origem e inclui informações sobre a operação solicitada, a data e a hora da operação da API, os parâmetros de solicitação etc. Os arquivos de log do CloudTrail não são um rastreamento de pilha ordenada de chamadas de API pública, portanto não são exibidos em uma ordem específica.

O seguinte exemplo mostra uma evento do CloudTrail que demonstra a ação GetResource do API Gateway:

{ Records: [ { eventVersion: "1.03", userIdentity: { type: "Root", principalId: "AKIAI44QH8DHBEXAMPLE", arn: "arn:aws:iam::123456789012:root", accountId: "123456789012", accessKeyId: "AKIAIOSFODNN7EXAMPLE", sessionContext: { attributes: { mfaAuthenticated: "false", creationDate: "2015-06-16T23:37:58Z" } } }, eventTime: "2015-06-17T00:47:28Z", eventSource: "apigateway.amazonaws.com", eventName: "GetResource", awsRegion: "us-east-1", sourceIPAddress: "203.0.113.11", userAgent: "example-user-agent-string", requestParameters: { restApiId: "3rbEXAMPLE", resourceId: "5tfEXAMPLE", template: false }, responseElements: null, requestID: "6d9c4bfc-148a-11e5-81b6-7577cEXAMPLE", eventID: "4d293154-a15b-4c33-9e0a-ff5eeEXAMPLE", readOnly: true, eventType: "AwsApiCall", recipientAccountId: "123456789012" }, ... additional entries ... ] }

Para obter informações sobre o conteúdo dos registros do CloudTrail, consulte Conteúdo dos registros do CloudTrail no Guia do usuário do AWS CloudTrail.