Journalisation des appels d'API RDS Data avec AWS CloudTrail - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Journalisation des appels d'API RDS Data avec AWS CloudTrail

L'API de données RDS (API de données) est intégrée à AWS CloudTrail un service qui fournit un enregistrement des actions entreprises par un utilisateur, un rôle ou un AWS service dans l'API de données. CloudTrail capture tous les appels d'API pour l'API Data sous forme d'événements, y compris les appels depuis la console Amazon RDS et les appels de code vers les opérations de l'API de données. Si vous créez un suivi, vous pouvez activer la diffusion continue d' CloudTrail événements vers un compartiment Amazon S3, y compris des événements pour l'API de données. À l'aide des données collectées par CloudTrail, vous pouvez déterminer de nombreuses informations. Ces informations comprennent la demande qui a été faite à l'API de données, l'adresse IP à partir de laquelle la demande a été faite, qui a effectué la demande, quand elle a eu lieu, ainsi que des détails supplémentaires.

Pour en savoir plus CloudTrail, consultez le guide de AWS CloudTrail l'utilisateur.

Utilisation des informations de l'API de données dans CloudTrail

CloudTrail est activé sur votre AWS compte lorsque vous le créez. Lorsqu'une activité prise en charge (événements de gestion) se produit dans l'API de données, cette activité est enregistrée dans un CloudTrail événement avec d'autres événements de AWS service dans l'historique des événements. Vous pouvez consulter, rechercher et télécharger les derniers événements de gestion dans votre AWS compte. Pour plus d'informations, consultez la section Utilisation de l'historique des CloudTrail événements dans le guide de AWS CloudTrail l'utilisateur.

Pour un enregistrement continu des événements de votre AWS compte, y compris des événements relatifs à l'API Data, créez une trace. Un suivi permet CloudTrail de fournir des fichiers journaux à un compartiment Amazon S3. Par défaut, lorsque vous créez un parcours dans la console, celui-ci s'applique à toutes les AWS régions. Le journal enregistre les événements de toutes les AWS régions de la AWS partition et transmet les fichiers journaux au compartiment Amazon S3 que vous spécifiez. En outre, vous pouvez configurer d'autres AWS services pour analyser plus en détail les données d'événements collectées dans les CloudTrail journaux et agir en conséquence. Pour plus d'informations, consultez les rubriques suivantes dans le AWS CloudTrail Guide de l'utilisateur :

Toutes les opérations de l'API de données sont enregistrées CloudTrail et documentées dans la référence d'API du service de données Amazon RDS. Par exemple, les appels aux ExecuteStatement opérations BatchExecuteStatementBeginTransaction,CommitTransaction, et génèrent des entrées dans les fichiers CloudTrail journaux.

Chaque événement ou entrée de journal contient des informations sur la personne ayant initié la demande. Les informations relatives à l’identité permettent de déterminer les éléments suivants :

  • Si la demande a été effectuée avec les informations d’identification utilisateur racine ou .

  • Si la demande a été effectuée avec des informations d’identification de sécurité temporaires pour un rôle ou un utilisateur fédéré.

  • Si la demande a été faite par un autre AWS service.

Pour de plus amples informations, veuillez consulter l'élément userIdentity CloudTrail .

Inclure et exclure les événements de l'API de données d'un AWS CloudTrail historique

La plupart des utilisateurs de l'API de données s'appuient sur les événements AWS CloudTrail d'un suivi pour enregistrer les opérations de l'API de données. Les données d'événements ne révèlent pas le nom de la base de données, le nom du schéma ou les instructions SQL dans les demandes adressées à l'API Data. Cependant, le fait de savoir quel utilisateur a effectué un type d'appel contre un cluster de base de données spécifique à un moment donné peut aider à détecter les modèles d'accès anormaux.

Inclure les événements de l'API de données dans un AWS CloudTrail historique

Pour Aurora PostgreSQL Serverless v2 et les bases de données provisionnées, les opérations de l'API de données suivantes sont enregistrées en tant qu'événements de données. AWS CloudTrail Les événements de données sont des opérations d'API de plan de données à volume élevé qui CloudTrail ne sont pas enregistrées par défaut. Des frais supplémentaires s’appliquent pour les événements de données. Pour plus d'informations sur la CloudTrail tarification, consultez la section AWS CloudTrail Tarification.

Vous pouvez utiliser la CloudTrail console ou AWS CLI les opérations d' CloudTrail API pour enregistrer ces opérations d'API de données. Dans la CloudTrail console, choisissez RDS Data API - DB Cluster pour le type d'événement Data. Pour plus d'informations, consultez la section Enregistrement des événements liés aux données AWS Management Console dans le guide de AWS CloudTrail l'utilisateur.

À l'aide de AWS CLI, exécutez la aws cloudtrail put-event-selectors commande pour enregistrer ces opérations de l'API de données pour votre parcours. Pour enregistrer tous les événements de l'API de données sur les clusters de base de données, spécifiez AWS::RDS::DBCluster le type de ressource. L'exemple suivant enregistre tous les événements de l'API de données sur les clusters de base de données. Pour plus d'informations, consultez la section Enregistrement des événements liés aux données AWS Command Line Interface dans le guide de AWS CloudTrail l'utilisateur.

aws cloudtrail put-event-selectors --trail-name trail_name --advanced-event-selectors \ '{ "Name": "RDS Data API Selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::RDS::DBCluster" ] } ] }'

Vous pouvez configurer des sélecteurs d'événements avancés pour filtrer également readOnly les resources.ARN champs eventName, et. Pour plus d'informations sur ces champs, consultez AdvancedFieldSelector.

Exclure les événements de l'API de données AWS CloudTrail d'un historique (Aurora Serverless v1uniquement)

En effetAurora Serverless v1, les événements de l'API de données sont des événements de gestion. Par défaut, tous les événements de l'API de données sont inclus dans un AWS CloudTrail journal. Cependant, étant donné que l'API de données peut générer un grand nombre d'événements, vous souhaiterez peut-être exclure ces événements de votre CloudTrail suivi. Le paramètre Exclure les événements de l'API de données Amazon RDS exclut tous les événements de l'API de données du suivi. Vous ne pouvez pas exclure des événements spécifiques de l'API de données.

Pour exclure des événements d'API de données d'un journal d'activité, procédez comme suit :

  • Dans la CloudTrail console, choisissez le paramètre Exclure les événements de l'API Amazon RDS Data lorsque vous créez ou mettez à jour un suivi.

  • Dans l' CloudTrail API, utilisez l'PutEventSelectorsopération. Si vous utilisez des sélecteurs d'événements avancés, vous pouvez exclure les événements de l'API de données en définissant un eventSource champ différent derdsdata.amazonaws.com. Si vous utilisez des sélecteurs d'événements de base, vous pouvez exclure les événements de l'API de données en définissant la valeur de l'ExcludeManagementEventSourcesattribut sur. rdsdata.amazonaws.com Pour plus d'informations, consultez la section Enregistrement des événements AWS Command Line Interface à l'aide du guide de AWS CloudTrail l'utilisateur.

Avertissement

L'exclusion des événements de l'API de données d'un CloudTrail journal peut masquer les actions de l'API de données. Soyez prudent lorsque vous accordez aux principaux l'autorisation cloudtrail:PutEventSelectors nécessaire pour effectuer cette opération.

Vous pouvez désactiver cette exclusion à tout moment en modifiant le paramétrage de la console ou les sélecteurs d'événements pour un journal d'activité. Le journal d'activité commencera alors à enregistrer les événements d'API de données. Toutefois, il ne pourra pas récupérer les événements d'API de données survenus pendant que l'exclusion était effective.

Lorsque vous excluez des événements de l'API Data à l'aide de la console ou de l'API, l'opération d' CloudTrailPutEventSelectorsAPI qui en résulte est également enregistrée dans vos CloudTrail journaux. Si les événements de l'API de données n'apparaissent pas dans vos CloudTrail journaux, recherchez un PutEventSelectors événement dont l'ExcludeManagementEventSourcesattribut est défini surrdsdata.amazonaws.com.

Pour plus d'informations, consultez Journalisation des événements de gestion pour les journaux d'activité dans le Guide de l'utilisateur AWS CloudTrail .

Présentation des entrées des fichiers journaux de l'API de données

Un suivi est une configuration qui permet de transmettre des événements sous forme de fichiers journaux à un compartiment Amazon S3 que vous spécifiez. CloudTrail les fichiers journaux contiennent une ou plusieurs entrées de journal. Un événement représente une demande unique provenant de n'importe quelle source et inclut des informations sur l'action demandée, la date et l'heure de l'action, les paramètres de la demande, etc. CloudTrail les fichiers journaux ne constituent pas une trace ordonnée des appels d'API publics, ils n'apparaissent donc pas dans un ordre spécifique.

Aurora PostgreSQL Serverless v2 et provisionné

L'exemple suivant montre une entrée de CloudTrail journal qui illustre le ExecuteStatement fonctionnement d'Aurora PostgreSQL Serverless v2 et des bases de données provisionnées. Pour ces bases de données, tous les événements de l'API de données sont des événements de données dont la source est rdsdataapi.amazonaws.com et le type d'événement est Rds Data Service.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/johndoe", "accountId": "123456789012", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "johndoe" }, "eventTime": "2019-12-18T00:49:34Z", "eventSource": "rdsdataapi.amazonaws.com", "eventName": "ExecuteStatement", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/1.16.102 Python/3.7.2 Windows/10 botocore/1.12.92", "requestParameters": { "continueAfterTimeout": false, "database": "**********", "includeResultMetadata": false, "parameters": [], "resourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-database-1", "schema": "**********", "secretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:dataapisecret-ABC123", "sql": "**********" }, "responseElements": null, "requestID": "6ba9a36e-b3aa-4ca8-9a2e-15a9eada988e", "eventID": "a2c7a357-ee8e-4755-a0d0-aed11ed4253a", "eventType": "Rds Data Service", "recipientAccountId": "123456789012" }

Aurora Serverless v1

L'exemple suivant montre comment l'exemple d'entrée de CloudTrail journal précédent apparaît pourAurora Serverless v1. Car tous Aurora Serverless v1 les événements sont des événements de gestion dont la source est rdsdata.amazonaws.com et le type d'événement est. AwsApiCall

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/johndoe", "accountId": "123456789012", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "johndoe" }, "eventTime": "2019-12-18T00:49:34Z", "eventSource": "rdsdata.amazonaws.com", "eventName": "ExecuteStatement", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/1.16.102 Python/3.7.2 Windows/10 botocore/1.12.92", "requestParameters": { "continueAfterTimeout": false, "database": "**********", "includeResultMetadata": false, "parameters": [], "resourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-database-1", "schema": "**********", "secretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:dataapisecret-ABC123", "sql": "**********" }, "responseElements": null, "requestID": "6ba9a36e-b3aa-4ca8-9a2e-15a9eada988e", "eventID": "a2c7a357-ee8e-4755-a0d0-aed11ed4253a", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }