Verschlüsseln von Amazon RDS-Ressourcen - Amazon Relational Database Service

Verschlüsseln von Amazon RDS-Ressourcen

Amazon RDS kann Ihre Amazon RDS-DB-Instances verschlüsseln. Daten, die im Ruhezustand verschlüsselt werden, umfassen den zugehörigen Speicherplatz von DB-Instances sowie deren automatisierte Backups, Lesereplikate und Snapshots.

Amazon RDS-verschlüsselte DB-Instances verwenden den standardmäßig in der Branche verwendeten AES-256-Verschlüsselungsalgorithmus, um Ihre Daten auf dem Server zu verschlüsseln, der Ihre Amazon RDS-DB-Instances hostet. Sobald Sie die Daten verschlüsselt haben, übernimmt Amazon RDS die Authentifizierung des Zugriffs und die Entschlüsselung Ihrer Daten auf transparente Art und Weise und mit minimaler Auswirkung auf die Leistung. Sie müssen Ihre Datenbank-Client-Anwendungen nicht ändern, um Verschlüsselung anzuwenden.

Anmerkung

Bei verschlüsselten und unverschlüsselten DB-Instances- werden Daten zwischen der Quelle und den Lesereplikaten verschlüsselt, auch wenn die Replikation AWS-regionsübergreifend erfolgt.

Übersicht über die Verschlüsselung von Amazon RDS-Ressourcen

Amazon RDS-verschlüsselte DB-Instances bieten zusätzlichen Datenschutz, indem Sie Ihre Daten vor unautorisiertem Zugriff auf den zugehörigen Speicherplatz sichern. Sie können die Amazon RDS-Verschlüsselung verwenden, um den Datenschutz für Ihre in der Cloud bereitgestellten Anwendungen zu erhöhen und die Compliance-Anforderungen bei der Verschlüsselung von Daten im Ruhezustand zu erfüllen.

Amazon RDS unterstützt auch die Verschlüsselung einer Oracle- oder SQL Server-DB-Instance mit Transparent Data Encryption (TDE). TDE kann mit Verschlüsselung im Ruhezustande verwendet werden, jedoch kann sich die gleichzeitige Verwendung von TDE mit Verschlüsselung im Ruhezustand geringfügig auf die Leistung Ihrer Datenbank auswirken. Sie müssen verschiedene Schlüssel für jede Verschlüsselungsmethode verwalten. Weitere Informationen zu TDE finden Sie unter Oracle Transparent Data Encryption oder Unterstützung für transparente Datenverschlüsselung in SQL Server.

Für eine Amazon-RDS-verschlüsselte DB-Instance werden alle Protokolle, Backups und Snapshots verschlüsselt. Amazon RDS verwendet eine AWS KMS key, um diese Ressourcen zu verschlüsseln. Weitere Informationen über KMS-Schlüssel finden Sie unter AWS KMS keys im AWS Key Management Service Developer Guide. Wenn Sie einen verschlüsselten Snapshot kopieren, können Sie zum Verschlüsseln des Ziel-Snapshots einen anderen KMS-Schlüssel verwenden als den, der zum Verschlüsseln des Quell-Snapshots verwendet wurde.

Ein Lese-Replikat einer verschlüsselten Amazon RDS-Instanz muss mit demselben KMS-Schlüssel verschlüsselt werden wie die primäre DB-Instanz, wenn sich beide in derselben AWS Region befinden. Wenn sich die primäre DB-Instance und die Lesereplikat in unterschiedlichen AWS Regionen befinden, verschlüsseln Sie das Lesereplikat mit dem KMS-Schlüssel für diese AWS Region.

Sie können eine Von AWS verwalteter Schlüssel verwenden, oder Sie können kundenverwaltete Schlüssel erstellen. Zur Verwaltung der vom Kunden verwalteten Schlüssel, die zum Ver- und Entschlüsseln Ihrer Amazon RDS-Ressourcen verwendet werden, verwenden Sie die AWS Key Management Service (AWS KMS). AWS KMS kombiniert sichere, hochverfügbare Hardware und Software, um ein für die Cloud skaliertes Schlüsselverwaltungssystem bereitzustellen. Mit AWS KMS können Sie kundenverwaltete Schlüssel erstellen und die Richtlinien definieren, die die Verwendung dieser kundenverwalteten Schlüssel steuern. AWS KMS unterstützt CloudTrail, so dass Sie die Verwendung von KMS-Schlüsseln prüfen können, um sicherzustellen, dass die vom Kunden verwalteten Schlüssel ordnungsgemäß verwendet werden. Sie können Ihre vom Kunden verwalteten Schlüssel mit Amazon Aurora und unterstützten AWS Services wie Amazon S3, Amazon EBS und Amazon Redshift verwenden. Eine Liste der Services, die in AWS KMS integriert sind, finden Sie unter AWS-Service-Integration.

Verschlüsseln einer DB-Instance

Wählen Sie Enable encryption (Verschlüsselung aktivieren) in der Amazon-RDS-Konsole aus, um eine neue DB-Instance zu verschlüsseln. Hinweise zum Erstellen einer DB-Instance finden Sie unter Erstellen einer Amazon RDS-DB-Instance.

Wenn Sie den AWS CLI-Befehl create-db-instance verwenden, um eine verschlüsselte DB-Instance zu erstellen, legen Sie den Parameter --storage-encrypted fest. Wenn Sie die API-Operation CreateDBInstance verwenden, legen Sie den Parameter StorageEncrypted auf „true“ fest.

Wenn Sie eine verschlüsselte DB-Instanz erstellen, können Sie einen vom Kunden verwalteten Schlüssel oder den Von AWS verwalteter Schlüssel für Amazon RDS wählen, um Ihre DB-Instanz zu verschlüsseln. Wenn Sie den Schlüsselbezeichner für einen vom Kunden verwalteten Schlüssel nicht angeben, verwendet Amazon RDS die Von AWS verwalteter Schlüssel für Ihre neue DB-Instance. Amazon RDS erstellt eine Von AWS verwalteter Schlüssel für Amazon RDS für Ihr AWS Konto. Ihr AWS Konto hat eine andere Von AWS verwalteter Schlüssel für Amazon RDS für jede AWS Region.

Sobald Sie eine verschlüsselte DB-Instanz erstellt haben, können Sie den von dieser DB-Instanz verwendeten KMS-Schlüssel nicht mehr ändern. Stellen Sie daher sicher, dass Sie Ihre KMS-Schlüsselanforderungen bestimmen, bevor Sie Ihre verschlüsselte DB-Instanz erstellen.

Wenn Sie den Befehl AWS CLI create-db-instance verwenden, um eine verschlüsselte DB-Instanz mit einem vom Kunden verwalteten Schlüssel zu erstellen, setzen Sie den Parameter --kms-key-id auf einen beliebigen Schlüsselbezeichner für den KMS-Schlüssel. Wenn Sie den Vorgang Amazon RDS API CreateDBInstance verwenden, setzen Sie den Parameter KmsKeyId auf einen beliebigen Schlüsselbezeichner für den KMS-Schlüssel. Um einen vom Kunden verwalteten Schlüssel in einem anderen AWS-Konto zu verwenden, geben Sie die Schlüssel-ARN oder Alias-ARN an.

Wichtig

Amazon RDS kann den Zugriff auf den KMS-Schlüssel für eine DB-Instance verlieren. Beispielsweise verliert RDS den Zugriff, wenn der KMS-Schlüssel deaktiviert ist oder wenn der RDS-Zugriff auf einen KMS-Schlüssel widerrufen wird. In diesen Fällen geht die verschlüsselte DB-Instance in den inaccessible-encryption-credentials-recoverable-Zustand. Die DB-Instance bleibt sieben Tage lang in diesem Zustand. Wenn Sie die DB-Instance während dieser Zeit starten, wird geprüft, ob der KMS-Schlüssel aktiv ist, und die DB-Instance wiederhergestellt, falls dies der Fall ist. Starten Sie die DB-Instance mit dem AWS CLI-Befehl start-db-instance neu. Derzeit können Sie keine DB-Instance in diesem Zustand mit der AWS Management Console starten.

Wenn die DB-Instance nicht wiederhergestellt wird, geht sie in den Terminal-Zustand inaccessible-encryption-credentials über. In diesem Fall können Sie die DB-Instance nur aus einem Backup wiederherstellen. Wir empfehlen nachdrücklich, dass Sie zu jeder Zeit Backups für verschlüsselte DB-Instances aktivieren, um sich gegen den Datenverlust von verschlüsselten Daten in Ihren Datenbanken abzusichern.

Bestimmen, ob die Verschlüsselung für eine DB-Instance aktiviert ist

Sie können die AWS Management Console-, AWS CLI- oder RDS-API verwenden, um zu bestimmen, ob die Verschlüsselung im Ruhezustand für eine DB-Instance aktiviert ist.

So ermitteln Sie, ob die Verschlüsselung im Ruhezustand für eine DB-Instance aktiviert ist

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

  2. Wählen Sie im Navigationsbereich Databases (Datenbanken) aus.

  3. Wählen Sie den Namen der DB-Instance aus, die Sie überprüfen möchten, um die Details anzuzeigen.

  4. Wählen Sie die Registerkarte Konfiguration aus und überprüfen Sie den Wert für die Verschlüsselung unter Speicher.

    Es zeigt entweder Aktiviert oder Nicht aktiviert.

    
                                    Überprüfen der -Verschlüsselung für eine DB-Instance

Um zu ermitteln, ob die Verschlüsselung im Ruhezustand für eine DB-Instance mithilfe von AWS CLI aktiviert ist, rufen Sie den Befehl describe-db-instances mit der folgenden Option auf:

  • --db-instance-identifier – der Name der DB-Instance

Im folgenden Beispiel wird eine Abfrage verwendet, um entweder TRUE oder FALSE bezüglich der Verschlüsselung im Ruhezustand für die mydb DB-Instance zurückzugeben.

Beispiel

aws rds describe-db-instances --db-instance-identifier mydb --query "*[].{StorageEncrypted:StorageEncrypted}" --output text

Um zu ermitteln, ob die Verschlüsselung im Ruhezustand für eine DB-Instance mithilfe der Amazon RDS-API aktiviert ist, rufen Sie die Operation DescribeDBInstances mit dem folgenden Parameter auf:

  • DBInstanceIdentifier – der Name der DB-Instance.

Verfügbarkeit der Amazon RDS-Verschlüsselung

Die Amazon RDS-Verschlüsselung ist aktuell für alle Datenbank-Engines und Speichertypen verfügbar.

Amazon RDS-Verschlüsselung ist für die meisten DB-Instance-Klassen verfügbar. In der folgenden Tabelle sind die DB-Instance-Klassen aufgeführt, die Amazon RDS-Verschlüsselung nicht unterstützen:

Instance-Typ Instance class

Allzweck (M1)

db.m1.small

db.m1.medium

db.m1.large

db.m1.xlarge

Arbeitsspeicheroptimiert (M2)

db.m2.xlarge

db.m2.2xlarge

db.m2.4xlarge

Burstable (T2)

db.t2.micro

Anmerkung

Die Verschlüsselung im Ruhezustand ist für DB-Instance, die mit SQL Server Express Edition laufen, nicht verfügbar.

Einschränkungen von Amazon RDS-verschlüsselten DB-Instances

Folgende Einschränkungen bestehen für Amazon RDS-verschlüsselte DB-Instances:

  • Sie können eine Amazon-RDS-DB-Instance nur beim Erstellen verschlüsseln, nicht nachdem die DB-Instance bereits erstellt ist.

    Da es jedoch möglich ist, die Kopie eines unverschlüsselten Snapshots zu verschlüsseln, können Sie quasi eine Verschlüsselung zu einer unverschlüsselten DB-Instance hinzufügen. Dies lässt sich durchführen, indem Sie einen Snapshot von Ihrer DB-Instance erstellen und dann eine verschlüsselte Kopie dieses Snapshots erstellen. Anschließend können Sie Ihre DB-Instance aus dem verschlüsselten Snapshot wiederherstellen und verfügen so über eine verschlüsselte Kopie Ihrer ursprünglichen DB-Instance. Weitere Informationen finden Sie unter Kopieren eines -Snapshots.

  • Sie können die Verschlüsselung für eine(n) verschlüsselte(n) DB-Instance nicht deaktivieren.

  • Sie können keinen verschlüsselten Snapshot einer/eines unverschlüsselten DB-Instance erstellen.

  • Ein Snapshot eines verschlüsselten DB-Instance muss mit demselben KMS-Schlüssel verschlüsselt werden wie der DB-Instance.

  • 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.

  • Verschlüsselte Lesereplikate müssen mit demselben KMS-Schlüssel verschlüsselt werden wie die Quell-DB-Instanz, wenn sich beide in derselben AWS Region befinden.

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

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

    Der Quell-Snapshot bleibt den gesamten Kopiervorgang über verschlüsselt. Amazon RDS verwendet Envelope-Verschlüsselung, um Daten während des Kopiervorgangs zu schützen. Weitere Informationen zur Envelope-Verschlüsselung finden Sie unter Envelope-Verschlüsselung im AWS Key Management Service-Entwicklerhandbuch.

  • Sie können eine(n) verschlüsselte(n) DB-Instance nicht entschlüsseln. Sie können jedoch Daten aus einer/einem verschlüsselten DB-Instance exportieren und die Daten in eine(n) unverschlüsselte(n) DB-Instance importieren.