View a markdown version of this page

Ausführungsprotokollierung für REST-APIs - Amazon API Gateway

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.

Ausführungsprotokollierung für REST-APIs

Die Ausführungsprotokollierung zeichnet die Aktionen auf, die API Gateway zur Verarbeitung einer API-Anfrage ergreift. Zu den protokollierten Daten gehören Fehler, Ausführungsspuren, Anforderungs- und Antwortparameterwerte oder Nutzlasten, Daten, die von Lambda-Autorisierern verwendet werden, ob API-Schlüssel erforderlich sind und ob Nutzungspläne aktiviert sind. API Gateway redigiert Genehmigungs-Header, API-Schlüsselwerte und ähnliche sensible Anforderungsparameter aus den protokollierten Daten.

Zur Verbesserung Ihrer Sicherheitslage empfehlen wir Ihnen, die Ausführungsprotokollierung auf der ERROR- oder INFO-Ebene zu verwenden. Dies kann erforderlich sein, um verschiedene Compliance-Rahmenwerke einzuhalten. Weitere Informationen finden Sie unter Amazon-API-Gateway-Steuerelemente im Benutzerhandbuch für AWS Security Hub .

Protokollierung der Standardausführung

Wenn Sie die Ausführungsprotokollierung auf einer Stufe aktivieren, erstellt und verwaltet API Gateway automatisch eine CloudWatch Logs-Protokollgruppe. Die Protokollgruppe hat einen NamenAPI-Gateway-Execution-Logs_{rest-api-id}/{stage_name}. Innerhalb jeder Protokollgruppe sind die Protokolle in Protokolldatenströme unterteilt, die nach dem Zeitpunkt des letzten Ereignisses sortiert sind.

Mit standardmäßiger Ausführungsprotokollierung:

  • Protokollereignisse werden um 1 KB gekürzt.

  • API Gateway verwaltet den Namen der Protokollgruppe. Sie können den Namen der Protokollgruppe nicht wählen oder Protokolle nicht direkt an Amazon S3 oder Firehose senden.

Um die standardmäßige Protokollierung der Ausführung zu aktivieren, setzen Sie loggingLevel auf Ihrer Bühne den Wert ERROR oderINFO. Weitere Konfigurationsarbeiten sind nicht erforderlich.

Berechtigungen

Um CloudWatch Logs zu aktivieren, müssen Sie API Gateway die Berechtigung zum Lesen und Schreiben von Protokollen CloudWatch für Ihr Konto gewähren. Die AmazonAPIGatewayPushToCloudWatchLogs verwaltete Richtlinie verfügt über alle erforderlichen Berechtigungen.

Erstellen Sie eine IAM-Rolle mit apigateway.amazonaws.com der vertrauenswürdigen Entität, fügen Sie die vorherige Richtlinie hinzu und legen Sie den IAM-Rollen-ARN für die WatchRoleArn Cloud-Eigenschaft in Ihrem Konto fest. Sie müssen diese Eigenschaft für jede AWS Region, in der Sie Logs aktivieren CloudWatch möchten, separat festlegen.

Anmerkung

API Gateway-Aufrufe AWS -Security-Token-Service übernehmen die IAM-Rolle. Stellen Sie daher sicher, dass diese für die Region aktiviert AWS STS ist. Weitere Informationen finden Sie unter AWS STS in einer AWS Region https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html verwalten.

Aktivieren Sie die Ausführungsprotokollierung (Konsole)

Bevor Sie beginnen, stellen Sie die API schrittweise bereit und konfigurieren Sie einen entsprechenden CloudWatch Logs-Rollen-ARN für Ihr Konto.

  1. Melden Sie sich bei der API Gateway-Konsole unter an https://console.aws.amazon.com/apigateway.

  2. Wählen Sie im Hauptnavigationsbereich Settings (Einstellungen) und dann unter Logging (Protokollierung) die Option Edit (Bearbeiten) aus.

  3. Geben Sie für den ARN der CloudWatch Protokollrolle den ARN einer IAM-Rolle mit den entsprechenden Berechtigungen ein. Sie müssen dies einmal für jeden tun AWS-Konto , der APIs mithilfe von API Gateway erstellt.

  4. Wählen Sie im Hauptnavigationsbereich APIs aus, wählen Sie Ihre REST-API und dann Stages aus.

  5. Wählen Sie eine Phase aus und wählen Sie dann im Abschnitt Logs and Tracing die Option Bearbeiten aus.

  6. Wählen Sie im Dropdownmenü „Protokolle“ eine CloudWatch Protokollierungsebene aus:

    • Aus — API Gateway protokolliert keine Anfragen für diese Phase.

    • Nur Fehler — API Gateway protokolliert nur Fehler.

    • Fehler und Infoprotokolle — API Gateway protokolliert alle Ereignisse.

  7. (Optional) Wählen Sie Datenverfolgung aus, um die vollständigen Anfrage- und Antwortdaten zu protokollieren. Dies kann dazu führen, dass vertrauliche Daten protokolliert werden.

    Anmerkung

    Wir empfehlen, Datenablaufverfolgung nicht für Produktions-APIs zu verwenden.

  8. (Optional) Wählen Sie Detaillierte Metriken aus, um detaillierte CloudWatch Metriken zu aktivieren. Weitere Informationen finden Sie unter Überwachen Sie die REST-API-Ausführung mit CloudWatch Amazon-Metriken.

  9. Wählen Sie Änderungen speichern aus.

Sie müssen die API nicht erneut bereitstellen, wenn Sie die Stufeneinstellungen aktualisieren.

Aktivieren Sie die Ausführungsprotokollierung (CloudFormation)

Verwenden Sie die MethodSettings Eigenschaft für die Bühnenressource, um die Ausführungsprotokollierung zu aktivieren.

TestStage: Type: AWS::ApiGateway::Stage Properties: StageName: test RestApiId: !Ref MyAPI DeploymentId: !Ref Deployment MethodSettings: - ResourcePath: "/*" HttpMethod: "*" LoggingLevel: INFO

Um CloudWatch Logs zu aktivieren, müssen Sie API Gateway die Berechtigung zum Lesen und Schreiben von Protokollen CloudWatch für Ihr Konto gewähren. Weitere Informationen finden Sie unter Konto mit IAM-Rolle verknüpfen im AWS CloudFormation -Benutzerhandbuch.

Versand von CloudWatch Ausführungsprotokollen durch Amazon Logs

Die Amazon CloudWatch Logs-Lieferung bietet einen alternativen Pfad für Ausführungsprotokolle. Anstatt in eine Gateway-managed API-Protokollgruppe zu schreiben, konfigurieren Sie einen Versand, der Ausführungsprotokolle an Ziele sendet, die Ihnen gehören und die Sie kontrollieren.

Mit der Amazon CloudWatch Logs-Lieferung:

  • Protokollereignisse können bis zu 1 MB groß sein und umfassendere Anfrage- und Antwortdaten erfassen. Nutzdaten, die 1 MB überschreiten, werden immer noch gekürzt.

  • Sie wählen das Ziel: Ihre eigenen CloudWatch Logs-Log-Gruppen, Amazon S3-Buckets oder Firehose-Streams.

  • Sie können Protokolle gleichzeitig an mehrere Ziele senden.

  • Sie steuern die Konfiguration der Protokollgruppe, einschließlich der Benennung und Aufbewahrung.

Wichtig

CloudWatch Die Bereitstellung von Protokollen ersetzt die standardmäßige Protokollierung der Ausführung. Wenn Sie eine Lieferung konfigurieren, stoppt API Gateway das Schreiben in die automatisch verwaltete Protokollgruppe. Sie können nicht beide Pfade gleichzeitig für dieselbe Phase verwenden.

Wenn Sie eine Lieferung erstellen, leitet API Gateway Ausführungsprotokolle an Ihre konfigurierten Ziele und nicht an die automatisch verwaltete Protokollgruppe weiter. Wenn Sie eine Lieferung löschen, werden die Ausführungsprotokolle automatisch wieder an die automatisch verwaltete Protokollgruppe weitergeleitet. Außer der Einstellung loggingLevel auf ERROR oder INFO sind keine Änderungen an der API-Gateway-Konfiguration erforderlich.

Anmerkung

Die Protokollzustellung erfolgt nach bestem Wissen und Gewissen. In seltenen Fällen werden einige Protokollereignisse möglicherweise nicht übermittelt.

Warnung

Bevor Sie die Protokollzustellung aktivieren, aktualisieren Sie alle Dashboards, Alarme oder Abonnementfilter, die auf die automatisch verwaltete Protokollgruppe () API-Gateway-Execution-Logs_{rest-api-id}/{stage_name} verweisen. Nachdem die Übermittlung aktiv ist, empfängt diese Protokollgruppe keine neuen Ereignisse mehr.

In der folgenden Tabelle wird die standardmäßige Ausführungsprotokollierung mit der Amazon CloudWatch Logs-Lieferung verglichen.

Standardmäßige Protokollierung der Ausführung Versand durch Amazon CloudWatch Logs
Maximale Größe des Protokollereignisses 1 KB 1 MB
Ziele CloudWatch Protokolle (verwaltete Protokollgruppe) CloudWatch Logs, Amazon S3, Firehose (Ihre eigenen Ressourcen)
Mehrere Ziele Nein Ja
Protokollgruppenname Behoben durch API Gateway Du wählst
Einrichtung Automatisch, wenn die Protokollierung aktiviert ist Erfordert die Erstellung einer Amazon CloudWatch Logs-Lieferung
Voraussetzung Auf ERROR oder gesetzt loggingLevel INFO Auf ERROR oder setzen loggingLevel INFO
Anmerkung

Wenn Sie diese Option loggingLevel OFF nach der Konfiguration einer Lieferung festlegen, werden keine Ausführungsprotokolle generiert oder zugestellt. Ihre Lieferziele bleiben konfiguriert, erhalten jedoch keine Daten.

Informationen zum Erstellen einer Lieferung finden Sie unterErstellen Sie eine Protokollzustellung für REST-API-Ausführungsprotokolle.