Monitorar chamadas de API do Amazon RDSno AWS CloudTrail
O AWS CloudTrail é um serviço da AWS que ajuda a auditar a conta da AWS. O AWS CloudTrail é ativado na sua conta da AWS quando ela é criada. Para obter mais informações sobre o CloudTrail, consulte o Guia do usuário do AWS CloudTrail.
Integração do CloudTrail com o Amazon RDS
Todas as ações do Amazon RDS são registradas em log pelo CloudTrail. O CloudTrail fornece um registro de ações executadas por um usuário, uma função ou um serviço da AWS no Amazon RDS.
Eventos do CloudTrail
O CloudTrail captura as chamadas de API do Amazon RDS como eventos. 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 eventos incluem as chamadas do console do Amazon RDS e as chamadas de código para as operações de API do Amazon RDS.
A atividade do Amazon RDS é registrada em um evento do CloudTrail em Event history (Histórico de eventos). Você pode usar o console do CloudTrail para visualizar os últimos 90 dias de eventos e de atividades de API registrados em uma região da AWS. Para obter mais informações, consulte Visualizar eventos com o histórico de eventos do CloudTrail.
Trilhas do CloudTrail
Para obter um registro contínuo de eventos na conta da AWS, incluindo eventos do Amazon RDS, crie uma trilha. Uma trilha é uma configuração que permite a entrega de eventos a um bucket do Amazon S3 especificado. O CloudTrail normalmente fornece os arquivos de log em até 15 minutos após uma atividade da conta.
nota
Se você não configurar uma trilha, ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Event history (Histórico de eventos).
É possível criar dois tipos de trilhas para uma conta da AWS: uma trilha que se aplica a todas as regiões ou uma trilha que se aplica a uma região. Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as regiões da .
Além disso, é possível configurar outros serviços da AWS para analisar mais ainda mais e agir com base nos dados de eventos coletados nos logs do CloudTrail. Para obter mais informações, consulte:
Entradas do arquivo de log do Amazon RDS
Os arquivos de log do CloudTrail contêm uma ou mais entradas de log. 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 CreateDBInstance
.
{ "eventVersion": "1.04", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/johndoe", "accountId": "123456789012", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "johndoe" }, "eventTime": "2018-07-30T22:14:06Z", "eventSource": "rds.amazonaws.com", "eventName": "CreateDBInstance", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/1.15.42 Python/3.6.1 Darwin/17.7.0 botocore/1.10.42", "requestParameters": { "enableCloudwatchLogsExports": [ "audit", "error", "general", "slowquery" ], "dBInstanceIdentifier": "test-instance", "engine": "mysql", "masterUsername": "myawsuser", "allocatedStorage": 20, "dBInstanceClass": "db.m1.small", "masterUserPassword": "****" }, "responseElements": { "dBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance", "storageEncrypted": false, "preferredBackupWindow": "10:27-10:57", "preferredMaintenanceWindow": "sat:05:47-sat:06:17", "backupRetentionPeriod": 1, "allocatedStorage": 20, "storageType": "standard", "engineVersion": "8.0.28", "dbInstancePort": 0, "optionGroupMemberships": [ { "status": "in-sync", "optionGroupName": "default:mysql-8-0" } ], "dBParameterGroups": [ { "dBParameterGroupName": "default.mysql8.0", "parameterApplyStatus": "in-sync" } ], "monitoringInterval": 0, "dBInstanceClass": "db.m1.small", "readReplicaDBInstanceIdentifiers": [], "dBSubnetGroup": { "dBSubnetGroupName": "default", "dBSubnetGroupDescription": "default", "subnets": [ { "subnetAvailabilityZone": {"name": "us-east-1b"}, "subnetIdentifier": "subnet-cbfff283", "subnetStatus": "Active" }, { "subnetAvailabilityZone": {"name": "us-east-1e"}, "subnetIdentifier": "subnet-d7c825e8", "subnetStatus": "Active" }, { "subnetAvailabilityZone": {"name": "us-east-1f"}, "subnetIdentifier": "subnet-6746046b", "subnetStatus": "Active" }, { "subnetAvailabilityZone": {"name": "us-east-1c"}, "subnetIdentifier": "subnet-bac383e0", "subnetStatus": "Active" }, { "subnetAvailabilityZone": {"name": "us-east-1d"}, "subnetIdentifier": "subnet-42599426", "subnetStatus": "Active" }, { "subnetAvailabilityZone": {"name": "us-east-1a"}, "subnetIdentifier": "subnet-da327bf6", "subnetStatus": "Active" } ], "vpcId": "vpc-136a4c6a", "subnetGroupStatus": "Complete" }, "masterUsername": "myawsuser", "multiAZ": false, "autoMinorVersionUpgrade": true, "engine": "mysql", "cACertificateIdentifier": "rds-ca-2015", "dbiResourceId": "db-ETDZIIXHEWY5N7GXVC4SH7H5IA", "dBSecurityGroups": [], "pendingModifiedValues": { "masterUserPassword": "****", "pendingCloudwatchLogsExports": { "logTypesToEnable": [ "audit", "error", "general", "slowquery" ] } }, "dBInstanceStatus": "creating", "publiclyAccessible": true, "domainMemberships": [], "copyTagsToSnapshot": false, "dBInstanceIdentifier": "test-instance", "licenseModel": "general-public-license", "iAMDatabaseAuthenticationEnabled": false, "performanceInsightsEnabled": false, "vpcSecurityGroups": [ { "status": "active", "vpcSecurityGroupId": "sg-f839b688" } ] }, "requestID": "daf2e3f5-96a3-4df7-a026-863f96db793e", "eventID": "797163d3-5726-441d-80a7-6eeb7464acd4", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }
Conforme mostrado no elemento userIdentity
no exemplo anterior, cada evento ou entrada de log 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 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 serviço da AWS.
Para obter mais informações sobre o userIdentity
, consulte o Elemento userIdentity do CloudTrail. Para obter mais informações sobre CreateDBInstance
e outras ações do Amazon RDS, consulte a Referência da API do Amazon RDS.