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.
Richten Sie mithilfe von Terraform eine zentrale Protokollierung auf Unternehmensebene ein
Erstellt von Aarti Rajput (AWS), Yashwant Patel (AWS) und Nishtha Yadav (AWS)
Übersicht
Die zentralisierte Protokollierung ist für die Cloud-Infrastruktur eines Unternehmens von entscheidender Bedeutung, da sie Einblick in Betrieb, Sicherheit und Compliance bietet. Wenn Ihr Unternehmen seine AWS Umgebung auf mehrere Konten skaliert, wird eine strukturierte Protokollverwaltungsstrategie zur Grundlage für die Durchführung von Sicherheitsoperationen, die Erfüllung von Prüfanforderungen und die Erzielung operativer Exzellenz.
Dieses Muster bietet ein skalierbares, sicheres Framework für die Zentralisierung von Protokollen aus mehreren Diensten AWS-Konten und ermöglicht so ein unternehmensweites Protokollierungsmanagement für komplexe Bereitstellungen. AWS Die Lösung wird mithilfe von Terraform automatisiert, einem IaC-Tool (Infrastructure as Code), das konsistente und wiederholbare Bereitstellungen gewährleistet und HashiCorp die manuelle Konfiguration minimiert. Durch die Kombination von Amazon CloudWatch Logs, Amazon Data Firehose und Amazon Simple Storage Service (Amazon S3) können Sie eine robuste Protokollaggregations- und Analyse-Pipeline implementieren, die Folgendes bietet:
Zentralisiertes Protokollmanagement in Ihrem gesamten Unternehmen in AWS Organizations
Automatisierte Protokollerfassung mit integrierten Sicherheitskontrollen
Skalierbare Protokollverarbeitung und langlebiger Speicher
Vereinfachte Compliance-Berichterstattung und Audit-Trails
Betriebliche Einblicke und Überwachung in Echtzeit
Die Lösung sammelt Protokolle von Amazon Elastic Kubernetes Service (Amazon EKS) -Containern, AWS Lambda Funktionen und Amazon Relational Database Service (Amazon RDS) -Datenbank-Instances über Logs. CloudWatch Sie leitet diese Protokolle mithilfe von Abonnementfiltern automatisch an ein spezielles Protokollierungskonto weiter. CloudWatch Firehose verwaltet die Protokoll-Streaming-Pipeline mit hohem Durchsatz zu Amazon S3 zur Langzeitspeicherung. Amazon Simple Queue Service (Amazon SQS) ist so konfiguriert, dass er bei der Objekterstellung Amazon S3 S3-Ereignisbenachrichtigungen empfängt. Dies ermöglicht die Integration mit Analysediensten, einschließlich:
Amazon OpenSearch Service für Protokollsuche, Visualisierung und Echtzeitanalyse
Amazon Athena für SQL-basierte Abfragen
Amazon EMR für die Verarbeitung in großem Maßstab
Lambda für benutzerdefinierte Transformation
Amazon QuickSight für Dashboards
Alle Daten werden mit AWS Key Management Service (AWS KMS) verschlüsselt, und die gesamte Infrastruktur wird mithilfe von Terraform bereitgestellt, um eine konsistente Konfiguration in allen Umgebungen zu gewährleisten.
Dieser zentralisierte Protokollierungsansatz ermöglicht es Unternehmen, ihre Sicherheitslage zu verbessern, Compliance-Anforderungen einzuhalten und die betriebliche Effizienz ihrer AWS gesamten Infrastruktur zu optimieren.
Voraussetzungen und Einschränkungen
Voraussetzungen
Eine landing zone für Ihre Organisation, die erstellt wurde mit AWS Control Tower
Account Factory for Terraform (AFT), bereitgestellt und konfiguriert mit den erforderlichen Konten
Terraform
für die Bereitstellung der Infrastruktur AWS Identity and Access Management (IAM) -Rollen und Richtlinien für den kontoübergreifenden Zugriff
Anweisungen zur Einrichtung von AFT AWS Control Tower- und Anwendungskonten finden Sie im Abschnitt Epics.
Erforderliche Konten
Ihre Organisation AWS Organizations sollte die folgenden Konten enthalten:
Anwendungskonto — Ein oder mehrere Quellkonten, auf denen die AWS-Services (Amazon EKS, Lambda und Amazon RDS) ausgeführt und Protokolle generiert werden
Log Archive-Konto — Ein spezielles Konto für die zentrale Speicherung und Verwaltung von Protokollen
Produktversionen
AWS Control Tower Version 3.1 oder höher
Terraform Version 0.15.0
oder höher
Architektur
Das folgende Diagramm zeigt eine AWS zentralisierte Protokollierungsarchitektur, die eine skalierbare Lösung für das Sammeln, Verarbeiten und Speichern von Protokollen aus mehreren Anwendungskonten in einem speziellen Log Archive-Konto bietet. Diese Architektur verarbeitet effizient Protokolle von AWS-Services, einschließlich Amazon RDS, Amazon EKS und Lambda, und leitet sie über einen optimierten Prozess an regionale S3-Buckets im Log Archive-Konto weiter.

Der Workflow umfasst fünf Prozesse:
Log-Flow-Prozess
Der Protokollfluss beginnt in den Anwendungskonten, wo verschiedene Arten von Protokollen AWS-Services generiert werden, z. B. allgemeine Protokolle, Fehler-, Prüfprotokolle, langsame Abfrageprotokolle von Amazon RDS, Kontrollebenenprotokolle von Amazon EKS sowie Funktionsausführungs- und Fehlerprotokolle von Lambda.
CloudWatch dient als erste Sammelstelle. Es sammelt diese Protokolle auf Protokollgruppenebene innerhalb jedes Anwendungskontos.
In CloudWatch bestimmen Abonnementfilter, welche Protokolle an das zentrale Konto weitergeleitet werden sollen. Diese Filter bieten Ihnen eine detaillierte Kontrolle über die Protokollweiterleitung, sodass Sie genaue Protokollmuster oder vollständige Protokollstreams für die Zentralisierung angeben können.
Kontoübergreifende Protokollübertragung
Protokolle werden in das Log Archive-Konto verschoben. CloudWatch Abonnementfilter erleichtern die kontoübergreifende Übertragung und bewahren den regionalen Kontext.
Die Architektur richtet mehrere parallel Streams ein, um verschiedene Protokollquellen effizient zu handhaben und so eine optimale Leistung und Skalierbarkeit zu gewährleisten.
Protokollverarbeitung im Log Archive-Konto
Im Log Archive-Konto verarbeitet Firehose die eingehenden Protokollstreams.
Jede Region unterhält eigene Firehose-Lieferdatenströme, die Protokolle nach Bedarf transformieren, konvertieren oder anreichern können.
Diese Firehose-Streams liefern die verarbeiteten Protokolle an S3-Buckets im Log Archive-Konto, das sich in derselben Region wie die Quellanwendungskonten (Region A im Diagramm) befindet, um die Anforderungen an die Datenhoheit aufrechtzuerhalten.
Benachrichtigungen und zusätzliche Workflows
Wenn Protokolle ihre Ziel-S3-Buckets erreichen, implementiert die Architektur mithilfe von Amazon SQS ein Benachrichtigungssystem.
Die regionalen SQS-Warteschlangen ermöglichen eine asynchrone Verarbeitung und können auf der Grundlage der gespeicherten Protokolle zusätzliche Workflows, Analyse- oder Warnsysteme auslösen.
AWS KMS aus Sicherheitsgründen
Die Architektur beinhaltet aus AWS KMS Sicherheitsgründen. AWS KMS stellt Verschlüsselungsschlüssel für die S3-Buckets bereit. Dadurch wird sichergestellt, dass alle gespeicherten Protokolle die Verschlüsselung im Ruhezustand beibehalten und gleichzeitig die regionale Verschlüsselung beibehalten wird, um die Anforderungen an die Datenresidenz zu erfüllen.
Tools
AWS-Services
Amazon CloudWatch ist ein Überwachungs- und Beobachtungsdienst, der Überwachungs- und Betriebsdaten in Form von Protokollen, Metriken und Ereignissen sammelt. Es bietet eine einheitliche Ansicht der AWS Ressourcen, Anwendungen und Services, die auf AWS- und lokalen Servern ausgeführt werden.
CloudWatch Protokoll-Abonnementfilter sind Ausdrücke, die einem Muster bei eingehenden Protokollereignissen entsprechen und entsprechende Protokollereignisse zur weiteren Verarbeitung oder Analyse an die angegebene AWS Ressource weiterleiten.
AWS Control Tower Account Factory For Terraform (AFT) richtet eine Terraform-Pipeline ein, mit der Sie Konten bereitstellen und anpassen können. AWS Control Tower AFT bietet eine Terraform-basierte Kontobereitstellung und ermöglicht es Ihnen gleichzeitig, Ihre Konten mit zu verwalten. AWS Control Tower
Amazon Data Firehose liefert Streaming-Daten in Echtzeit an Ziele wie Amazon S3, Amazon Redshift und Amazon OpenSearch Service. Es passt sich automatisch dem Durchsatz Ihrer Daten an und erfordert keine laufende Verwaltung.
Amazon Elastic Kubernetes Service (Amazon EKS) ist ein verwalteter Container-Orchestrierungsservice, der die Bereitstellung, Verwaltung und Skalierung containerisierter Anwendungen mithilfe von Kubernetes vereinfacht. Er verwaltet automatisch die Verfügbarkeit und Skalierbarkeit der Knoten der Kubernetes-Steuerebene.
AWS Key Management Service (AWS KMS) erstellt und kontrolliert Verschlüsselungsschlüssel für die Verschlüsselung Ihrer Daten. AWS KMS integriert sich in andere AWS-Services , um Ihnen zu helfen, die Daten zu schützen, die Sie mit diesen Diensten speichern.
AWS Lambdaist ein serverloser Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er skaliert Ihre Anwendungen automatisch, indem er Code als Reaktion auf jeden Trigger ausführt, und berechnet nur die Rechenzeit, die Sie tatsächlich nutzen.
Amazon Relational Database Service (Amazon RDS) ist ein verwalteter relationaler Datenbankservice, der die Einrichtung, den Betrieb und die Skalierung einer relationalen Datenbank in der Cloud vereinfacht. Er bietet kosteneffiziente und anpassbare Kapazität und automatisiert gleichzeitig zeitaufwändige Verwaltungsaufgaben.
Amazon Simple Queue Service (Amazon SQS) ist ein Nachrichtenwarteschlangen-Service, mit dem Sie Microservices, verteilte Systeme und serverlose Anwendungen entkoppeln und skalieren können. Damit entfällt die Komplexität der Verwaltung und des Betriebs nachrichtenorientierter Middleware.
Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Er kann jede Datenmenge von überall im Internet speichern und abrufen.
Andere Tools
Terraform
ist ein IaC-Tool (Infrastructure as Code) HashiCorp , mit dem Sie Cloud- und lokale Ressourcen erstellen und verwalten können.
Code
Der Code für dieses Muster ist im Centralized Logging Repository verfügbar. GitHub
Bewährte Methoden
Verwenden Sie mehrere AWS-Konten in einer einzigen Organisation in AWS Organizations. Diese Vorgehensweise ermöglicht eine zentrale Verwaltung und eine standardisierte Protokollierung für alle Konten.
Konfigurieren Sie S3-Buckets mit Versionierung, Lebenszyklusrichtlinien und regionsübergreifender Replikation. Implementieren Sie Verschlüsselung und Zugriffsprotokollierung für Sicherheit und Compliance.
Implementieren Sie allgemeine Protokollierungsstandards, indem Sie das JSON-Format mit Standardzeitstempeln und Feldern verwenden. Verwenden Sie eine konsistente Präfixstruktur und Korrelation IDs für eine einfache Nachverfolgung und Analyse.
Aktivieren Sie Sicherheitskontrollen mit AWS KMS Verschlüsselung und Zugriff mit geringsten Rechten. Sorgen Sie für mehr Sicherheit durch AWS CloudTrail Überwachung und regelmäßige Schlüsselrotation.
Richten Sie CloudWatch Kennzahlen und Benachrichtigungen für die Sendungsverfolgung ein. Überwachen Sie Kosten und Leistung mit automatisierten Benachrichtigungen.
Konfigurieren Sie Amazon S3 S3-Aufbewahrungsrichtlinien, um die Compliance-Anforderungen zu erfüllen, und aktivieren Sie die Amazon S3 S3-Serverzugriffsprotokollierung, um alle Anfragen an Ihre S3-Buckets nachzuverfolgen. Pflegen Sie die Dokumentation für S3-Bucket-Richtlinien und Lebenszyklusregeln. Führen Sie regelmäßige Überprüfungen von Zugriffsprotokollen, Bucket-Berechtigungen und Speicherkonfigurationen durch, um die Einhaltung von Vorschriften und bewährten Sicherheitsverfahren sicherzustellen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Richten Sie eine AWS Control Tower Umgebung mit AFT ein. |
| AWS-Administrator |
Aktivieren Sie die gemeinsame Nutzung von Ressourcen für die Organisation. |
| AWS-Administrator |
Überprüfen oder Bereitstellen von Anwendungskonten. | Um neue Anwendungskonten für Ihren Anwendungsfall bereitzustellen, erstellen Sie sie über AFT. Weitere Informationen finden Sie in der AWS Control Tower Dokumentation unter Bereitstellen eines neuen Kontos bei AFT. | AWS-Administrator |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Kopiert |
| DevOps Ingenieur |
Überprüfen und bearbeiten Sie die Eingabeparameter für die Einrichtung des Anwendungskontos. | In diesem Schritt richten Sie die Konfigurationsdatei für die Erstellung von Ressourcen in Anwendungskonten ein, einschließlich CloudWatch Protokollgruppen, CloudWatch Abonnementfiltern, IAM-Rollen und -Richtlinien sowie Konfigurationsdetails für Amazon RDS-, Amazon EKS- und Lambda-Funktionen. Konfigurieren Sie in Ihrem
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Kopiert |
| DevOps Ingenieur |
Überprüfen und bearbeiten Sie die Eingabeparameter für die Einrichtung des Log Archive-Kontos. | In diesem Schritt richten Sie die Konfigurationsdatei für die Erstellung von Ressourcen im Log Archive-Konto ein, einschließlich Firehose-Lieferstreams, S3-Buckets, SQS-Warteschlangen sowie IAM-Rollen und -Richtlinien. Konfigurieren Sie im
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Option 1 — Stellen Sie die Terraform-Konfigurationsdateien von AFT bereit. | In AFT wird die AFT-Pipeline ausgelöst, nachdem Sie den Code mit den Konfigurationsänderungen in das Repository übertragen haben. GitHub Nachdem Sie Änderungen an Ihren Terraform (
AnmerkungWenn du einen anderen Branch (wie | DevOps Ingenieur |
Option 2 — Stellen Sie die Terraform-Konfigurationsdatei manuell bereit. | Wenn Sie AFT nicht verwenden oder die Lösung manuell bereitstellen möchten, können Sie die folgenden Terraform-Befehle aus den Ordnern und verwenden:
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Überprüfen Sie die Abonnementfilter. | Gehen Sie wie folgt vor, um sicherzustellen, dass die Abonnementfilter Protokolle korrekt von den Protokollgruppen des Anwendungskontos an das Protokollarchivkonto weiterleiten:
| DevOps Ingenieur |
Überprüfen Sie Firehose-Streams. | So überprüfen Sie, ob die Firehose-Streams im Log Archive-Konto Anwendungsprotokolle erfolgreich verarbeiten:
| DevOps Ingenieur |
Validieren Sie die zentralisierten S3-Buckets. | Gehen Sie wie folgt vor, um zu überprüfen, ob die zentralisierten S3-Buckets Protokolle empfangen und ordnungsgemäß organisieren:
| DevOps Ingenieur |
Überprüfen Sie die SQS-Warteschlangen. | So überprüfen Sie, ob die SQS-Warteschlangen Benachrichtigungen für neue Protokolldateien erhalten:
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Option 1 — Außerbetriebnahme der Terraform-Konfigurationsdatei von AFT. | Wenn Sie die Terraform-Konfigurationsdateien entfernen und die Änderungen übertragen, leitet AFT automatisch den Prozess zum Entfernen der Ressourcen ein.
| DevOps Ingenieur |
Option 2 — Manuelles Bereinigen der Terraform-Ressourcen. | Wenn Sie AFT nicht verwenden oder Ressourcen manuell bereinigen möchten, verwenden Sie die folgenden Terraform-Befehle aus den Ordnern und:
| DevOps Ingenieur |
Fehlerbehebung
Problem | Lösung |
---|---|
Das CloudWatch Logs-Ziel wurde nicht erstellt oder ist inaktiv. | Überprüfen Sie Folgendes:
|
Der Abonnementfilter ist ausgefallen oder hat den Status „Ausstehend“. | Überprüfen Sie, ob Folgendes der Fall ist:
|
Der Firehose-Lieferstream zeigt keine eingehenden Datensätze an. | Überprüfen Sie Folgendes:
|