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.
Suchen Sie in einer CloudFront Amazon-Distribution nach Zugriffsprotokollierung und TLS Version HTTPS
Erstellt von SaiJeevan Devireddy (AWS) und Bijesh Bal () AWS
Umwelt: Produktion | Technologien: Bereitstellung von Inhalten; Sicherheit, Identität, Compliance | Arbeitslast: Alle anderen Workloads |
AWSDienstleistungen: Amazon SNS AWS CloudFormation; Amazon CloudWatch; AWS Lambda |
Übersicht
Dieses Muster überprüft eine CloudFront Amazon-Distribution, um sicherzustellenHTTPS, dass sie Transport Layer Security (TLS) Version 1.2 oder höher verwendet und dass die Zugriffsprotokollierung aktiviert ist. CloudFront ist ein von Amazon Web Services (AWS) bereitgestellter Service, der die Verteilung Ihrer statischen und dynamischen Webinhalte wie .html-, .css-, .js- und Bilddateien an Ihre Benutzer beschleunigt. CloudFront stellt Ihre Inhalte über ein weltweites Netzwerk von Rechenzentren bereit, die als Edge-Standorte bezeichnet werden. Wenn ein Benutzer Inhalte anfordert CloudFront, mit denen Sie sie bereitstellen, wird die Anfrage an den Edge-Standort weitergeleitet, der die niedrigste Latenz (Zeitverzögerung) bietet, sodass der Inhalt mit der bestmöglichen Leistung bereitgestellt wird.
Dieses Muster stellt eine AWS Lambda-Funktion bereit, die ausgelöst wird, wenn Amazon CloudWatch Events den CloudFront API Anruf CreateDistribution, CreateDistributionWithTags, oder UpdateDistributionerkennt. Die benutzerdefinierte Logik in der Lambda-Funktion wertet alle CloudFront Verteilungen aus, die im Konto erstellt oder aktualisiert wurden. AWS Es sendet mithilfe von Amazon Simple Notification Service (AmazonSNS) eine Benachrichtigung über einen Verstoß, wenn es die folgenden Verstöße feststellt:
Globale Prüfungen:
Das benutzerdefinierte Zertifikat verwendet TLS Version 1.2 nicht
Die Protokollierung ist für die Verteilung deaktiviert
Herkunftsüberprüfungen:
Origin ist nicht mit TLS Version 1.2 konfiguriert
Die Kommunikation mit Origin ist auf einem anderen Protokoll erlaubt als HTTPS
Verhaltensprüfungen:
Standardverhaltenskommunikation ist auf einem anderen Protokoll zulässig als HTTPS
Kommunikation mit benutzerdefiniertem Verhalten ist für ein anderes Protokoll zulässig als HTTPS
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS Konto
Eine E-Mail-Adresse, an die Sie Benachrichtigungen über Verstöße erhalten möchten
Einschränkungen
Diese Sicherheitskontrolle sucht nicht nach vorhandenen Cloudfront-Distributionen, es sei denn, die Distribution wurde aktualisiert.
CloudFront wird als globaler Service betrachtet und ist nicht an eine bestimmte AWS Region gebunden. Amazon CloudWatch Logs und AWS Cloudtrail API Logging für globale Dienste finden jedoch in der Region USA Ost (Nord-Virginia) statt (
us-east-1
). Daher CloudFront muss diese Sicherheitskontrolle für eingerichtet und aufrechterhalten werden.us-east-1
Bei CloudFront dieser einzelnen Bereitstellung werden alle Distributionen auf überwacht. Stellen Sie die Sicherheitskontrolle nicht in anderen AWS Regionen bereit. (Die Bereitstellung in anderen Regionen führt dazu, dass CloudWatch Ereignisse und die Lambda-Funktion nicht initiiert werden können und keine SNS Benachrichtigungen angezeigt werden.)Diese Lösung wurde umfangreichen Tests mit Distributionen von CloudFront Webinhalten unterzogen. Sie deckt Streaming-Distributionen mit Echtzeit-Messaging-Protokoll (RTMP) nicht ab.
Architektur
Zieltechnologie-Stack
Lambda-Funktion
SNSThema
EventBridge Amazon-Regel
Zielarchitektur
![](images/pattern-img/1ae60f8f-3eaf-40f5-b01f-06e30e5604ce/images/e1521c48-99f6-4ec6-9e53-8713f3cf5776.png)
Automatisierung und Skalierung
Wenn Sie AWS Organizations verwenden, können Sie AWSCloudformation verwenden, StackSets um die angehängte Vorlage für mehrere Konten bereitzustellen, die Sie überwachen möchten.
Tools
AWSDienste
AWS CloudFormation— CloudFormation ist ein Service, mit dem Sie AWS Ressourcen modellieren und einrichten können, indem Sie Infrastruktur als Code verwenden.
Amazon EventBridge — EventBridge stellt einen Stream von Echtzeitdaten aus Ihren eigenen Anwendungen, SaaS-Anwendungen (Software as a Service) und AWS Diensten bereit und leitet diese Daten an Ziele wie Lambda-Funktionen weiter.
AWSLambda — Lambda unterstützt die Ausführung von Code ohne Bereitstellung oder Verwaltung von Servern.
Amazon S3 — Amazon Simple Storage Service (Amazon S3) ist ein hoch skalierbarer Objektspeicherservice, der für eine Vielzahl von Speicherlösungen verwendet werden kann, darunter Websites, mobile Anwendungen, Backups und Data Lakes.
Amazon SNS — Amazon SNS koordiniert und verwaltet die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen. Abonnenten erhalten die veröffentlichten Mitteilungen zu den Themen, die sie abonniert haben. Alle Abonnenten eines Themas erhalten dieselben Mitteilungen.
Code
Der beigefügte Code beinhaltet:
Eine ZIP-Datei, die den Lambda-Code enthält (index.py)
Eine CloudFormation Vorlage (.yml-Datei), die Sie ausführen, um den Lambda-Code bereitzustellen
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie den S3-Bucket für den Lambda-Code. | Erstellen Sie auf der Amazon S3 S3-Konsole einen S3-Bucket mit einem eindeutigen Namen, der keine führenden Schrägstriche enthält. Ein S3-Bucket-Name ist weltweit eindeutig, und der Namespace wird von allen AWS Konten gemeinsam genutzt. Ihr S3-Bucket muss sich in der Region befinden, in der Sie den Lambda-Code bereitstellen möchten. | Cloud-Architekt |
Laden Sie den Lambda-Code in den S3-Bucket hoch. | Laden Sie den Lambda-Code (Datei cloudfront_ssl_log_lambda.zip), der im Abschnitt Anlagen bereitgestellt wird, in den S3-Bucket hoch, den Sie im vorherigen Schritt erstellt haben. | Cloud-Architekt |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie die CloudFormation Vorlage bereit. | Stellen Sie auf der AWS CloudFormation Konsole, in derselben AWS Region wie der S3-Bucket, die CloudFormation Vorlage (cloudfront-ssl-logging.yml) bereit, die im Abschnitt Anlagen bereitgestellt wird. | Cloud-Architekt |
Geben Sie den S3-Bucket-Namen an. | Geben Sie für den S3-Bucket-Parameter den Namen des S3-Buckets an, den Sie im ersten Epic erstellt haben. | Cloud-Architekt |
Geben Sie den Amazon S3 S3-Schlüsselnamen für die Lambda-Datei an. | Geben Sie für den Parameter S3 Key den Amazon S3 S3-Speicherort der Lambda-Code-.zip-Datei in Ihrem S3-Bucket an. Fügen Sie keine führenden Schrägstriche ein (Sie können beispielsweise lambda.zip oder controls/lambda.zip eingeben). | Cloud-Architekt |
Geben Sie eine E-Mail-Adresse für Benachrichtigungen an. | Geben Sie für den Parameter Benachrichtigungs-E-Mail eine E-Mail-Adresse an, an die Sie die Benachrichtigungen über Verstöße erhalten möchten. | Cloud-Architekt |
Definieren Sie die Protokollierungsebene. | Definieren Sie für den Parameter Lambda Logging Level den Logging-Level für Ihre Lambda-Funktion. Wählen Sie einen der folgenden Werte aus:
| Cloud-Architekt |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Bestätigen Sie das Abonnement. | Wenn die CloudFormation Vorlage erfolgreich bereitgestellt wurde, wird ein neues SNS Thema erstellt und eine Abonnementnachricht an die von Ihnen angegebene E-Mail-Adresse gesendet. Sie müssen dieses E-Mail-Abonnement bestätigen, um Benachrichtigungen über Verstöße zu erhalten. | Cloud-Architekt |
Zugehörige Ressourcen
Einen Stack auf der AWS CloudFormation Konsole erstellen (CloudFormation Dokumentation)
CloudFront Protokollierung (CloudFront Dokumentation)