Aufrufe an Amazon-API-Gateway-APIs mit AWS CloudTrail protokollieren
Amazon API Gateway ist in AWS CloudTrail integriert, einem Service, der eine Aufzeichnung der von einem Benutzer, einer Rolle oder einem AWS-Service durchgeführten Aktionen bereitstellt. CloudTrail erfasst alle REST-API-Aufrufe für API Gateway als Ereignisse. Zu den erfassten Aufrufen gehören Aufrufe von der API-Gateway-Konsole sowie Code-Aufrufe an die API-Gateway-Service-APIs. Mit den von CloudTrail erfassten Informationen können Sie die an API Gateway gestellte Anfrage, die IP-Adresse, von der die Anfrage gestellt wurde, den Zeitpunkt der Anfrage und zusätzliche Details bestimmen.
Anmerkung
TestInvokeAuthorizer und TestInvokeMethod werden in CloudTrail nicht protokolliert.
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 Anfrage mit Anmeldeinformationen des Root-Benutzers oder des Benutzers gestellt wurde.
-
Die Anforderung wurde im Namen eines IAM-Identity-Center-Benutzers erstellt.
-
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.
Bei Kontoerstellung ist CloudTrail standardmäßig in AWS-Konto aktiviert und Sie haben automatisch Zugriff auf den CloudTrail-Ereignisverlauf. Der CloudTrail-Ereignisverlauf stellt eine anzeigbare, durchsuchbare, herunterladbare und unveränderliche Aufzeichnung der Verwaltungsereignisse der letzten 90 Tage in einer AWS-Region bereit. Weitere Informationen finden Sie unter Arbeiten mit dem CloudTrail-Ereignisverlauf im AWS CloudTrail-Benutzerhandbuch. Für die Anzeige des Eventverlaufs fallen keine CloudTrail-Gebühren an.
Erstellen Sie einen Trail oder einen Ereignisdatenspeicher in CloudTrail Lake, um Aktivitäten und Ereignisse in Ihrer AWS-Konto über 90 Tage hinaus fortlaufend aufzuzeichnen.
- CloudTrail-Trails
-
Ein Trail ermöglicht es CloudTrail, Protokolldateien in einem Amazon-S3-Bucket bereitzustellen. Trails, die mit der AWS Management Console erstellt wurden, sind multiregional. Sie können mithilfe von AWS CLI einen Einzel-Region- oder einen Multi-Region-Trail erstellen. Das Erstellen eines Multi-Region-Trails wird empfohlen, da Sie so die Aktivitäten in allen AWS-Regionen in Ihrem Konto erfassen. Wenn Sie einen Einzel-Region-Trail erstellen, können Sie nur die Ereignisse anzeigen, die im AWS-Region des Trails protokolliert wurden. Weitere Informationen zu Trails finden Sie unter Erstellen eines Trails für Ihr AWS-Konto und Erstellen eines Trails für eine Organisation im AWS CloudTrail-Benutzerhandbuch.
Sie können eine Kopie Ihrer laufenden Verwaltungsereignisse kostenlos von CloudTrail an Ihren Amazon-S3-Bucket senden, indem Sie einen Trail erstellen. Es fallen jedoch Speichergebühren für Amazon S3 an. Weitere Informationen zu CloudTrail-Preisen finden Sie unter AWS CloudTrail – Preise
. Informationen zu Amazon-S3-Preisen finden Sie unter Amazon S3-Preise . - CloudTrail-Lake-Ereignisdatenspeicher
-
Mit CloudTrail Lake können Sie SQL-basierte Abfragen zu Ihren Ereignissen ausführen. CloudTrail Lake konvertiert vorhandene Ereignisse im zeilenbasierten JSON-Format in das Apache ORC
-Format. ORC ist ein spaltenförmiges Speicherformat, das für den schnellen Abruf von Daten optimiert ist. Die Ereignisse werden in Ereignisdatenspeichern zusammengefasst, bei denen es sich um unveränderliche Sammlungen von Ereignissen handelt, die auf Kriterien basieren, die Sie mit Hilfe von erweiterten Ereignisselektoren auswählen. Die Selektoren, die Sie auf einen Ereignisdatenspeicher anwenden, steuern, welche Ereignisse bestehen bleiben und für Sie zur Abfrage verfügbar sind. Weitere Informationen zu CloudTrail Lake finden Sie unter Arbeiten mit AWS CloudTrail-Lake im AWS CloudTrail-Benutzerhandbuch. Für CloudTrail-Lake-Ereignisdatenspeicher und -abfragen fallen Gebühren an. Beim Erstellen eines Ereignisdatenspeichers wählen Sie die Preisoption aus, die für den Ereignisdatenspeicher genutzt werden soll. Die Preisoption bestimmt die Kosten für die Erfassung und Speicherung von Ereignissen sowie die standardmäßige und maximale Aufbewahrungsdauer für den Ereignisdatenspeicher. Weitere Informationen zu CloudTrail-Preisen finden Sie unter AWS CloudTrail – Preise
.
API-Gateway-Verwaltungsereignisse in CloudTrail
Verwaltungsereignisse liefern Informationen zu Verwaltungsvorgängen, die für Ressourcen im AWS-Konto ausgeführt werden. Sie werden auch als Vorgänge auf Steuerebene bezeichnet. CloudTrail protokolliert standardmäßig Verwaltungsereignisse.
Amazon API Gateway protokolliert alle API-Gateway-Aktionen als Verwaltungsereignisse, mit Ausnahme von TestInvokeAuthorizer und TestInvokeMethod. Eine Liste der Amazon-API-Gateway-Aktionen, die API Gateway in CloudTrail protokolliert, finden Sie in der API-Referenz für Amazon API Gateway.
Beispiel eines API-Gateway-Ereignisses
Ein Ereignis stellt eine einzelne Anforderung aus einer beliebigen Quelle dar und enthält Informationen über die angeforderte API-Aktion, das Datum und die Uhrzeit der Operation, Anforderungsparameter usw. CloudTrail-Protokolldateien sind kein geordnetes Stack-Trace der öffentlichen API-Aufrufe und Ereignisse erscheinen daher in keiner bestimmten Reihenfolge.
Im folgenden Beispiel sehen Sie ein CloudTrail-Ereignis, das die API-Gateway-GetResource
-Aktion demonstriert:
{ Records: [ { eventVersion: "1.03", userIdentity: { type: "Root", principalId: "AKIAI44QH8DHBEXAMPLE", arn: "arn:aws:iam::123456789012:root", accountId: "123456789012", accessKeyId: "AKIAIOSFODNN7EXAMPLE", sessionContext: { attributes: { mfaAuthenticated: "false", creationDate: "2015-06-16T23:37:58Z" } } }, eventTime: "2015-06-17T00:47:28Z", eventSource: "apigateway.amazonaws.com", eventName: "GetResource", awsRegion: "us-east-1", sourceIPAddress: "203.0.113.11", userAgent: "example-user-agent-string", requestParameters: { restApiId: "3rbEXAMPLE", resourceId: "5tfEXAMPLE", template: false }, responseElements: null, requestID: "6d9c4bfc-148a-11e5-81b6-7577cEXAMPLE", eventID: "4d293154-a15b-4c33-9e0a-ff5eeEXAMPLE", readOnly: true, eventType: "AwsApiCall", recipientAccountId: "123456789012" }, ... additional entries ... ] }
Informationen zu den Inhalten von CloudTrail-Datensätzen finden Sie unter CloudTrail-Datensatzinhalte im AWS CloudTrail-Benutzerhandbuch.