Freigeben eines DB Schnappschusses - Amazon Relational Database Service

Freigeben eines DB Schnappschusses

Mithilfe von Amazon RDS können Sie einen manuellen DB-Snapshot wie folgt freigeben:

  • Die Freigabe eines manuellen DB-Snapshots, ob verschlüsselt oder nicht verschlüsselt, ermöglicht autorisierten AWS-Konten, den Snapshot zu kopieren.

  • Die Freigabe eines nicht verschlüsselten manuellen DB-Snapshots ermöglicht autorisierten AWS-Konten die direkte Wiederherstellung einer DB-Instance aus dem Snapshot, statt eine Kopie der DB-Instance zu erstellen und sie aus dieser Kopie wiederherzustellen. Sie können eine DB-Instance jedoch nicht aus einem DB-Snapshot wiederherstellen, der zugleich freigegeben und verschlüsselt ist. Stattdessen können Sie eine Kopie des DB-Snapshots erstellen und die DB-Instance aus der Kopie wiederherstellen.

Anmerkung

Wenn Sie einen automatisierten DB-Snapshot freigeben möchten, erstellen Sie einen manuellen DB-Snapshot, indem Sie den automatisierten Snapshot kopieren und diese Kopie dann freigeben. Dieser Vorgang gilt auch für Ressourcen, die von AWS Backup generiert wurden.

Weitere Informationen zum Kopieren von Snapshots finden Sie unter Kopieren eines DB-Snapshots. Weitere Informationen zum Wiederherstellen einer DB-Instance aus einem DB-Snapshot finden Sie unter Wiederherstellen aus einem DB--Snapshot.

Sie können einen manuellen Snapshot für bis zu 20 weitere AWS-Konten freigeben.

Bei der Freigabe manueller Snapshots für andere AWS-Konten gelten die folgenden Einschränkungen:

  • Wenn Sie eine DB-Instance über die AWS Command Line Interface (AWS CLI) oder Amazon-RDS-API aus einem freigegebenen Snapshot wiederherstellen, müssen Sie den Amazon-Ressourcennamen (ARN) des freigegebenen Snapshots als Snapshot-Bezeichner angeben.

  • Sie können keinen DB-Snapshot freigeben, der eine Optionsgruppe mit permanenten oder dauerhaften Optionen verwendet, mit Ausnahme von Oracle DB-Instances, die über die Timezone Option OLS oder (oder beides) verfügen.

    Eine permanente Option kann nicht aus einer Optionsgruppe entfernt werden. Optionsgruppen mit persistenten Optionen können nicht aus einer DB-Instance entfernt werden, nachdem die Optionsgruppe der DB-Instance zugewiesen wurde.

    Die folgende Tabelle listet die permanenten und persistenten Optionen und die entsprechenden DB-Engines auf.

    Optionsname Persistent Permanent DB-Engine
    TDE Ja Nein Microsoft SQL Server Enterprise Edition
    TDE Ja Ja Oracle Enterprise Edition
    Zeitzone Ja Ja

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

    Oracle Standard Edition Two

    Bei Oracle-DB-Instances können Sie gemeinsam genutzte DB-Snapshots mit der Option Timezone oder OLS (oder beiden) kopieren. Geben Sie dazu eine Zieloptionengruppe an, die diese Optionen enthält, wenn Sie den DB-Snapshot kopieren. Die OLS ist nur für Oracle DB-Instances permanent und persistent, die Oracle Version 12.2 oder höher ausführen. Weitere Informationen zu diesen Optionen finden Sie unter Oracle-Zeitzone und Oracle Label Security.

Freigeben öffentlicher Snapshots

Sie können darüber hinaus einen nicht verschlüsselten Snapshot als öffentlich freigeben. Damit ist der Snapshot für alle AWS-Konten verfügbar. Achten Sie bei der Freigabe eines Snapshots als öffentlich darauf, dass in Ihren öffentlichen Snapshots keine privaten Informationen enthalten sind.

Wenn ein Snapshot öffentlich freigegeben wird, gibt er allen AWS-Konten die Berechtigung sowohl zum Kopieren des Snapshots als auch zum Erstellen von DB-Instances aus dem Snapshot.

Die Speicherung von Backups öffentlicher Snapshots anderer Konten wird Ihnen nicht in Rechnung gestellt. Ihnen werden nur Ihre eigenen Snapshots berechnet.

Wenn Sie einen öffentlichen Snapshot kopieren, sind Sie der Eigentümer der Kopie. Ihnen wird die Speicherung von Backups Ihrer Snapshot-Kopie in Rechnung gestellt. Wenn Sie eine DB-Instance aus einem öffentlichen Snapshot erstellen, wird Ihnen diese DB-Instance in Rechnung gestellt. Informationen zu Amazon-RDS-Preisen finden Sie auf der Amazon-RDS-Produktseite.

Sie können nur Ihre eigenen öffentlichen Snapshots löschen. Um einen freigegebenen oder öffentlichen Snapshot zu löschen, müssen Sie sich mit dem AWS-Konto anmelden, in dessen Besitz sich der Snapshot befindet.

Aufrufen öffentlicher Snapshots anderer AWS-Konten

Sie können öffentliche Snapshots aufrufen, die anderen Konten in einer bestimmten AWS-Region gehören. Rufen Sie dazu die Registerkarte Public (Öffentlich) des Snapshots in der Amazon RDS-Konsole auf. Ihre Snapshots (die Ihrem Konto gehören) werden auf dieser Registerkarte nicht angezeigt.

So rufen Sie öffentliche Snapshots auf

  1. Öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich die Option Snapshots.

  3. Wählen Sie die Registerkarte Public (Öffentlich).

    Die öffentlichen Snapshots werden angezeigt. Sie können in der Spalte Owner (Eigentümer) sehen, welches Konto einen öffentlichen Snapshot besitzt.

    Anmerkung

    Möglicherweise müssen Sie die Seiteneinstellungen ändern, indem Sie das Zahnradsymbol oben rechts im Bereich Public Snapshots (Öffentliche Snapshots aufrufen, damit diese Spalte eingeblendet wird.

Aufrufen Ihrer eigenen öffentlichen Snapshots

Sie können den folgenden AWS CLI-Befehl (nur Unix) verwenden, um die öffentlichen Snapshots im Besitz Ihres AWS-Konto in einer bestimmten AWS-Region aufzurufen.

aws rds describe-db-snapshots --snapshot-type public --include-public | grep account_number

Die zurückgegebene Ausgabe ähnelt bei öffentlichen Snapshots dem folgenden Beispiel.

"DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot1", "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot2",
Anmerkung

Möglicherweise sehen Sie doppelte Einträge für DBSnapshotIdentifier oder SourceDBSnapshotIdentifier.

Freigeben verschlüsselter Snapshots

Sie können DB-Snapshots freigeben, die während der Speicherung mittels des AES-256-Verschlüsselungsalgorithmus verschlüsselt wurden, wie in Verschlüsseln von Amazon RDS-Ressourcen beschrieben. Führen Sie hierzu die folgenden Schritte aus:

  1. Geben Sie die AWS KMS key, die zur Verschlüsselung des Snapshots verwendet wurde, für alle Konten frei, die auf den Snapshot zugreifen können sollen.

    Sie können KMS-Schlüssel mit einem anderen AWS-Konto gemeinsam nutzen, indem Sie das andere Konto zur KMS-Schlüsselrichtlinie hinzufügen. Details zum Aktualisieren einer Schlüsselrichtlinie finden Sie unter Schlüsselrichtlinien im AWS KMS-Entwicklerhandbuch. Ein Beispiel für die Erstellung einer Schlüsselrichtlinie finden Sie unter Ermöglichung des Zugangs zu einem AWS KMS key an späterer Stelle in diesem Thema.

  2. Mittels der AWS Management Console, AWS CLI oder Amazon-RDS-API können Sie den verschlüsselten Snapshot für die anderen Konten freigeben.

Die folgenden Einschränkungen gelten für die Freigabe verschlüsselter Snapshots:

  • Sie können verschlüsselte Snapshots nicht als öffentlich freigeben.

  • Sie können keine Oracle- oder Microsoft SQL Server-Snapshots freigeben, die mittels Transparent Data Encryption (TDE) verschlüsselt sind.

  • Sie können einen Snapshot, der mit dem Standard-KMS-Schlüssel des AWS Kontos, das den Snapshot freigegeben hat, verschlüsselt wurde, nicht freigeben.

Ermöglichung des Zugangs zu einem AWS KMS key

Damit ein anderes AWS Konto einen verschlüsselten DB-Snapshot kopieren kann, der von Ihrem Konto freigegeben wurde, muss das Konto, für das Sie Ihren Snapshot freigeben, Zugriff auf den AWS KMS key haben, der den Snapshot verschlüsselt hat.

So lassen Sie ein anderesAWSverwenden, aktualisieren Sie die Schlüsselrichtlinie für den Schlüsselrichtlinie des Schlüsselrichtlinie. Sie aktualisieren sie mit dem Amazon-Ressourcennamen (ARN) desAWS-Konto, für das Sie als Principal in der Schlüsselrichtlinie von Amazon KMS. Dann erlauben Sie die kms:CreateGrant-Aktion.

Nachdem Sie einem Konto AWS Zugriff auf Ihren KMS-Schlüssel gewährt haben, muss dieses KontoAWS zum Kopieren des verschlüsselten Snapshots eine AWS Identity and Access Management (IAM-)Rolle oder einen Benutzer erstellen, falls es noch keine(n) hat. Darüber hinaus muss dieses AWS-Konto dieser IAM-Rolle oder diesem Benutzer eine IAM-Richtlinie zuordnen, die es der Rolle oder dem Benutzer erlaubt, einen verschlüsselten DB-Snapshot mit Ihrem KMS-Schlüssel zu kopieren. Bei dem Konto muss es sich um einen IAM-Benutzer handeln. Es darf sich aufgrund von AWS-Sicherheitseinschränkungen nicht um eine AWS KMS-Konto-Stammidentität handeln.

Im folgenden Beispiel für eine Schlüsselrichtlinie ist Benutzer 111122223333 der Eigentümer des KMS-Schlüssels, und Benutzer 444455556666 ist das Konto, für das der Schlüssel freigegeben wird. Diese aktualisierte Schlüsselrichtlinie erlaubt dem Konto AWS den Zugriff auf den KMS-Schlüssel, indem sie den ARN für die Identität des Root-Kontos AWS für Benutzer 444455556666 als Principal für die Richtlinie einschließt und die kms:CreateGrant-Aktion zulässt.

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }

Erstellen einer IAM-Richtlinie, um das Kopieren des verschlüsselten Snapshots zu erlauben

Sobald das externe AWS Konto Zugriff auf Ihren KMS-Schlüssel hat, kann der Besitzer dieses AWS-Kontos eine Richtlinie erstellen, die es einem für dieses Konto erstellten IAM-Benutzer erlaubt, einen mit diesem KMS-Schlüssel verschlüsselten Snapshot zu kopieren.

Das folgende Beispiel zeigt eine Richtlinie, die einem IAM-Benutzer für ein AWS-Konto 444455556666 zugeordnet werden kann und die es dem IAM-Benutzer ermöglicht, einen freigegebenen Snapshot von AWS Konto 111122223333 zu kopieren, der mit dem KMS-Schlüssel c989c1dd-a3f2-4a5d-8d96-e793d082ab26 in der Region us-west-2 verschlüsselt wurde.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant" ], "Resource": ["arn:aws:kms:us-west-2:111122223333:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2:111122223333:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

Details zum Aktualisieren einer Schlüsselrichtlinie finden Sie unter Schlüsselrichtlinien im AWS KMS-Entwicklerhandbuch.

Freigeben eines Snapshots

Mithilfe der AWS Management Console, der AWS CLI oder der RDS-API geben Sie einen manuellen DB-Snapshot frei.

Mithilfe der Amazon-RDS-Konsole geben Sie einen manuellen DB--Snapshot für bis zu 20 AWS-Konten frei. Sie können die Konsole auch verwenden, um die Freigabe eines manuellen Snapshots für ein oder mehrere Konten zu beenden.

So geben Sie eine manuelle DB freiSnapshot mit der Amazon RDS-Konsole

  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 die Option Snapshots.

  3. Wählen Sie den manuellen Snapshot, den Sie freigeben möchten.

  4. Wählen Sie unter Actions (Aktionen) die Option Share Snapshots (Snapshot freigeben).

  5. Wählen Sie für DB Snapshot Visibility (Sichtbarkeit des DB-Snapshots) eine der folgenden Optionen.

    • Wenn die Quelle unverschlüsselt ist, wählen Sie Public (Öffentlich) aus, um allen AWS-Konten zu erlauben, eine DB-Instance aus Ihrem manuellen DB-Snapshot wiederherzustellen, oder wählen Sie Private (Privat) aus, um nur AWS-Konten, die Sie angeben, zu erlauben, eine DB-Instance aus Ihrem manuellen DB-Snapshot wiederherzustellen.

      Warnung

      Wenn Sie DB snapshot visibility (Sichtbarkeit des DB-Snapshots) auf Public (Öffentlich) festlegen, können alle AWS-Konten eine DB-Instance aus Ihrem manuellen DB-Snapshot wiederherstellen und auf Ihre Daten zugreifen. Geben Sie keine manuellen DB-Snapshots als Public (Öffentlich) frei, die private Informationen enthalten.

    • Ist die Quelle verschlüsselt, ist DB Snapshot Visibility (Sichtbarkeit des DB-Snapshots) auf Private (Privat) festgelegt, da verschlüsselte Snapshots nicht als öffentlich freigegeben werden können.

  6. Geben Sie in AWS Account ID (AWS-Konto-ID) den AWS-Kontobezeichner für ein Konto ein, für das Sie die Wiederherstellung einer DB-Instance aus Ihrem manuellen Snapshot zulassen möchten, und wählen Sie anschließend Add (Hinzufügen) aus. Wiederholen Sie diesen Vorgang, um zusätzliche AWS-Kontobezeichner einzuschließen (bis zu 20 AWS-Konten).

    Wenn Sie beim Hinzufügen eines AWS-Kontobezeichners zur Liste der zulässigen Konten einen Fehler machen, können Sie diesen aus der Liste löschen, indem Sie rechts vom falschen AWS-Kontobezeichner Delete (Löschen) wählen.

    
							AWS-Konten das Wiederherstellen eines manuellen DB-Snapshots gestatten
  7. Nachdem Sie für alle AWS-Konten, für die Sie die Wiederherstellung aus dem manuellen Snapshot zulassen möchten, Bezeichner hinzugefügt haben, wählen Sie Save (Speichern), um Ihre Änderungen zu speichern.

So beenden Sie die Freigabe eines manuellen DB-Snapshots für ein AWS-Konto

  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 die Option Snapshots.

  3. Wählen Sie den manuellen Snapshot, für den Sie die Freigabe beenden möchten.

  4. Wählen Sie die Option Aktionen und anschließend Share Snapshot (Snapshot freigeben) aus.

  5. Um die Berechtigung für ein AWS-Konto zu entfernen, wählen Sie für den AWS-Kontobezeichner des betreffenden Kontos in der Liste der autorisierten Konten Delete (Löschen).

    
						AWS-Konten das Wiederherstellen eines manuellen DB-Snapshots gestatten
  6. Wählen Sie Save (Speichern), um Ihre Änderungen zu speichern.

Verwenden Sie den Befehl aws rds modify-db-snapshot-attribute, um einen DB-Snapshot freizugeben. Nutzen Sie den Parameter --values-to-add, um eine Liste der IDs für die AWS-Konten hinzuzufügen, die zur Wiederherstellung des manuellen Snapshots autorisiert sind.

Beispiel einen Snapshot mit einem einzigen Konto teilen

Im folgenden Beispiel wird die AWS-Konto-ID 123456789012, befähigt, den DB-Snapshot namens db7-snapshot wiederherzustellen.

Für Linux, macOS oder Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier db7-snapshot \ --attribute-name restore \ --values-to-add 123456789012

Für Windows:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier db7-snapshot ^ --attribute-name restore ^ --values-to-add 123456789012

Beispiel einen Snapshot mit mehreren Konten teilen

Im folgenden Beispiel werden zwei AWS-Konto-IDs, 111122223333 und 444455556666, befähigt, den DB-Snapshot namens manual-snapshot1 wiederherzustellen.

Für Linux, macOS oder Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier manual-snapshot1 \ --attribute-name restore \ --values-to-add {"111122223333","444455556666"}

Für Windows:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier manual-snapshot1 ^ --attribute-name restore ^ --values-to-add "[\"111122223333\",\"444455556666\"]"
Anmerkung

Bei Verwendung der Windows-Befehlszeile müssen doppelte Anführungszeichen (") im JSON-Code mit einem umgekehrten Schrägstrich (\) als Escape-Zeichen versehen werden.

Verwenden Sie den Parameter AWS, um eine --values-to-remove-Konto-ID aus der Liste zu entfernen.

Beispiel das Stoppen der Snapshot-Freigabe

Im folgenden Beispiel wird verhindert, dass die AWS-Konto-ID 444455556666 den Snapshot wiederherstellt.

Für Linux, macOS oder Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier manual-snapshot1 \ --attribute-name restore \ --values-to-remove 444455556666

Für Windows:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier manual-snapshot1 ^ --attribute-name restore ^ --values-to-remove 444455556666

Um die AWS-Konten aufzulisten, die befähigt wurden, einen Snapshot wiederherzustellen, verwenden Sie den AWS CLI-Befehl describe-db-snapshot-attributes.

Sie können einen manuellen DB-Snapshots auch über die Amazon-RDS-API für andere AWS-Konten freigeben. Rufen Sie dazu die Operation ModifyDBSnapshotAttribute auf. Geben Sie restore für AttributeName an und verwenden Sie den Parameter ValuesToAdd, um eine Liste der IDs für die AWS-Konten hinzuzufügen, die zur Wiederherstellung des manuellen Snapshots autorisiert sind.

Um einen manuellen Snapshot öffentlich zu machen, sodass alle AWS-Konten ihn wiederherstellen können, verwenden Sie den Wert all. Achten Sie jedoch darauf, den Wert all keinen manuellen Snapshots hinzuzufügen, die private Informationen enthalten, die nicht für alle AWS-Konten verfügbar sein sollen. Darüber hinaus sollten Sie all nicht für verschlüsselte Snapshots angeben, da die öffentliche Bereitstellung dieser Snapshots nicht unterstützt wird.

Um die Freigabeberechtigung für ein AWS-Konto zu entfernen, verwenden Sie die Operation ModifyDBSnapshotAttribute, wobei AttributeName auf restore festgelegt und der Parameter ValuesToRemove angegeben ist. Um einen manuellen Snapshot als privat zu markieren, entfernen Sie den Wert all aus der Liste der Werte für das Attribut restore.

Um alle AWS-Konten aufzulisten, denen die Wiederherstellung eines Snapshots gestattet ist, verwenden Sie die API-Operation DescribeDBSnapshotAttributes.