Automatisches Korrigieren unverschlüsselter Amazon RDS DB-Instances und -Cluster - 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.

Automatisches Korrigieren unverschlüsselter Amazon RDS DB-Instances und -Cluster

Erstellt von Ajay Rawat (AWS) und Josh Joy () AWS

Umgebung: PoC oder Pilot

Technologien: Sicherheit, Identität, Compliance; Datenbanken

AWSDienste: AWS Config AWSKMS; AWS Identity and Access Management; AWS Systems Manager; Amazon RDS

Übersicht

Dieses Muster beschreibt, wie unverschlüsselte Amazon Relational Database Service (AmazonRDS) -DB-Instances und -Cluster auf Amazon Web Services (AWS) mithilfe von AWS Config-, AWS Systems Manager Manager-Runbooks und AWS Key Management Service () -Schlüsseln automatisch behoben werden. AWS KMS

Verschlüsselte RDS DB-Instances bieten eine zusätzliche Datenschutzebene, indem sie Ihre Daten vor unbefugtem Zugriff auf den zugrunde liegenden Speicher schützen. Sie können die RDS Amazon-Verschlüsselung verwenden, um den Datenschutz Ihrer in der AWS Cloud bereitgestellten Anwendungen zu verbessern und die Compliance-Anforderungen für die Verschlüsselung im Ruhezustand zu erfüllen. Sie können die Verschlüsselung für eine RDS DB-Instance aktivieren, wenn Sie sie erstellen, aber nicht, nachdem sie erstellt wurde. Sie können einer unverschlüsselten RDS DB-Instance jedoch Verschlüsselung hinzufügen, indem Sie einen Snapshot Ihrer DB-Instance und anschließend eine verschlüsselte Kopie dieses Snapshots erstellen. Anschließend können Sie eine DB-Instance aus dem verschlüsselten Snapshot wiederherstellen, um eine verschlüsselte Kopie Ihrer ursprünglichen DB-Instance zu erhalten.

Dieses Muster verwendet AWS Config-Regeln, um RDS DB-Instances und -Cluster auszuwerten. Es wendet die Problembehebung mithilfe von AWS Systems Manager Manager-Runbooks an, in denen die Aktionen für nicht konforme RDS Amazon-Ressourcen und AWS KMS Schlüssel zum Verschlüsseln der DB-Snapshots definiert werden. Anschließend werden Richtlinien zur Servicesteuerung (SCPs) durchgesetzt, um die Erstellung neuer DB-Instances und Cluster ohne Verschlüsselung zu verhindern.

Den Code für dieses Muster finden Sie unter GitHub.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS Konto

  • Dateien aus dem GitHub Quellcode-Repository für dieses Muster wurden auf Ihren Computer heruntergeladen

  • Eine unverschlüsselte RDS DB-Instance oder ein Cluster

  • Ein vorhandener AWS KMS Schlüssel zum Verschlüsseln von RDS DB-Instances und Clustern

  • Zugriff zur Aktualisierung der KMS wichtigsten Ressourcenrichtlinie

  • AWSDie Konfiguration ist in Ihrem AWS Konto aktiviert (siehe Erste Schritte mit AWS Config in der AWS Dokumentation)

Einschränkungen

  • Sie können die Verschlüsselung für eine RDS DB-Instance nur aktivieren, wenn Sie sie erstellen, nicht nachdem sie erstellt wurde.

  • Es ist nicht möglich, ein verschlüsseltes Lesereplikat einer unverschlüsselten DB-Instance oder ein unverschlüsseltes Lesereplikat einer verschlüsselten DB-Instance zu erstellen.

  • Sie können ein unverschlüsseltes Backup oder einen solchen Snapshot nicht als verschlüsselte DB-Instance wiederherstellen.

  • Die RDS Amazon-Verschlüsselung ist für die meisten DB-Instance-Klassen verfügbar. Eine Liste der Ausnahmen finden Sie in der RDSAmazon-Dokumentation unter Verschlüsseln von RDS Amazon-Ressourcen.

  • Um einen verschlüsselten Snapshot von einer AWS Region in eine andere zu kopieren, müssen Sie den KMS Schlüssel in der AWS Zielregion angeben. Das liegt daran, dass KMS Schlüssel für die AWS Region spezifisch sind, in der sie erstellt wurden.

  • Der Quell-Snapshot bleibt den gesamten Kopiervorgang über verschlüsselt. Amazon RDS verwendet Umschlagverschlüsselung, um Daten während des Kopiervorgangs zu schützen. Weitere Informationen finden Sie in der AWS KMS Dokumentation unter Umschlagverschlüsselung.

  • Eine verschlüsselte DB-Instance kann nicht entschlüsselt werden. Sie können jedoch Daten aus einer verschlüsselten DB-Instance exportieren und die Daten in eine unverschlüsselte DB-Instance importieren.

  • Sie sollten einen KMS Schlüssel nur löschen, wenn Sie sicher sind, dass Sie ihn nicht mehr benötigen. Wenn Sie sich nicht sicher sind, sollten Sie erwägen, den KMS Schlüssel zu deaktivieren, anstatt ihn zu löschen. Sie können einen deaktivierten KMS Schlüssel erneut aktivieren, wenn Sie ihn später erneut verwenden müssen, aber Sie können einen gelöschten KMS Schlüssel nicht wiederherstellen. 

  • Wenn Sie sich nicht dafür entscheiden, automatische Backups beizubehalten, werden Ihre automatisierten Backups, die sich in derselben AWS Region wie die DB-Instance befinden, gelöscht. Sie können nicht wiederhergestellt werden, nachdem Sie die DB-Instance gelöscht haben.

  • Ihre automatisierten Backups werden für den Aufbewahrungszeitraum aufbewahrt, der auf der DB-Instance zum Zeitpunkt des Löschens festgelegt ist. Dieser festgelegte Aufbewahrungszeitraum tritt unabhängig davon ein, ob Sie einen endgültigen DB-Snapshot erstellen möchten oder nicht.

  • Wenn die automatische Wiederherstellung aktiviert ist, verschlüsselt diese Lösung alle Datenbanken, die denselben KMS Schlüssel haben.

Architektur

Das folgende Diagramm veranschaulicht die Architektur für die AWS CloudFormation Implementierung. Beachten Sie, dass Sie dieses Muster auch mithilfe des AWS Cloud Development Kit (AWSCDK) implementieren können.

AWS CloudFormation Implementierung zur Behebung unverschlüsselter RDS Amazon-Instances.

Tools

Tools

  • AWS CloudFormationhilft Ihnen bei der automatischen Einrichtung Ihrer AWS Ressourcen. Es ermöglicht Ihnen, eine Vorlagendatei zu verwenden, um eine Sammlung von Ressourcen zu einer einzigen Einheit (einem Stapel) zu erstellen und zu löschen.

  • AWSCloud Development Kit (AWSCDK) ist ein Softwareentwicklungsframework, mit dem Sie Ihre Cloud-Infrastruktur im Code definieren und mithilfe vertrauter Programmiersprachen bereitstellen können.

AWSDienste und Funktionen

  • AWSConfig verfolgt die Konfiguration Ihrer AWS Ressourcen und deren Beziehungen zu Ihren anderen Ressourcen. Es kann diese AWS Ressourcen auch auf ihre Einhaltung überprüfen. Dieser Dienst verwendet Regeln, die konfiguriert werden können, um AWS Ressourcen anhand der gewünschten Konfigurationen zu bewerten. Sie können eine Reihe von von AWS Config verwalteten Regeln für allgemeine Compliance-Szenarien verwenden oder Sie können Ihre eigenen Regeln für benutzerdefinierte Szenarien erstellen. Wenn festgestellt wird, dass eine AWS Ressource nicht konform ist, können Sie in einem AWS Systems Manager Manager-Runbook eine Abhilfemaßnahme angeben und optional eine Warnung über ein Amazon Simple Notification Service (AmazonSNS) -Thema senden. Mit anderen Worten, Sie können Behebungsaktionen mit AWS Config-Regeln verknüpfen und festlegen, dass sie automatisch ausgeführt werden, um nicht konforme Ressourcen ohne manuelles Eingreifen zu beheben. Wenn eine Ressource nach der automatischen Korrektur immer noch nicht konform ist, können Sie die Regel so einrichten, dass die automatische Korrektur erneut versucht wird.

  • Amazon Relational Database Service (AmazonRDS) erleichtert die Einrichtung, den Betrieb und die Skalierung einer relationalen Datenbank in der Cloud. Der grundlegende Baustein von Amazon RDS ist die DB-Instance, eine isolierte Datenbankumgebung in der AWS Cloud. Amazon RDS bietet eine Auswahl an Instance-Typen, die für verschiedene Anwendungsfälle relationaler Datenbanken optimiert sind. Instance-Typen bestehen aus verschiedenen Kombinationen von CPU Arbeitsspeicher-, Speicher- und Netzwerkkapazität und bieten Ihnen die Flexibilität, den geeigneten Ressourcenmix für Ihre Datenbank auszuwählen. Jeder Instance-Typ umfasst mehrere Instance-Größen, sodass Sie Ihre Datenbank an die Anforderungen Ihres Ziel-Workloads anpassen können.

  • AWSDer Key Management Service (AWSKMS) ist ein verwalteter Dienst, mit dem Sie auf einfache Weise AWS KMS Schlüssel erstellen und steuern können, mit denen Ihre Daten verschlüsselt werden. Ein KMS Schlüssel ist eine logische Darstellung eines Stammschlüssels. Der KMS Schlüssel umfasst Metadaten wie die Schlüssel-ID, das Erstellungsdatum, die Beschreibung und den Schlüsselstatus.

  • AWSMit Identity and Access Management (IAM) können Sie den Zugriff auf Ihre AWS Ressourcen sicher verwalten, indem Sie kontrollieren, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • Richtlinien zur Dienstkontrolle (SCPs) bieten eine zentrale Kontrolle über die maximal verfügbaren Berechtigungen für alle Konten in Ihrer Organisation. SCPshelfen Ihnen dabei, sicherzustellen, dass Ihre Konten die Richtlinien für die Zugriffskontrolle Ihrer Organisation einhalten. SCPswirken sich nicht auf Benutzer oder Rollen im Verwaltungskonto aus. Sie wirken sich nur auf die Mitgliedskonten Ihrer Organisation aus. Es wird dringend empfohlen, dass Sie keine SCPs Verbindung zum Stammverzeichnis Ihrer Organisation herstellen, ohne die Auswirkungen der Richtlinie auf Konten gründlich zu testen. Erstellen Sie stattdessen eine Organisationseinheit (OU), in die Sie Ihre Konten einzeln oder zumindest in geringer Anzahl verschieben können, um sicherzustellen, dass Sie Benutzer nicht versehentlich von wichtigen Diensten ausschließen.

Code

Der Quellcode und die Vorlagen für dieses Muster sind in einem Repository verfügbar. GitHub Das Muster bietet zwei Implementierungsoptionen: Sie können eine AWS CloudFormation Vorlage bereitstellen, um die Wiederherstellungsrolle zu erstellen, die RDS DB-Instances und -Cluster verschlüsselt, oder Sie verwenden das. AWS CDK Das Repository hat separate Ordner für diese beiden Optionen.

Der Abschnitt Epics enthält step-by-step Anweisungen zur Bereitstellung der CloudFormation Vorlage. Wenn Sie die verwenden möchten AWSCDK, folgen Sie den Anweisungen in der README .md-Datei im GitHub Repository.

Bewährte Methoden

  • Aktivieren Sie die Datenverschlüsselung sowohl im Ruhezustand als auch bei der Übertragung.

  • Aktivieren Sie AWS Config in allen Konten und AWS Regionen.

  • Zeichnen Sie Konfigurationsänderungen für alle Ressourcentypen auf.

  • Wechseln Sie regelmäßig die IAM-Anmeldeinformationen.

  • Nutzen Sie Tagging for AWS Config, um Ressourcen einfacher zu verwalten, zu suchen und zu filtern.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie die CloudFormation Vorlage herunter.

Laden Sie die unencrypted-to-encrypted-rds.template.json Datei aus dem GitHub Repository herunter.

DevOps Ingenieur

Erstellen Sie den CloudFormation Stapel.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation/

  2. Starten Sie die unencrypted-to-encrypted-rds.template.json Vorlage, um einen neuen Stack zu erstellen.

Weitere Informationen zum Bereitstellen von Vorlagen finden Sie in der AWS CloudFormation Dokumentation.

DevOps Ingenieur

Überprüfen Sie CloudFormation die Parameter und Werte.

  1. Überprüfen Sie die Stack-Details und aktualisieren Sie die Werte auf der Grundlage Ihrer Umgebungsanforderungen.

  2. Wählen Sie Stack erstellen aus, um die Vorlage bereitzustellen.

DevOps Ingenieur

Überprüfen Sie die Ressourcen.

Wenn der Stack erstellt wurde, ändert sich sein Status auf CREATE_ COMPLETE. Überprüfen Sie die erstellten Ressourcen (IAMRolle, AWS Systems Manager Manager-Runbook) in der CloudFormation Konsole.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Aktualisieren Sie Ihre KMS wichtigsten Richtlinien.

  1. Stellen Sie sicher, dass der Schlüssel-Alias alias/RDSEncryptionAtRestKMSAlias existiert. 

  2. Die grundlegende Grundsatzerklärung sollte die Rolle der IAM Problembehebung beinhalten. (Überprüfen Sie die Ressourcen, die mit der CloudFormation Vorlage erstellt wurden, die Sie im vorherigen Epic bereitgestellt haben.) 

  3. Aktualisieren Sie in der folgenden wichtigen Richtlinie die fett gedruckten Bereiche so, dass sie Ihrem Konto und der IAM Rolle, die erstellt wurde, entsprechen.

{ "Sid": "Allow access through RDS for all principals in the account that are authorized to use RDS", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:: <your-AWS-account-ID>”:role/<your-IAM-remediation-role>" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "rds.us-east-1.amazonaws.com", "kms:CallerAccount": "<your-AWS-account-ID>" } } }
DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Ressourcen anzeigen, die nicht den Vorschriften entsprechen.

  1. Um eine Liste der nicht konformen Ressourcen anzuzeigen, öffnen Sie die AWS Config-Konsole unter https://console.aws.amazon.com/config/

  2. Wählen Sie im Navigationsbereich Regeln und dann die rds-storage-encrypted Regel aus.

Bei den in der AWS Config-Konsole aufgeführten nicht konformen Ressourcen handelt es sich um Instanzen, nicht um Cluster. Die automatische Problembehebung verschlüsselt Instanzen und Cluster und erstellt entweder eine neu verschlüsselte Instanz oder einen neu erstellten Cluster. Achten Sie jedoch darauf, nicht mehrere Instanzen gleichzeitig zu standardisieren, die zu demselben Cluster gehören.

Bevor Sie RDS DB-Instances oder Volumes standardisieren, stellen Sie sicher, dass die RDS DB-Instance nicht verwendet wird. Stellen Sie sicher, dass während der Erstellung des Snapshots keine Schreibvorgänge stattfinden, um sicherzustellen, dass der Snapshot die Originaldaten enthält. Erwägen Sie, ein Wartungsfenster vorzuschreiben, in dem die Problembehebung ausgeführt wird.

DevOps Ingenieur

Korrigieren Sie Ressourcen, die nicht den Vorschriften entsprechen.

  1. Wenn Sie bereit sind und das Wartungsfenster aktiv ist, wählen Sie die Ressource aus, die Sie korrigieren möchten, und klicken Sie dann auf Korrigieren.

    In der Spalte Aktionsstatus sollte jetzt die Meldung Ausführung der Aktion in der Warteschlange angezeigt werden.

  2. Zeigen Sie den Fortschritt und den Status der Behebung in Systems Manager an. Öffnen Sie die AWS Systems Manager Manager-Konsole unter https://console.aws.amazon.com/systems-manager/. Wählen Sie im Navigationsbereich Automatisierung und dann die Ausführungs-ID der entsprechenden Automatisierung aus, um weitere Details anzuzeigen.

DevOps Ingenieur

Stellen Sie sicher, dass die RDS DB-Instance verfügbar ist.

Nach Abschluss der Automatisierung wird die neu verschlüsselte RDS DB-Instance verfügbar. Die verschlüsselte RDS DB-Instance wird das Präfix encrypted  gefolgt vom ursprünglichen Namen haben. Wenn der Name der unverschlüsselten RDS DB-Instance beispielsweise lautetdatabase-1, wäre encrypted-database-1 dies auch der Name der neu verschlüsselten RDS DB-Instance.

DevOps Ingenieur

Beenden Sie die unverschlüsselte Instanz.

Nachdem die Wiederherstellung abgeschlossen ist und die neu verschlüsselte Ressource validiert wurde, können Sie die unverschlüsselte Instanz beenden. Stellen Sie sicher, dass die neu verschlüsselte Ressource mit der unverschlüsselten Ressource übereinstimmt, bevor Sie Ressourcen beenden.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

DurchsetzenSCPs.

Erzwingen SCPs Sie es, um zu verhindern, dass DB-Instances und -Cluster in future ohne Verschlüsselung erstellt werden. Verwenden Sie zu diesem Zweck die rds_encrypted.json Datei, die im GitHub Repository bereitgestellt wird, und folgen Sie den Anweisungen in der AWSDokumentation

Sicherheitsingenieur

Zugehörige Ressourcen

Referenzen

Tools

Anleitungen und Muster

Zusätzliche Informationen

FAQ

F: Wie funktioniert AWS Config?

Antwort: Wenn Sie AWS Config aktivieren, werden zunächst die unterstützten AWS Ressourcen erkannt, die in Ihrem Konto vorhanden sind, und für jede Ressource wird ein Konfigurationselement generiert. AWSConfig generiert auch Konfigurationselemente, wenn sich die Konfiguration einer Ressource ändert, und verwaltet historische Aufzeichnungen der Konfigurationselemente Ihrer Ressourcen ab dem Zeitpunkt, an dem Sie den Konfigurationsrekorder starten. Standardmäßig erstellt AWS Config Konfigurationselemente für jede unterstützte Ressource in der AWS Region. Wenn Sie nicht möchten, dass AWS Config Konfigurationselemente für alle unterstützten Ressourcen erstellt, können Sie die Ressourcentypen angeben, die es verfolgen soll.

F: Wie hängen AWS Config- und AWS Config-Regeln mit AWS Security Hub zusammen?

A. AWS Security Hub ist ein Sicherheits- und Compliance-Dienst, der Sicherheits- und Compliance-Statusmanagement als Service anbietet. Es verwendet AWS AWS Config- und Config-Regeln als primären Mechanismus, um die Konfiguration von AWS Ressourcen zu bewerten. AWSKonfigurationsregeln können auch verwendet werden, um die Ressourcenkonfiguration direkt auszuwerten. Konfigurationsregeln werden auch von anderen AWS Diensten wie AWS Control Tower und AWS Firewall Manager verwendet.