Überwachen Sie ElastiCache Amazon-Cluster auf Verschlüsselung im Ruhezustand - AWS Prescriptive Guidance

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.

Überwachen Sie ElastiCache Amazon-Cluster auf Verschlüsselung im Ruhezustand

Abhishek Agawane, Amazon Web Services

Zusammenfassung

Amazon ElastiCache ist ein Service von Amazon Web Services (AWS), der eine leistungsstarke, skalierbare und kostengünstige Caching-Lösung für die Verteilung eines In-Memory-Datenspeichers oder einer Cache-Umgebung in der Cloud bietet. Er ruft Daten aus In-Memory-Datenspeichern mit hohem Durchsatz und niedriger Latenz ab. Diese Funktionalität macht sie zu einer beliebten Wahl für Echtzeit-Anwendungsfälle wie Caching, Sitzungsspeicher, Spiele, Geodatendienste, Echtzeitanalysen und Warteschlangen. ElastiCache bietet Redis- und Memcached-Datenspeicher, die beide Reaktionszeiten unter einer Millisekunde bieten.

Datenverschlüsselung verhindert, dass unbefugte Benutzer sensible Daten lesen, die auf Ihren Redis-Clustern und den zugehörigen Cache-Speichersystemen verfügbar sind. Dazu gehören Daten, die auf persistenten Medien gespeichert sind (sogenannte Data at Rest), und Daten, die auf ihrem Weg durch das Netzwerk zwischen Clients und Cache-Servern abgefangen werden können (sogenannte Daten während der Übertragung).

Sie können die Verschlüsselung im Ruhezustand für ElastiCache (Redis OSS) aktivieren, wenn Sie eine Replikationsgruppe erstellen, indem Sie den Parameter auf setzen. AtRestEncryptionEnabled true Wenn dieser Parameter aktiviert ist, verschlüsselt er die Festplatte bei Synchronisierungs-, Sicherungs- und Swap-Vorgängen und verschlüsselt Backups, die in Amazon Simple Storage Service (Amazon S3) gespeichert sind. Sie können die Verschlüsselung im Ruhezustand nicht für eine bestehende Replikationsgruppe aktivieren. Wenn Sie eine Replikationsgruppe erstellen, können Sie die Verschlüsselung im Ruhezustand auf folgende zwei Arten aktivieren:

  • Indem Sie die Standardoption wählen, bei der vom Service verwaltete Verschlüsselung im Ruhezustand verwendet wird.

  • Indem Sie einen vom Kunden verwalteten Schlüssel verwenden und die Schlüssel-ID oder den Amazon-Ressourcennamen (ARN) von AWS Key Management Service (AWS KMS) angeben.

Dieses Muster bietet eine Sicherheitskontrolle, die API-Aufrufe überwacht und bei diesem CreateReplicationGroup Vorgang ein Amazon EventBridge Events-Ereignis generiert. Dieses Ereignis ruft eine AWS Lambda Funktion auf, die ein Python-Skript ausführt. Die Funktion ruft die Replikationsgruppen-ID aus der JSON-Eingabe des Ereignisses ab und führt die folgenden Prüfungen durch, um festzustellen, ob ein unverschlüsselter Cluster vorhanden ist:

  • Prüft, ob der AtRestEncryptionEnabled Schlüssel existiert.

  • Falls AtRestEncryptionEnabled vorhanden, wird der Wert überprüft, um festzustellen, ob er vorhanden isttrue.

  • Wenn der AtRestEncryptionEnabled Wert auf gesetzt istfalse, wird eine Variable festgelegt, die Verstöße verfolgt und mithilfe einer Amazon Simple Notification Service (Amazon SNS) -Benachrichtigung eine Verstoßnachricht an eine von Ihnen angegebene E-Mail-Adresse sendet.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktiver AWS-Konto.

  • Ein S3-Bucket zum Hochladen des bereitgestellten Lambda-Codes.

  • Eine E-Mail-Adresse, an die Sie Benachrichtigungen über Verstöße erhalten möchten.

  • ElastiCache Protokollierung aktiviert, für den Zugriff auf alle API-Protokolle.

Einschränkungen

  • Diese Detective Control ist regional und muss in allen Bereichen eingesetzt werden AWS-Region , die Sie überwachen möchten.

  • Das Steuerelement unterstützt Replikationsgruppen, die in einer Virtual Private Cloud (VPC) ausgeführt werden.

  • Das Steuerelement unterstützt Replikationsgruppen, auf denen die folgenden Knotentypen ausgeführt werden:

    • R7g, R6gd, R6g, R5, R4, R3

    • M7 g, M6 g, M5, M4, M3

    • T4g, T3, T2

    • C7gn

Versionen der Produkte

  • Unterstützt ElastiCache (Redis OSS) Version 3.2.6 oder höher und Valkey 7.2 oder höher

Architektur

Workflow-Architektur

Workflow für die Überwachung von ElastiCache Clustern.
  1. Der Benutzer startet eine ElastiCache Replikationsgruppe über den AWS-Managementkonsole, AWS Command Line Interface (AWS CLI) oder einen API-Aufruf.

  2. ElastiCache generiert EventBridge Ereignisse, wenn die CreateReplicationGroup API aufgerufen wird.

  3. Eine EventBridge Regel löst die Lambda-Funktion zur Konformitätsprüfung aus und ruft sie auf.

  4. Die Lambda-Funktion verarbeitet das Ereignis und prüft, ob die Verschlüsselung im Ruhezustand auf dem ElastiCache Cluster aktiviert ist.

  5. Wenn eine Verschlüsselungsverletzung festgestellt wird, veröffentlicht die Lambda-Funktion eine Benachrichtigung zu einem SNS-Thema.

  6. Amazon SNS sendet eine E-Mail-Benachrichtigung an Administratoren über die Verletzung der Verschlüsselungsbestimmungen.

Automatisierung und Skalierung

  • Wenn Sie diese Vorlage verwenden AWS Organizations, können Sie AWS CloudFormation StackSetssie verwenden, um sie in mehreren Konten bereitzustellen, die Sie überwachen möchten.

Tools

AWS-Services

  • Amazon ElastiCache macht es einfach, verteilte In-Memory-Cache-Umgebungen in der einzurichten, zu verwalten und zu skalieren. AWS Cloud Es bietet einen leistungsstarken, in der Größe anpassbaren und kostengünstigen In-Memory-Cache und verringert gleichzeitig die Komplexität, die mit der Bereitstellung und Verwaltung einer verteilten Cache-Umgebung verbunden ist. ElastiCache funktioniert sowohl mit der Redis- als auch mit der Memcached-Engine.

  • AWS CloudFormationhilft Ihnen dabei, Ihre AWS Ressourcen zu modellieren und einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus zu verwalten. Sie können eine Vorlage verwenden, um Ihre Ressourcen und ihre Abhängigkeiten zu beschreiben und sie zusammen als Stapel zu starten und zu konfigurieren, anstatt Ressourcen einzeln zu verwalten. Sie können Stacks über mehrere und hinweg verwalten AWS-Konten und AWS-Regionen bereitstellen.

  • Amazon EventBridge liefert nahezu in Echtzeit einen Stream von Systemereignissen, die Änderungen an AWS Ressourcen beschreiben. EventBridge wird sofort auf betriebliche Änderungen aufmerksam und ergreift bei Bedarf Korrekturmaßnahmen, indem Nachrichten gesendet werden, um auf die Umgebung zu reagieren, Funktionen aktiviert, Änderungen vorgenommen und Statusinformationen erfasst werden.

  • AWS Lambdaist ein Rechendienst, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch von wenigen Anfragen pro Tag auf Tausende pro Sekunde. Sie bezahlen nur für die Datenverarbeitungszeit, die Sie wirklich nutzen und es werden keine Gebühren in Rechnung gestellt, wenn Ihr Code nicht ausgeführt wird. 

  • Amazon SNS koordiniert und verwaltet 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 Code für dieses Muster ist im Repository GitHub Monitor Amazon ElastiCache Clusters for at Rest Encryption verfügbar. Informationen zur Verwendung der Dateien im Repository finden Sie im Abschnitt Epics.

Best Practices

Bereitstellung

  • Stellen Sie sicher, AWS CloudTrail dass ElastiCache API-Aufrufe protokolliert werden, bevor Sie dieses Steuerelement bereitstellen.

  • Es handelt sich um ein regionales Steuerelement. Stellen Sie das Steuerelement an jedem Standort bereit AWS-Region , an dem Sie es verwenden ElastiCache.

  • Überprüfen Sie die Lösung in dev/test Umgebungen, bevor Sie sie in der Produktion einsetzen.

Sicherheit

  • Verwenden Sie vom Kunden verwaltete KMS-Schlüssel, um die Kontrolle über Verschlüsselungsschlüssel zu verbessern.

  • Überprüfen Sie die AWS Identity and Access Management (IAM) -Berechtigungen, um sicherzustellen, dass die Lambda-Ausführungsrolle die geringsten Zugriffsrechte hat.

  • Richten Sie Benachrichtigungen für Nachrichten in der Warteschlange für unzustellbare Nachrichten ein.

Operationen

  • Richten Sie eine angemessene Aufbewahrung der Protokolle ein, um die Einhaltung von Vorschriften und Kosten in Einklang zu bringen.

  • Passen Sie die reservierte Parallelität von Lambda an Ihre ElastiCache Erstellungshäufigkeit an.

  • Abonnieren Sie mehrere E-Mail-Adressen für Amazon SNS für Teambenachrichtigungen.

Überwachung

  • Überprüfen Sie die CloudWatch Amazon-Alarme, um sicherzustellen, dass die Alarmschwellenwerte Ihren betrieblichen Anforderungen entsprechen.

  • Überwachen Sie regelmäßig die Ausführungsdauer und die Fehlerraten der Lambda-Metriken.

  • Überprüfen Sie Verstöße regelmäßig, um Benachrichtigungen zur Einhaltung der Verschlüsselungsvorschriften zu überprüfen.

Epen

AufgabeDescriptionErforderliche Fähigkeiten

Laden Sie den Code von herunter GitHub.

Klonen Sie das Code-Repository von oder laden Sie es herunter GitHub. Das Repository enthält die Dateien index.py undelasticache_encryption_at_rest.yml.

Cloud-Architekt

Erstellen Sie Lambda-Bereitstellungspakete.

Erstellen Sie zwei .zip-Dateien aus dem Python-Code:

  • ErstellenElastiCache-EncryptionAtRest.zip, was enthältindex.py.

  • Verwenden Sie den folgenden Befehl:

    zip ElastiCache-EncryptionAtRest.zip index.py
Cloud-Architekt

Laden Sie den Code in einen S3-Bucket hoch.

  1. Erstellen Sie einen neuen S3-Bucket oder verwenden Sie einen vorhandenen S3-Bucket, um den Lambda-Code hochzuladen.

  2. Komprimieren Sie den Lambda-Code (index.py) und geben Sie ihm ElastiCache-EncryptionAtRest.zip einen Namen.

  3. Laden Sie die ZIP-Datei in den S3-Bucket hoch. Dieser Bucket muss sich in demselben Bereich befinden AWS-Region wie die Ressourcen, die Sie auswerten möchten.

Cloud-Architekt

Stellen Sie die CloudFormation Vorlage bereit.

Öffnen Sie die CloudFormation Konsole genauso AWS-Region wie der S3-Bucket und stellen Sie die elasticache_encryption_at_rest.yml Datei bereit, die im Code-Repository bereitgestellt wird. Geben Sie im nächsten Epos Werte für die Vorlagenparameter an.

Cloud-Architekt
AufgabeDescriptionErforderliche Fähigkeiten

Geben Sie den S3-Bucket-Namen an.

Geben Sie den Namen des S3-Buckets ein, den Sie im ersten Epic erstellt oder ausgewählt haben. Dieser S3-Bucket enthält die ZIP-Datei für den Lambda-Code und muss sich in derselben Datei AWS-Region wie die CloudFormation Vorlage und die Ressource befinden, die ausgewertet werden. 

Cloud-Architekt

Geben Sie den S3-Schlüssel an.

Geben Sie den Speicherort der Lambda-Code-ZIP-Datei in Ihrem S3-Bucket an, ohne vorangestellte Schrägstriche (z. B. ElasticCache-EncryptionAtRest.zip oder). controls/ElasticCache-EncryptionAtRest.zip

Cloud-Architekt

Geben Sie eine E-Mail-Adresse an.

Geben Sie eine aktive E-Mail-Adresse an, unter der Sie Benachrichtigungen über Verstöße erhalten möchten. 

Cloud-Architekt

Geben Sie eine Protokollierungsebene an.

Geben Sie die Protokollierungsebene und die Ausführlichkeit an.

  • Infobezeichnet detaillierte Informationsmeldungen über den Fortschritt der Anwendung und sollte nur zum Debuggen verwendet werden.

  • Errorbezeichnet Fehlerereignisse, die es der Anwendung dennoch ermöglichen könnten, weiter zu laufen.

  • Warningbezeichnet potenziell schädliche Situationen.

Cloud-Architekt
AufgabeDescriptionErforderliche Fähigkeiten

Bestätigen Sie das E-Mail-Abonnement.

Wenn die CloudFormation Vorlage erfolgreich bereitgestellt wurde, sendet sie eine Abonnementnachricht an die von Ihnen angegebene E-Mail-Adresse. Um Benachrichtigungen zu erhalten, müssen Sie dieses E-Mail-Abonnement bestätigen.

Cloud-Architekt

Fehlerbehebung

ProblemLösung

Lambda-Funktion wurde nicht ausgelöst

Symptom: Keine Anmeldung, CloudWatch nachdem Sie ElastiCache Cluster erstellt oder geändert haben.

Lösungen:

  • Überprüfen Sie den EventBridge Regelstatus: 

    aws events describe-rule --name <rule-name>
  • Vergewissern Sie sich, dass die ressourcenbasierte Lambda-Richtlinie den Aufruf zulässt. EventBridge

  • Vergewissern Sie sich, dass das EventBridge Ereignismuster mit API-Aufrufen übereinstimmt. ElastiCache

Keine E-Mail-Benachrichtigungen

Symptom: Die Lambda-Funktion wird erfolgreich ausgeführt, Sie erhalten jedoch keine E-Mail-Benachrichtigungen.

Lösungen:

  • Bestätigen Sie Ihr Amazon SNS SNS-Abonnement über den Bestätigungslink per E-Mail.

  • Suchen Sie in den Spam- oder Junk-Ordnern nach Amazon SNS SNS-E-Mails.

  • Überprüfen Sie den Amazon-Ressourcennamen (ARN) für das Amazon SNS-Thema in der Lambda-Umgebungsvariablen: OUTBOUND_TOPIC_ARN

  • Testen Sie Amazon SNS manuell: 

    aws sns publish --topic-arn <arn> --message "Test"

Probleme mit Berechtigungen

Symptom: Fehler „Zugriff verweigert“ in CloudWatch Lambda-Funktionsprotokollen.

Lösungen:

  • Stellen Sie sicher, dass die Lambda-Ausführungsrolle über die erforderlichen ElastiCache Leseberechtigungen verfügt.

  • Vergewissern Sie sich, dass die AWS KMS Schlüsselrichtlinie die Lambda-Ausführungsrolle umfasst.

  • Stellen Sie sicher, dass die Amazon SNS SNS-Themenrichtlinie Lambda die Veröffentlichung erlaubt.

Zugehörige Ressourcen