Topics

Audit-Logs Teil 2: Protokollierungsfunktionen von Webdiensten im Vergleich

  • column

AWS, Cloudflare, Vercel, Supabase, Headless CMS – was bleibt wo übrig?

Hallo, ich bin Otsuka, CTO bei Liberogic.

Im vorherigen Artikel haben wir die Unterschiede zwischen Access-Logs, Application-Logs und Audit-Logs erläutert.

Dieses Mal schauen wir uns konkret an, welche Logs bei den Diensten verfügbar sind, mit denen wir regelmäßig arbeiten: AWS, Cloudflare, Vercel, Supabase und Headless CMS.

Dabei geht es nicht um einen detaillierten Vergleich der Tarife und Funktionen der einzelnen Dienste.

Jeder Dienst hat unterschiedliche Besonderheiten – was standardmäßig protokolliert wird und wie lange man auf die Protokolle zugreifen kann. Wir geben hier einen groben Überblick über diese Unterschiede.

Leistungen

Hauptsächlich verfügbare Logs

Überlegungen zur Langzeitspeicherung

Wichtige Hinweise

AWS

Ausführung, Zugriff, Verwaltungsvorgänge

CloudWatch und S3 kombinieren

Konfiguration pro Service erforderlich

Cloudflare

Workers-Ausführung, Ausnahmen usw.

Weitergabe an R2 oder externe Services

Statische Bereitstellung separat von Ausführungsprotokollen

Vercel

Functions, Deployment, Ausführungsprotokolle

Weitergabe an externe Services über Log Drains usw.

Speicherbereich abhängig vom Plan

Supabase

DB, API, Authentifizierung, Verwaltungsvorgänge

Weitergabe an externe Services über Log Drains usw.

Anwendungsspezifische Vorgänge erfordern separate Implementierung

Headless CMS

Inhaltsaktualisierungen und Verwaltungsvorgänge

Dienstverlauf und Audit-Funktionen nutzen

„Unterschiedliche unterstützte Operationen oder Pläne"

Datadog/Sentry

Konsolidierte Protokolle und Fehlerinformationen

Gestaltet nach Verwendungszweck und Speichervolumen

„Bloße Implementierung führt nicht zu Audit-Protokollen"

Auch wenn es sich um die gleiche „Log-Funktion" handelt, unterscheiden sich die relevanten Vorgänge und die Speicherdauer.

Darüber hinaus ist die Anzeige in der Verwaltungsoberfläche eine separate Sache von der langfristigen Speicherung zu Audit-Zwecken.

AWS ist umfassend vorhanden, aber eine Konfiguration ist erforderlich

AWS verfügt über ein umfassendes Angebot von Protokollierungsdiensten.

Beispielsweise werden Ausführungsstatus von Lambda oder API Gateway in CloudWatch Logs erfasst. Operationen in der AWS-Verwaltungskonsole oder über die API können mit CloudTrail protokolliert werden.

Grob gesagt,

  • CloudWatch Logs: Überwachen Sie das Verhalten von Anwendungen und AWS-Services.
  • CloudTrail: Sehen Sie, wer was in Ihrer AWS-Umgebung getan hat.
  • S3: Speichern Sie Protokolle langfristig.

Diese Rollenverteilung funktioniert so.

Da Suche, Überwachung, Benachrichtigungen und Langzeitspeicherung alle innerhalb von AWS aufgebaut werden, ist dies eine Architektur, die sich leicht an Systeme mit starken Audit-Anforderungen anpassen lässt.

Allerdings: Nur weil Sie AWS verwenden, heißt das nicht, dass alles automatisch erfasst wird.

Sie müssen die Protokollierung für jeden genutzten Service konfigurieren und sowohl die Aufbewahrungsdauer als auch das Ziel festlegen. Diese hohe Flexibilität erfordert eine sorgfältige Planung.

Cloudflare trennt kurzfristige Untersuchungen von externer Speicherung.

In Cloudflare Workers können Sie die mit console.log() ausgegebenen Inhalte und Fehler in Workers Logs einsehen.

Dies ist sehr praktisch für die Überprüfung während der Entwicklung und für aktuelle Fehlersuche, aber wenn Sie längerfristige Audit-Trails speichern möchten, sollten Sie sich nicht nur auf den Standard-Log-Bildschirm verlassen.

Für Logs, die langfristig aufbewahrt werden müssen, empfehlen wir eine Konfiguration, die Logpush oder ähnliche Tools nutzt, um die Logs an R2 oder externe Protokollverwaltungsdienste zu senden.

Darüber hinaus werden nicht alle Zugriffe im Ausführungsprotokoll des Workers protokolliert, wenn Sie statische Websites mit Cloudflare Pages oder Workers bereitstellen.

Die Website wird normalerweise angezeigt, man könnte also denken, „natürlich gibt es auch Zugriffsprotokolle", aber die Bereitstellung statischer Dateien und die Ausführung von Worker sind unterschiedliche Dinge.

Während Cloudflare es relativ einfach macht, eine kompakte Konfiguration zu erstellen, ist es notwendig, zu verstehen, welche Verarbeitung wo durchläuft, um die Protokollierung entsprechend zu gestalten.

Vercel macht es einfach, die Protokolle von Next.js zu überprüfen.

Bei Vercel können Sie Protokolle anzeigen, die von Next.js Functions, Server Actions und mehr in der Verwaltungsoberfläche generiert wurden.

Da Deployment- und Ausführungsprotokolle sich an nahegelegenen Stellen befinden, ist die Umgebung für Entwickler übersichtlich und ermöglicht eine einfache alltägliche Fehlersuche.

Andererseits unterscheiden sich je nach Plan der Zeitraum, für den Sie Logs einsehen können, und der Umfang der Weiterleitung an externe Systeme.

Wenn Sie die Daten längerfristig behalten möchten, benötigen Sie einen anderen Mechanismus, z. B. die Verwendung von Drains, um sie an einen externen Speicherort zu senden.

Unabhängig von Vercel ist es ein Unterschied, ob Protokolle in der Verwaltungsoberfläche angezeigt werden und ob sie zu Audit-Zwecken langfristig gespeichert sind.

Diese beiden Aspekte müssen separat überprüft werden.

Supabase hat viele Protokolle neben der Datenbank

Supabase ist zwar ein auf PostgreSQL basierendes Service, besteht aber tatsächlich aus mehreren Funktionen: nicht nur aus Datenbank, sondern auch aus Authentifizierung, API, Speicher und Edge Functions.

Da Sie die Protokolle der einzelnen Komponenten über die Verwaltungsoberfläche einsehen können, ist es einfach, die Gesamtfunktionalität der Anwendung nachzuvollziehen.

Darüber hinaus gibt es auch Authentifizierungsprotokolle und Audit-Protokolle, um die in der Supabase-Verwaltungsoberfläche ausgeführten Operationen zu überprüfen.

Auch hier ist wichtig zu beachten, dass die Verwaltungsvorgänge von Supabase und die Vorgänge in der von Ihnen erstellten Anwendung unterschiedlich sind.

Beispielsweise können Serviceseite-Änderungen an den Supabase-Projekteinstellungen aufzeichnen, wer diese vorgenommen hat. Aber Änderungen an Kundeninformationen in Ihrer eigenen Verwaltungsoberfläche müssen auf Anwendungsseite protokolliert werden.

Überprüfen Sie auch die Bedienungsverlauf des Headless-CMS

Headless-CMS wie microCMS, Kuroco und NILTO bieten Aktualisierungsverlauf für Inhalte und Betriebsprotokolle der Verwaltungsoberfläche.

Aufzeichnungen darüber, wer einen Artikel aktualisiert hat, wann er veröffentlicht wurde oder welche Einstellungen und Berechtigungen geändert wurden, sind als Audit-Logs für den Betrieb von Websites wichtig.

Allerdings unterscheiden sich je nach Service die erfassten Vorgänge, der überprüfbare Zeitraum und die verfügbaren Pläne.

Selbst wenn Sie die Aktualisierungsverlauf des Inhalts überprüfen können, müssen nicht alle Verwaltungsvorgänge als Audit-Logs erhalten bleiben.

Außerdem enthält ein CMS grundsätzlich nur Operationsprotokolle innerhalb des CMS selbst. Zugriffe auf die veröffentlichte Website und Fehler, die auf der Frontend-Seite auftreten, müssen in der Hosting-Umgebung überprüft werden.

Bei Headless-CMS-Projekten ist es verständlicher, das CMS, Frontend, Hosting und API als ein einziges System zu betrachten.

Beim Hinzufügen von Datadog oder Sentry

Wenn Logs auf mehrere Services verteilt sind, müssen Sie bei jedem Fehler mehrere Admin-Dashboards öffnen und untersuchen.

Durch die Zusammenfassung in einem Log-Management-Service wie Datadog können Sie Logs mehrerer Umgebungen zusammen durchsuchen und Anomalien erkennen, um Benachrichtigungen zu erhalten.

Sentry wird auch häufig genutzt, aber dieser Service ist spezialisiert darauf, die Stelle und den Umfang der Auswirkungen von Fehlern zu ermitteln.

Beide sind praktisch, aber die Implementierung führt nicht automatisch zu einem vollständigen Audit-Log.

Sie müssen auf der Anwendungsseite entscheiden, was ausgegeben werden soll. Wenn Sie alle Protokolle über längere Zeit speichern, steigen die Kosten je nach Datenmenge.

Speichermethode

Geeignete Anwendungsfälle

Merkmale

Admin-Panel und Protokollverwaltungsdienst

Tägliche Fehlersuche

Schnelle Suche möglich, aber die Kosten steigen mit dem Speichervolumen

Speicher wie R2 oder S3

Audit und langfristige Archivierung von Nachweisen

Kostengünstige Speicherung, aber Abrufen ist erforderlich, wenn eine Untersuchung durchgeführt werden soll

Es ist praktisch, zwischen Protokollen für die tägliche Suche und Protokollen für die Archivierung im Falle eines Problems zu unterscheiden.

Welcher Service ist besser? Das lässt sich nicht einfach entscheiden.

Wenn man nur Protokolle vergleicht, kann man nicht sagen, dass AWS oder Cloudflare am besten ist.

Wichtig ist, was für das jeweilige Projekt protokolliert werden muss.

  • Ich möchte Service-Fehler untersuchen.
  • Ich möchte Administrator-Aktionen dokumentieren.
  • Ich möchte die Update-Historie des CMS einsehen.
  • Ich möchte Authentifizierung und Berechtigungsänderungen nachverfolgbar machen.
  • Ich möchte Protokolle langfristig für Audits aufbewahren.

Wenn klar ist, was benötigt wird, lassen sich die Funktionen, die die Standard-Features der einzelnen Services abdecken, und die Funktionen, für die zusätzliche Implementierung nötig ist, leicht erkennen.

Auch wir bereiten nicht von Anfang an eine große Protokollinfrastruktur vor, sondern passen die Konfiguration an die Anforderungen und das Budget des jeweiligen Projekts an.

Das nächste Mal werden wir uns damit befassen, welche Protokolle die Anwendungsseite ausgibt und wo diese gespeichert werden, wenn solche Dienste kombiniert werden. Wir werden einen Blick auf etwas werfen, das näher an der praktischen Anwendung liegt.

Naja dann.

Dieser Artikel wurde geschrieben von

Das Rückgrat der Technologieabteilung von Liberogic. Wenn sie einen Wunsch hört wie "Ich würde mir das wünschen, das wäre praktisch" – setzt sie ihn sofort mit ihrem natürlichen Gespür um und verleiht der Lösung noch zusätzlichen Mehrwert. Sie ist ein Schatz unseres Unternehmens mit großem Geschick in der Kommunikation und vielen begeisterten Kunden – und eine absolute Katzenliebhaberin.

Sho Otsuka

Geschäftsführender CTO / Chief Engineer / Vertreter der Godo Kaisha Neko Ana / Sieht unnötig jung aus

Artikel dieses Mitarbeiters ansehen

Zuverlässige Teamstruktur und schnelle Reaktionsfähigkeit sind unsere Stärken

Bei Liberogic werden erfahrene Mitarbeiter aktiv bei der Projektförderung eingesetzt, daher erhalten wir hohe Bewertungen von unseren Kunden.
Wir weisen Projektmanager und Direktoren ordnungsgemäß zu und bemühen uns, Projekte reibungslos zu leiten. Wir vermeiden unnötige Kostensteigerungen durch vollständige Bindung und verteilen Ressourcen optimal. Wir sind auch bekannt für die Schnelligkeit bei der Erfassung von Geschäftsinhalten bis zur Erstellung und Einreichung von Angeboten.

※ Bitte beachten Sie, dass wir keine SES-ähnliche Vor-Ort-Arbeit aktiv durchführen.

Sie können nahezu alle wichtigen Projektmanagement-Tools und Chat-Tools verwenden, wie Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom, Webex und mehr.

Konsultieren Sie uns gerne bei Ihren Web-Fragen.

Fallstudien