Registrar em log chamadas de API do AWS Systems Manager com o AWS CloudTrail - AWS Systems Manager

Registrar em log chamadas de API do AWS Systems Manager com o AWS CloudTrail

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

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 dados do Systems Manager no CloudTrail

Os eventos de dados fornecem informações sobre as operações de recursos realizadas em um recurso (por exemplo, criar ou abrir um canal de controle). Elas também são conhecidas como operações de plano de dados. Eventos de dados geralmente são atividades de alto volume. Por padrão, o CloudTrail não registra eventos de dados em log. O Histórico de eventos do CloudTrail não registra eventos de dados.

Há cobranças adicionais para eventos de dados. Para obter mais informações sobre os preços do CloudTrail, consulte Preços do AWS CloudTrail.

É possível registrar em log eventos de dados para os tipos de recurso do Systems Manager usando o console do CloudTrail, a AWS CLI ou operações da API do CloudTrail. Para obter mais informações sobre como registrar eventos de dados em log, consulte Registrar eventos de dados com o AWS Management Console e Registrar eventos de dados com a AWS Command Line Interface no Guia do usuário do AWS CloudTrail.

A tabela a seguir lista o tipo de recurso do Systems Manager para o qual é possível registrar eventos de dados em log. A coluna Tipo de evento de dados (console) mostra o valor a ser escolhido na lista Tipo de evento de dados no console do CloudTrail. A coluna do valor resources.type mostra o valor de resources.type que você especificaria ao configurar seletores de eventos avançados usando a AWS CLI ou as APIs do CloudTrail. A coluna APIs de dados registradas no CloudTrail mostra as chamadas de API registradas no CloudTrail para o tipo de recurso.

Tipo de evento de dados (console) valor resources.type APIs de dados registradas no CloudTrail
Systems Manager (Gerenciador de sistemas) AWS::SSMMessages::ControlChannel
  • CreateControlChannel

  • OpenControlChannel

Para obter mais informações, consulte Ações definidas pelo Amazon Message Gateway Service na Referência de autorização do serviço.

Nó gerenciado pelo Systems Manager AWS::SSM::ManagedNode
  • RequestManagedInstanceRoleToken: este evento é gerado quando o AWS Systems Manager Agent (SSM Agent) executado em um nó gerenciado pelo Systems Manager solicita credenciais do serviço de credenciais do Systems Manager.

Consulte mais informações sobre a operação RequestManagedInstanceRoleToken em Validar máquinas ativadas para ambiente híbrido usando uma impressão digital do hardware

É possível configurar seletores de eventos avançados para filtrar os campos eventName, readOnly e resources.ARN para registrar em log somente os eventos que são importantes para você. Para obter mais informações sobre esses campos, consulte AdvancedFieldSelector na Referência de API do AWS CloudTrail.

Eventos de gerenciamento do Systems Manager 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 CloudFront registra em log todas as operações do ambiente de gerenciamento no CloudTrail como eventos de gerenciamento. As operações de API do Systems Manager estão documentadas na Referência da API do AWS Systems Manager. Por exemplo, as chamadas para as ações CreateMaintenanceWindows, PutInventory, SendCommand e StartSession gerarão entradas nos arquivos de log do CloudTrail. Para obter um exemplo de como configurar o CloudTrail para monitorar uma chamada de API do Systems Manager, consulte Monitorar as atividades da sessão usando o Amazon EventBridge (console).

Exemplos de eventos do Systems Manager

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.

Exemplos de eventos de gerenciamento

Exemplo 1: DeleteDocument

O exemplo a seguir mostra um evento do CloudTrail que demonstra a operação DeleteDocument em um documento chamado example-Document na região Leste dos EUA (Ohio) (us-east-2).

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11", "arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-03-06T20:19:16Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:role/example-role", "accountId": "123456789012", "userName": "example-role" } } }, "eventTime": "2018-03-06T20:30:12Z", "eventSource": "ssm.amazonaws.com", "eventName": "DeleteDocument", "awsRegion": "us-east-2", "sourceIPAddress": "203.0.113.11", "userAgent": "example-user-agent-string", "requestParameters": { "name": "example-Document" }, "responseElements": null, "requestID": "86168559-75e9-11e4-8cf8-75d18EXAMPLE", "eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE", "resources": [ { "ARN": "arn:aws:ssm:us-east-2:123456789012:document/example-Document", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012", "eventCategory": "Management" }
Exemplo 2: StartConnection

O exemplo a seguir mostra um evento do CloudTrail para um usuário que inicia uma conexão RDP usando o Fleet Manager na região Leste dos EUA (Ohio) (us-east-2). A ação da API subjacente é StartConnection.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/exampleRole", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/exampleRole", "accountId": "123456789012", "userName": "exampleRole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-12-13T14:57:05Z", "mfaAuthenticated": "false" } } }, "eventTime": "2021-12-13T16:50:41Z", "eventSource": "ssm-guiconnect.amazonaws.com", "eventName": "StartConnection", "awsRegion": "us-east-2", "sourceIPAddress": "34.230.45.60", "userAgent": "example-user-agent-string", "requestParameters": { "AuthType": "Credentials", "Protocol": "RDP", "ConnectionType": "SessionManager", "InstanceId": "i-02573cafcfEXAMPLE" }, "responseElements": { "ConnectionArn": "arn:aws:ssm-guiconnect:us-east-2:123456789012:connection/fcb810cd-241f-4aae-9ee4-02d59EXAMPLE", "ConnectionKey": "71f9629f-0f9a-4b35-92f2-2d253EXAMPLE", "ClientToken": "49af0f92-d637-4d47-9c54-ea51aEXAMPLE", "requestId": "d466710f-2adf-4e87-9464-055b2EXAMPLE" }, "requestID": "d466710f-2adf-4e87-9464-055b2EXAMPLE", "eventID": "fc514f57-ba19-4e8b-9079-c2913EXAMPLE", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

Exemplos de dados de eventos

Exemplo 1: CreateControlChannel

O exemplo a seguir mostra um evento do CloudTrail que demonstra a operação CreateControlChannel.

{ "eventVersion":"1.08", "userIdentity":{ "type":"AssumedRole", "principalId":"AKIAI44QH8DHBEXAMPLE", "arn":"arn:aws:sts::123456789012:assumed-role/exampleRole", "accountId":"123456789012", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "sessionContext":{ "sessionIssuer":{ "type":"Role", "principalId":"AKIAI44QH8DHBEXAMPLE", "arn":"arn:aws:iam::123456789012:role/exampleRole", "accountId":"123456789012", "userName":"exampleRole" }, "attributes":{ "creationDate":"2023-05-04T23:14:50Z", "mfaAuthenticated":"false" } } }, "eventTime":"2023-05-04T23:53:55Z", "eventSource":"ssm.amazonaws.com", "eventName":"CreateControlChannel", "awsRegion":"us-east-1", "sourceIPAddress":"192.0.2.0", "userAgent":"example-agent", "requestParameters":{ "channelId":"44295c1f-49d2-48b6-b218-96823EXAMPLE", "messageSchemaVersion":"1.0", "requestId":"54993150-0e8f-4142-aa54-3438EXAMPLE", "userAgent":"example-agent" }, "responseElements":{ "messageSchemaVersion":"1.0", "tokenValue":"Value hidden due to security reasons.", "url":"example-url" }, "requestID":"54993150-0e8f-4142-aa54-3438EXAMPLE", "eventID":"a48a28de-7996-4ca1-a3a0-a51fEXAMPLE", "readOnly":false, "resources":[ { "accountId":"123456789012", "type":"AWS::SSMMessages::ControlChannel", "ARN":"arn:aws:ssmmessages:us-east-1:123456789012:control-channel/44295c1f-49d2-48b6-b218-96823EXAMPLE" } ], "eventType":"AwsApiCall", "managementEvent":false, "recipientAccountId":"123456789012", "eventCategory":"Data" }
Exemplo 2: RequestManagedInstanceRoleToken

O exemplo a seguir mostra um evento do CloudTrail que demonstra a operação RequestManagedInstanceRoleToken.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "123456789012:aws:ec2-instance:i-02854e4bEXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/aws:ec2-instance/i-02854e4bEXAMPLE", "accountId": "123456789012", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "123456789012:aws:ec2-instance", "arn": "arn:aws:iam::123456789012:role/aws:ec2-instance", "accountId": "123456789012", "userName": "aws:ec2-instance" }, "attributes": { "creationDate": "2023-08-27T03:34:46Z", "mfaAuthenticated": "false" }, "ec2RoleDelivery": "2.0" } }, "eventTime": "2023-08-27T03:37:15Z", "eventSource": "ssm.amazonaws.com", "eventName": "RequestManagedInstanceRoleToken", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "Apache-HttpClient/UNAVAILABLE (Java/1.8.0_362)", "requestParameters": { "fingerprint": "i-02854e4bf85EXAMPLE" }, "responseElements": null, "requestID": "2582cced-455b-4189-9b82-7b48EXAMPLE", "eventID": "7f200508-e547-4c27-982d-4da0EXAMLE", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::SSM::ManagedNode", "ARN": "arn:aws:ec2:us-east-1:123456789012:instance/i-02854e4bEXAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "123456789012", "eventCategory": "Data" }

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.