Gravar chamadas de API do Step Functions com o AWS CloudTrail
O AWS Step Functions é 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 de API do Step Functions como eventos. As chamadas capturadas incluem as chamadas do console do Step Functions e as chamadas de código para as operações de API do Step Functions. Ao usar informações coletadas pelo CloudTrail, é possível determinar a solicitação feita ao Step Functions, 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 o seguinte:
-
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 um perfil ou de um usuário federado.
-
Se a solicitação foi feita por outro AWS service (Serviço da AWS).
Quando a Conta da AWS é criada, o CloudTrail torna-se ativo nela 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 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 Console de gerenciamento da AWS 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. Ao criar uma trilha de região única, é possível 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 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ços do Amazon S3, consulte Definição de preços do Amazon S3 . - Armazenamentos de dados de eventos do CloudTrail Lake
-
O CloudTrail Lake permite executar consultas baseadas em SQL nos 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 aplicados a um armazenamento de dados de eventos controlam quais eventos persistem e estão disponíveis para consulta. 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 no CloudTrail
Os Eventos de dados fornecem informações sobre as operações de recursos realizadas em um recurso (por exemplo, leitura ou gravação em um objeto do Amazon S3). 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 Step Functions usando o console do CloudTrail, a AWS CLI ou operações de API do CloudTrail. Para obter mais informações sobre como registrar eventos de dados em log, consulte Registrar eventos de dados com o Console de gerenciamento da AWS e Registrar eventos de dados com a AWS Command Line Interface no Guia do usuário do AWS CloudTrail.
A tabela a seguir lista os tipos de recurso do Step Functions para o qual você pode registrar em log eventos de dados. A coluna Tipo de evento de dados 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.
É 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.
| Tipo de evento de dados | valor resources.type | APIs de dados registradas no CloudTrail |
|---|---|---|
| Máquina de estado do Step Functions |
AWS::StepFunctions::StateMachine
|
|
| Atividade do Step Functions | AWS::StepFunctions::Activity |
|
Eventos de gerenciamento 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 ambiente de gerenciamento. Por padrão, o CloudTrail registra eventos de gerenciamento em logs.
State Machine (Máquina de estado
Alias de máquina de estado
Versão da máquina de estado
Execuções
Atividade
Token de tarefa
MapRun
Tags da
Exemplos de evento
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úblicas, portanto não são exibidos em uma ordem específica.
O exemplo a seguir mostra um evento de dados do CloudTrail que demonstra InvokeHTTPEndpoint.
{
"eventVersion": "1.09",
"userIdentity": {
"accountId": "account-id",
"invokedBy": "states.amazonaws.com"
},
"eventTime": "2024-05-01T01:23:45Z",
"eventSource": "states.amazonaws.com",
"eventName": "InvokeHTTPEndpoint",
"awsRegion": "us-east-1",
"sourceIPAddress": "states.amazonaws.com",
"userAgent": "states.amazonaws.com",
"requestParameters": null,
"responseElements": null,
"eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
"readOnly": false,
"resources": [
{
"accountId": "account-id",
"type": "AWS::StepFunctions::StateMachine",
"ARN": "arn:aws:states:region:account-id:stateMachine:ExampleStateMachine"
}
],
"eventType": "AwsServiceEvent",
"managementEvent": false,
"recipientAccountId": "account-id",
"serviceEventDetails": {
"httpMethod": "GET",
"httpEndpoint": "https://example.com"
},
"eventCategory": "Data"
}
O exemplo a seguir mostra um evento de gerenciamento do CloudTrail que demonstra a operação CreateStateMachine.
{
"eventVersion": "1.08",
"userIdentity": {
"type": "IAMUser",
"principalId": "AIDAJYDLDBVBI4EXAMPLE",
"arn": "arn:aws:iam::account-id:user/test-user",
"accountId": "account-id",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"userName": "test-user"
},
"eventTime": "2024-05-01T01:23:45Z",
"eventSource": "states.amazonaws.com",
"eventName": "CreateStateMachine",
"awsRegion": "region",
"sourceIPAddress": "AWS Internal",
"userAgent": "AWS Internal",
"requestParameters": {
"name": "MyStateMachine",
"definition": "HIDDEN_DUE_TO_SECURITY_REASONS",
"roleArn": "arn:aws:iam::account-id:role/MyStateMachineRole",
"type": "STANDARD",
"loggingConfiguration": {
"level": "OFF",
"includeExecutionData": false
},
"tags": [],
"tracingConfiguration": {
"enabled": false
},
"publish": false
},
"responseElements": {
"stateMachineArn": "arn:aws:states:region:account-id:stateMachine:MyStateMachine",
"creationDate": "May 1, 2024 1:23:45 AM"
},
"requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
"eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"readOnly": false,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "account-id",
"eventCategory": "Management"
}
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.