Protokollieren von Aufrufen der Amazon-RDS-Daten-API mit AWS CloudTrail - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Protokollieren von Aufrufen der Amazon-RDS-Daten-API mit AWS CloudTrail

RDS-Daten-API (Daten-API) ist in AWS CloudTrail integriert. Hierbei handelt es sich um einen Service, der eine Aufzeichnung der Aktionen bereitstellt, die von einem Benutzer, einer Rolle oder einem AWS-Service in der Daten-API durchgeführt wurden. CloudTrail erfasst alle API-Aufrufe für die Daten-API als Ereignisse, einschließlich Aufrufe von der Amazon-RDS-Konsole und von Codeaufrufen an Daten-API-Vorgänge. Wenn Sie einen Trail erstellen, können Sie die kontinuierliche Bereitstellung von CloudTrail-Ereignissen an einen Amazon S3-Bucket, einschließlich Ereignisse für Data API aktivieren. Mit den von CloudTrail gesammelten Daten können Sie viele Informationen bestimmen. Diese Informationen umfassen die Anforderung an Data API, die IP-Adresse, von der die Anforderung gestellt wurde, wer die Anforderung gestellt hat, wann sie gestellt wurde, und zusätzliche Details.

Weitere Informationen zu CloudTrail finden Sie im AWS CloudTrail-Benutzerhandbuch.

Arbeiten mit Data API-Informationen in CloudTrail

CloudTrail wird beim Erstellen Ihres AWS-Kontos für Sie aktiviert. Wenn eine unterstützte Aktivität (Verwaltungsereignisse) in der Daten-API auftritt, wird diese in einem CloudTrail-Ereignisprotokoll zusammen mit anderen AWS-Serviceereignissen im Ereignisverlauf aufgezeichnet. Sie können die neusten Verwaltungsereignisse in Ihrem AWS-Konto anzeigen, suchen und herunterladen. Weitere Informationen finden Sie unter Arbeiten mit dem CloudTrail-Ereignisverlauf im AWS CloudTrail-Benutzerhandbuch.

Erstellen Sie für eine fortlaufende Aufzeichnung der Ereignisse in Ihrem AWS-Konto, einschließlich Ereignissen für Data API, einen Trail. Ein Trail ermöglicht es CloudTrail, Protokolldateien in einem Amazon-S3-Bucket bereitzustellen. Wenn Sie einen Trail in der Konsole anlegen, gilt dieser für alle AWS-Regionen. Der Trail protokolliert Ereignisse aus allen AWS-Regionen in der AWS-Partition und stellt die Protokolldateien in dem Amazon-S3-Bucket bereit, den Sie angeben. Darüber hinaus können Sie andere AWS-Services konfigurieren, um die in den CloudTrail-Protokollen erfassten Ereignisdaten weiter zu analysieren und entsprechend zu agieren. Weitere Informationen finden Sie in folgenden Themen im AWS CloudTrail-Benutzerhandbuch:

Alle Daten-API-Operationen werden von CloudTrail protokolliert und in der Referenz zur Datenservice-API von Amazon RDS dokumentiert. Zum Beispiel werden durch Aufrufe der BatchExecuteStatement-, BeginTransaction-, CommitTransaction- und ExecuteStatement-Operationen Einträge in den CloudTrail-Protokolldateien generiert.

Jeder Ereignis- oder Protokolleintrag enthält Informationen zu dem Benutzer, der die Anforderung generiert hat. Die Identitätsinformationen unterstützen Sie bei der Ermittlung der folgenden Punkte:

  • Ob die Anforderung mit Root- oder -Benutzeranmeldeinformationen ausgeführt wurde.

  • Gibt an, ob die Anforderung mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen Verbundbenutzer gesendet wurde.

  • Ob die Anforderung aus einem anderen AWS-Service gesendet wurde

Weitere Informationen finden Sie unter CloudTrail-Element userIdentity.

Einschließen und Ausschließen von Daten-API-Ereignissen aus einem AWS CloudTrail-Trail

Die meisten Daten-API-Benutzer verlassen sich auf die Ereignisse in einem AWS CloudTrail-Trail, um eine Aufzeichnung der Daten-API-Operationen bereitzustellen. Die Ereignisdaten geben weder den Namen der Datenbank noch den Namen des Schemas oder die SQL-Anweisungen in Anforderungen an die Daten-API preis. Wenn Sie jedoch wissen, welcher Benutzer zu einem bestimmten Zeitpunkt eine Typ von Aufruf für einen bestimmten DB-Cluster durchgeführt hat, kann dies dazu beitragen, anomale Zugriffsmuster zu erkennen.

Einschließen von Daten-API-Ereignissen in einen AWS CloudTrail-Trail

Für Aurora PostgreSQL Serverless v2 und bereitgestellte Datenbanken werden die folgenden Daten-API-Vorgänge als Datenereignisse in AWS CloudTrail protokolliert. Datenereignisse sind API-Operationen auf Datenebene mit hohem Volumen, die CloudTrail standardmäßig nicht protokolliert. Für Datenereignisse werden zusätzliche Gebühren fällig. Weitere Informationen zu CloudTrail-Preisen finden Sie unter AWS CloudTrail – Preise.

Sie können die CloudTrail-Konsole, AWS CLI oder CloudTrail-API-Vorgänge verwenden, um diese Daten-API-Vorgänge zu protokollieren. Wählen Sie in der CloudTrail-Konsole RDS-Daten-API – DB-Cluster als Datenereignistyp aus. Weitere Informationen finden Sie unter Protokollieren von Datenereignissen mit der AWS-Managementkonsole im Benutzerhandbuch für AWS CloudTrail.

Führen Sie den Befehl aws cloudtrail put-event-selectors über die AWS CLI aus, um diese Daten-API-Vorgänge für Ihren Trail zu protokollieren. Um alle Daten-API-Ereignisse auf DB-Clustern zu protokollieren, geben Sie AWS::RDS::DBCluster als Ressourcentyp an. Im folgenden Beispiel werden alle Daten-API-Ereignisse auf DB-Clustern protokolliert. Weitere Informationen finden Sie unter Protokollieren von Datenereignissen mit der AWS Command Line Interface im Benutzerhandbuch für AWS CloudTrail.

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" ] } ] }'

Sie können erweiterte Ereignisauswahlen so konfigurieren, dass sie zusätzlich nach den Feldern readOnly, eventName, und resources.ARN gefiltert werden. Weitere Informationen zu diesen Feldern finden Sie unter AdvancedFieldSelector.

Ausschließen von Data API-Ereignissen aus einem AWS CloudTrail-Trail (nur Aurora Serverless v1)

Für Aurora Serverless v1 sind Daten-API-Aufrufe Verwaltungsereignisse. Standardmäßig sind alle Daten-API-Ereignisse in einem AWS CloudTrail Trail enthalten. Da die Daten-API jedoch eine große Anzahl von Ereignissen generieren kann, können Sie diese Ereignisse aus Ihrem CloudTrail-Trail ausschließen. Die Einstellung Amazon-RDS-Daten-API-Ereignisse ausschließen schließt alle Daten-API-Ereignisse aus dem Trail aus. Sie können bestimmte Daten-API-Ereignisse nicht ausschließen.

Zum Ausschließen von Daten-API-Ereignissen aus einem Trail führen Sie die folgenden Schritte aus:

  • Wählen Sie in der CloudTrail-Konsole die Ereignisse der Amazon-RDS-Daten-API ausschließen-Einstellung, wenn Sie Einen Trail anlegen oder einen Trail aktualisieren.

  • Verwenden Sie in der CloudTrail-API die Operation PutEventSelectors. Wenn Sie erweiterte Ereignisauswahlen verwenden, können Sie Daten-API-Ereignisse ausschließen, indem Sie das Feld eventSource so festlegen, dass es nicht gleich rdsdata.amazonaws.com ist. Wenn Sie erweiterte Ereignisauswahlen verwenden, können Sie Daten-API-Ereignisse ausschließen, indem Sie das Attribut ExcludeManagementEventSources auf rdsdata.amazonaws.com festlegen. Weitere Informationen finden Sie unter Protokollieren von Ereignissen über die AWS Command Line Interface im Benutzerhandbuch für AWS CloudTrail.

Warnung

Das Ausschließen von Daten-API-Ereignissen aus einem CloudTrail-Protokoll kann Daten-API-Aktionen verdecken. Seien Sie vorsichtig, wenn Sie Prinzipalen die cloudtrail:PutEventSelectors-Berechtigung erteilen, die zum Ausführen dieses Vorgangs erforderlich ist.

Sie können diesen Ausschluss jederzeit deaktivieren, indem Sie die Konsoleneinstellung oder die Ereignisselektoren für einen Trail ändern. Der Trail beginnt dann mit der Aufzeichnung von Daten-API-Ereignissen. Er kann jedoch keine Daten-API-Ereignisse wiederherstellen, die aufgetreten sind, während der Ausschluss wirksam war.

Wenn Sie Daten-API-Ereignisse mithilfe der Konsole oder API ausschließen, wird die resultierende PutEventSelectors-CloudTrail-API-Operation auch in den CloudTrail-Protokollen protokolliert. Wenn Daten-API-Ereignisse nicht in Ihren CloudTrail-Protokollen angezeigt werden, suchen Sie nach einem ExcludeManagementEventSources-Ereignis, bei dem das Attribut PutEventSelectors auf rdsdata.amazonaws.com gesetzt ist.

Weitere Informationen finden Sie unter Protokollieren von Managementereignissen für Trails im AWS CloudTrail-Benutzerhandbuch.

Grundlegendes zu Data API-Protokolldateieinträgen

Ein Trail ist eine Konfiguration, durch die Ereignisse als Protokolldateien an den von Ihnen angegebenen Amazon-S3-Bucket übermittelt werden. CloudTrail-Protokolldateien können einen oder mehrere Einträge enthalten. Ein Ereignis stellt eine einzelne Anfrage aus einer beliebigen Quelle dar und enthält unter anderem Informationen über die angeforderte Aktion, das Datum und die Uhrzeit der Aktion sowie über die Anfrageparameter. CloudTrail-Protokolleinträge sind kein geordnetes Stack-Trace der öffentlichen API-Aufrufe und erscheinen daher in keiner bestimmten Reihenfolge.

Aurora PostgreSQL Serverless v2 und bereitgestellt

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der den ExecuteStatement-Vorgang für Aurora PostgreSQL Serverless v2 und bereitgestellte Datenbanken demonstriert: Für diese Datenbanken sind alle Daten-API-Ereignisse Datenereignisse, bei denen die Ereignisquelle rdsdataapi.amazonaws.com und der Ereignistyp RDS-Daten-Service lautet.

{ "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

Das folgende Beispiel zeigt, wie der vorherige Beispiel-CloudTrail-Protokolleintrag für Aurora Serverless v1 angezeigt wird. Für Aurora Serverless v1 sind alle Ereignisse Verwaltungsereignisse, bei denen die Ereignisquelle rdsdata.amazonaws.com und der Ereignistyp AwsApiCall lautet.

{ "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" }