Registro em log das chamadas de API do Amazon EC2 usando o AWS CloudTrail
A API do Amazon EC2 está integrada 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 todas as chamadas de API do Amazon EC2 como eventos. As chamadas capturadas incluem as chamadas feitas pelo console. Ao usar as informações coletadas pelo CloudTrail, você pode determinar a solicitação que foi feita à API do Amazon EC2, o endereço IP do qual a solicitação foi feita e quando ela foi feita.
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 do 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 os preços do CloudTrail, consulte Preços do AWS CloudTrail
. 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 os preços do CloudTrail, consulte Preços do AWS CloudTrail
.
Eventos de gerenciamento da API do Amazon EC2 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.
Todas as ações da API do Amazon EC2 são registradas como eventos de gerenciamento. Para ver a lista das ações da API que são registradas no CloudTrail, consulte a referência de APIs do Amazon EC2. Por exemplo, chamadas para as ações RunInstances, DescribeInstances e StopInstances são registradas como eventos de gerenciamento.
Exemplos de eventos da API do Amazon EC2
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 arquivo de log a seguir mostra que um usuário encerrou uma instância.
{
"Records":[
{
"eventVersion":"1.03",
"userIdentity":{
"type":"Root",
"principalId":"123456789012",
"arn":"arn:aws:iam::123456789012:root",
"accountId":"123456789012",
"accessKeyId":"AKIAIOSFODNN7EXAMPLE",
"userName":"user"
},
"eventTime":"2016-05-20T08:27:45Z",
"eventSource":"ec2.amazonaws.com",
"eventName":"TerminateInstances",
"awsRegion":"us-west-2",
"sourceIPAddress":"198.51.100.1",
"userAgent":"aws-cli/1.10.10 Python/2.7.9 Windows/7botocore/1.4.1",
"requestParameters":{
"instancesSet":{
"items":[{
"instanceId":"i-1a2b3c4d"
}]
}
},
"responseElements":{
"instancesSet":{
"items":[{
"instanceId":"i-1a2b3c4d",
"currentState":{
"code":32,
"name":"shutting-down"
},
"previousState":{
"code":16,
"name":"running"
}
}]
}
},
"requestID":"be112233-1ba5-4ae0-8e2b-1c302EXAMPLE",
"eventID":"6e12345-2a4e-417c-aa78-7594fEXAMPLE",
"eventType":"AwsApiCall",
"recipientAccountId":"123456789012"
}
]
}
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.
Auditar conexões realizadas com o EC2 Instance Connect
Você pode usar o AWS CloudTrail para auditar os usuários que se conectam às instâncias por meio do EC2 Instance Connect.
Para auditar a atividade do SSH por meio do EC2 Instance Connect usando o console do AWS CloudTrail
-
Abra o console do CloudTrail em https://console.aws.amazon.com/cloudfront/
. -
Verifique se você está na região correta.
-
No painel de navegação, selecione Event history (Histórico de eventos).
-
Para Filter (Filtro), selecione Event source (Fonte do evento), ec2-instance-connect.amazonaws.com.
-
(Opcional) Para Time range (Intervalo de tempo), selecione um intervalo de tempo.
-
Selecione o ícone Refresh events (Atualizar eventos).
-
A página exibe os eventos que correspondem às chamadas de API de SendSSHPublicKey. Expanda um evento usando a seta para visualizar detalhes adicionais, como nome de usuário e chave de acesso da AWS usada para fazer a conexão SSH e o endereço IP de origem.
-
Para exibir todas as informações do evento no formato JSON, selecione View event (Exibir evento). O campo requestParameters contém o ID da instância de destino, o nome do usuário do sistema operacional e a chave pública usada para fazer a conexão SSH.
{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEFGONGNOMOOCB6XYTQEXAMPLE", "arn": "arn:aws:iam::1234567890120:user/IAM-friendly-name", "accountId": "123456789012", "accessKeyId": "ABCDEFGUKZHNAW4OSN2AEXAMPLE", "userName": "IAM-friendly-name", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-09-21T21:37:58Z"} } }, "eventTime": "2018-09-21T21:38:00Z", "eventSource": "ec2-instance-connect.amazonaws.com", "eventName": "SendSSHPublicKey ", "awsRegion": "us-west-2", "sourceIPAddress": "123.456.789.012", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": { "instanceId": "i-0123456789EXAMPLE", "osUser": "ec2-user", "SSHKey": { "publicKey": "ssh-rsa ABCDEFGHIJKLMNO01234567890EXAMPLE" } }, "responseElements": null, "requestID": "1a2s3d4f-bde6-11e8-a892-f7ec64543add", "eventID": "1a2w3d4r5-a88f-4e28-b3bf-30161f75be34", "eventType": "AwsApiCall", "recipientAccountId": "0987654321" }
Se você tiver configurado a conta da AWS para coletar eventos do CloudTrail em um bucket do S3, poderá fazer download e auditar as informações de forma programática. Para obter mais informações, consulte Obter e visualizar arquivos de log do CloudTrail no Guia do usuário do AWS CloudTrail.