Registrar em log chamadas de API do MemoryDB com o AWS CloudTrail - Amazon MemoryDB

Registrar em log chamadas de API do MemoryDB com o AWS CloudTrail

O MemoryDB é integrado ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, perfil ou serviço da AWS no MemoryDB. O CloudTrail captura todas as chamadas de API para o MemoryDB como eventos, incluindo as chamadas feitas pelo console do MemoryDB e as chamadas de código para operações de API do MemoryDB. Se você criar uma trilha, poderá habilitar a entrega contínua de eventos do CloudTrail para um bucket do Amazon S3, incluindo eventos do MemoryDB. Se você não configurar uma trilha, ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Histórico de eventos. Usando as informações coletadas pelo CloudTrail, é possível determinar a solicitação feita para o MemoryDB, o endereço IP do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita, além de outros detalhes.

Para saber mais sobre o CloudTrail, consulte o AWS CloudTrailGuia do usuário.

Informações do MemoryDB no CloudTrail

O CloudTrail é habilitado em sua conta AWS ao criá-la. Quando ocorre uma atividade no MemoryDB, ela é registrada em um evento do CloudTrail com outros eventos de serviço da AWS em Histórico de eventos. É possível visualizar, pesquisar e baixar eventos recentes em sua AWS conta. Para obter mais informações, consulte Visualização de eventos com o histórico de eventos do CloudTrail.

Para um registro contínuo de eventos em sua conta da AWS, incluindo eventos para o MemoryDB, crie uma trilha. Uma trilha permite que o CloudTrail entregue arquivos de log a um bucket do Amazon S3. Por padrão, ao criar uma trilha no console, ela é aplicada a todas as regiões da . A trilha registra em log eventos de todas as regiões na partição da AWS e entrega os arquivos de log para o bucket do Amazon S3 especificado por você. Além disso, é possível configurar outros AWS serviços para melhor analisar e agir de acordo com dados coletados do evento nos logs CloudTrail. Para obter mais informações, consulte:

Todas as ações do MemoryDB são registradas em log pelo CloudTrail. Por exemplo, as chamadas às ações CreateCluster, DescribeClusters e UpdateCluster geram entradas nos arquivos de log do 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 usuário 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 serviço.

Para obter mais informações, consulte o Elemento userIdentity do CloudTrail.

Noções básicas das entradas do arquivo de log do MemoryDB

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log a um bucket Amazon S3 especificado. Os arquivos de log CloudTrail contêm uma ou mais entradas de log. Um evento representa uma única solicitação de qualquer origem e inclui informações sobre a ação solicitada, a data e a hora da ação, os parâmetros de solicitação e assim por diante. Os arquivos de log do CloudTrail não são um rastreamento de pilha ordenada das chamadas de API pública. Dessa forma, eles não são exibidos em uma ordem específica.

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação CreateCluster.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "EKIAUAXQT3SWDEXAMPLE", "arn": "arn:aws:iam::123456789012:user/john", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "john" }, "eventTime": "2021-07-10T17:56:46Z", "eventSource": "memorydb.amazonaws.com", "eventName": "CreateCluster", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.01", "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.create-cluster", "requestParameters": { "clusterName": "memorydb-cluster", "nodeType": "db.r6g.large", "subnetGroupName": "memorydb-subnet-group", "aCLName": "open-access" }, "responseElements": { "cluster": { "name": "memorydb-cluster", "status": "creating", "numberOfShards": 1, "availabilityMode": "MultiAZ", "clusterEndpoint": { "port": 6379 }, "nodeType": "db.r6g.large", "engineVersion": "6.2", "enginePatchVersion": "6.2.6", "parameterGroupName": "default.memorydb-redis6", "parameterGroupStatus": "in-sync", "subnetGroupName": "memorydb-subnet-group", "tLSEnabled": true, "aRN": "arn:aws:memorydb:us-east-1:123456789012:cluster/memorydb-cluster", "snapshotRetentionLimit": 0, "maintenanceWindow": "tue:06:30-tue:07:30", "snapshotWindow": "09:00-10:00", "aCLName": "open-access", "dataTiering": "false", "autoMinorVersionUpgrade": true } }, "requestID": "506fc951-9ae2-42bb-872c-98028dc8ed11", "eventID": "2ecf3dc3-c931-4df0-a2b3-be90b596697e", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação DescribeClusters. Observe que, para todas as chamadas Describe e List do MemoryDB (Describe* e List*), a seção responseElements é removida e aparece como null.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "EKIAUAXQT3SWDEXAMPLE", "arn": "arn:aws:iam::123456789012:user/john", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "john" }, "eventTime": "2021-07-10T18:39:51Z", "eventSource": "memorydb.amazonaws.com", "eventName": "DescribeClusters", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.01", "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.describe-clusters", "requestParameters": { "maxResults": 50, "showShardDetails": true }, "responseElements": null, "requestID": "5e831993-52bb-494d-9bba-338a117c2389", "eventID": "32a3dc0a-31c8-4218-b889-1a6310b7dd50", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

O exemplo a seguir mostra uma entrada de log do CloudTrail que registra uma ação UpdateCluster.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "EKIAUAXQT3SWDEXAMPLE", "arn": "arn:aws:iam::123456789012:user/john", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "john" }, "eventTime": "2021-07-10T19:23:20Z", "eventSource": "memorydb.amazonaws.com", "eventName": "UpdateCluster", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.01", "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.update-cluster", "requestParameters": { "clusterName": "memorydb-cluster", "snapshotWindow": "04:00-05:00", "shardConfiguration": { "shardCount": 2 } }, "responseElements": { "cluster": { "name": "memorydb-cluster", "status": "updating", "numberOfShards": 2, "availabilityMode": "MultiAZ", "clusterEndpoint": { "address": "clustercfg.memorydb-cluster.cde8da.memorydb.us-east-1.amazonaws.com", "port": 6379 }, "nodeType": "db.r6g.large", "engineVersion": "6.2", "EnginePatchVersion": "6.2.6", "parameterGroupName": "default.memorydb-redis6", "parameterGroupStatus": "in-sync", "subnetGroupName": "memorydb-subnet-group", "tLSEnabled": true, "aRN": "arn:aws:memorydb:us-east-1:123456789012:cluster/memorydb-cluster", "snapshotRetentionLimit": 0, "maintenanceWindow": "tue:06:30-tue:07:30", "snapshotWindow": "04:00-05:00", "autoMinorVersionUpgrade": true, "DataTiering": "false" } }, "requestID": "dad021ce-d161-4365-8085-574133afab54", "eventID": "e0120f85-ab7e-4ad4-ae78-43ba15dee3d8", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação CreateUser. Observe que, para chamadas do MemoryDB que contêm dados confidenciais, esses dados serão editados no evento correspondente do CloudTrail, conforme mostrado na seção requestParameters abaixo.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "EKIAUAXQT3SWDEXAMPLE", "arn": "arn:aws:iam::123456789012:user/john", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "john" }, "eventTime": "2021-07-10T19:56:13Z", "eventSource": "memorydb.amazonaws.com", "eventName": "CreateUser", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.01", "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.create-user", "requestParameters": { "userName": "memorydb-user", "authenticationMode": { "type": "password", "passwords": [ "HIDDEN_DUE_TO_SECURITY_REASONS" ] }, "accessString": "~* &* -@all +@read" }, "responseElements": { "user": { "name": "memorydb-user", "status": "active", "accessString": "off ~* &* -@all +@read", "aCLNames": [], "minimumEngineVersion": "6.2", "authentication": { "type": "password", "passwordCount": 1 }, "aRN": "arn:aws:memorydb:us-east-1:123456789012:user/memorydb-user" } }, "requestID": "ae288b5e-80ab-4ff8-989a-5ee5c67cd193", "eventID": "ed096e3e-16f1-4a23-866c-0baa6ec769f6", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }