Você está satisfeito com a sua fatura do CloudTrail? Se essa pergunta já passou pela sua cabeça, este artigo é para você. Vamos explorar os motivos que podem estar elevando seus custos do AWS CloudTrail e discutir estratégias para mantê-los sob controle.
Introdução
O AWS CloudTrail é um serviço essencial que oferece grande valor ao ecossistema AWS, proporcionando auditoria, monitoramento de segurança e solução de problemas operacionais através do rastreamento da atividade do usuário e das chamadas de API. No entanto, ele pode se tornar caro rapidamente, especialmente porque rastreia todas as atividades em uma conta ou organização AWS e gera logs de auditoria.
Para evitar configurações inadequadas e garantir a conformidade com o menor custo possível, é fundamental entender como a AWS realiza a cobrança. Vamos entender como você pode economizar nos custos do AWS CloudTrail.
O Paradigma Serverless
O AWS CloudTrail é um serviço serverless, ou seja, totalmente gerenciado, que registra automaticamente a atividade da API da AWS e a armazena no Amazon S3 ou nos logs do CloudWatch. A AWS cuida de tudo nos bastidores, eliminando a necessidade de provisionar ou gerenciar servidores.
O conceito de serverless vai além da ausência de servidores físicos. Ele engloba princípios como a não necessidade de gerenciamento de infraestrutura e um modelo de preços pay-per-use (pague apenas pelo que usar). A complexidade reside neste último ponto: a primeira cópia dos trails é gratuita, mas as cópias adicionais geram custos. É aqui que os gastos podem aumentar consideravelmente.
Precificação do CloudTrail
Para entender como os clientes da AWS pagam pelo CloudTrail, vamos focar nos Trails, que são o tema principal deste artigo. A página de preços do CloudTrail também detalha informações sobre o Lake e o Insights, mas não abordaremos esses tópicos agora.
- Para management events (eventos de gerenciamento) entregues ao S3, o custo é de US$ 2,00 por 100.000 eventos entregues (após a primeira cópia gratuita).
- Para data events (eventos de dados) entregues ao S3, o custo é de US$ 0,10 por 100.000 eventos entregues.
- Para network activity events (eventos de atividade de rede) entregues ao S3, o custo é de US$ 0,10 por 100.000 eventos entregues.
É importante lembrar que as taxas do Amazon S3 são aplicadas separadamente e não estão incluídas nesta análise. Analisando os preços e comparando com os trails em sua conta AWS, é possível identificar rapidamente a origem dos custos do AWS CloudTrail elevados.
Trails Duplicados e os Custos do AWS CloudTrail
A frase chave na precificação é “após a primeira cópia gratuita”. O que isso significa? Imagine que você configurou organization trails (trails de organização) em todas as contas de membros, enviando esses trails para um bucket S3 em uma conta de registro centralizada. Para entregar os mesmos eventos a diferentes grupos (desenvolvedores, equipe de segurança, auditores), você também criou trails nas contas individuais.
Embora seja um caso de uso válido, essa duplicação pode ser cara. A primeira cópia dos eventos é gratuita, mas as demais são cobradas, gerando a métrica PaidEventsRecorded, que é como a AWS calcula os custos do AWS CloudTrail.
Em um cenário hipotético, imagine um ambiente AWS que gera 5 milhões de management events entregues ao S3 por mês:
- O primeiro trail, entregue a um bucket S3 acessível aos desenvolvedores, é gratuito.
- O segundo trail, entregue a um bucket S3 acessível à equipe de segurança, custará US$ 100 (5.000.000 / 100.000 * US$ 2,00 = US$ 100).
- O terceiro trail, entregue a um bucket S3 acessível à equipe de auditoria, também custará US$ 100 (5.000.000 / 100.000 * US$ 2,00 = US$ 100).
No total, esses trails duplicados custam US$ 200. Mas será que existe uma maneira de reduzir esses custos sem comprometer a conformidade e o princípio do menor privilégio?
Para evitar custos desnecessários da métrica PaidEventsRecorded, você pode remover os trails criados nas contas específicas e manter o organization trail. Dessa forma, todos os logs de management events continuam sendo entregues a um bucket S3 centralizado, mas o acesso pode ser controlado por meio de funções IAM (IAM roles).
Por exemplo, para conceder acesso aos desenvolvedores em suas contas específicas dentro da organização, você pode criar uma IAM role que será assumida pelos desenvolvedores de uma conta específica, permitindo que eles acessem apenas o prefixo do bucket dos trails de sua conta. A política ficaria semelhante a esta:
{
"Effect": "Allow"
"Resource": "arn:aws:s3:::organization-trail-bucket/AWSLogs/OU_ID/ACCOUNT_ID/*",
"Action": [
"s3:Get*",
"s3:HeadObject",
"s3:List*",
"s3:RestoreObject"
],
},
{
"Effect": "Allow"
"Resource": "arn:aws:s3:::organization-trail-bucket",
"Action": "s3:ListBucket",
"Condition": {
"StringLike": {
"s3:prefix": [
"AWSLogs/OU_ID/ACCOUNT_ID/*"
]
}
},
}
Ao manter o organization trail entregando logs a um bucket S3 centralizado e controlar o acesso via IAM roles, é possível eliminar os custos dos trails duplicados e otimizar os custos do AWS CloudTrail.
Data Events
Os data events são um pouco mais complexos que os management events, pois também são pagos quando entregues ao S3. Como não há cópias gratuitas (sempre incorrem em custos desde a primeira cópia) e podem gerar muito mais logs de auditoria, reduzir os custos é mais difícil. Eles geram a métrica DataEventsRecorded, que é usada pela AWS para cobrança.
Os data events são importantes para fins de auditoria e conformidade. No entanto, vale a pena discutir com a equipe de auditoria ou responsável por esses logs se eles são realmente necessários, de acordo com as políticas definidas pela organização.
A AWS recomenda “filtrar eventos do AWS KMS ou da Amazon RDS Data API selecionando Exclude AWS KMS events ou Exclude Amazon RDS Data API events nas páginas Create trail ou Update trail”. Essa ação pode reduzir o número de logs gerados pelos data events e, consequentemente, seus custos do AWS CloudTrail.
Monitorando os Custos do CloudTrail
A console do Cost Explorer oferece uma visão geral das métricas PaidEventsRecorded e DataEventsRecorded, permitindo acompanhar o aumento ou a diminuição de seus custos ao longo do tempo. Você pode selecionar as métricas no filtro “Usage Type”:
Gerenciar os custos do AWS CloudTrail de forma eficaz exige uma compreensão clara da estrutura de preços e a identificação de áreas onde as despesas podem ser reduzidas. Evitar trails duplicados e usar IAM roles para controlar o acesso a um bucket S3 centralizado são medidas importantes para otimizar os custos do AWS CloudTrail.
Para os data events, considere filtrar logs menos críticos para reduzir custos. O monitoramento regular dessas despesas com ferramentas como o Cost Explorer ajuda a acompanhar e gerenciar os gastos com o CloudTrail de forma mais eficiente, garantindo a conformidade sem gastos excessivos.
Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.
Via dev.to