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.
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
OptionOLS
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
oderOLS
(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
Öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich die Option Snapshots.
-
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",
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:
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.
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
-
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich die Option Snapshots.
-
Wählen Sie den manuellen Snapshot, den Sie freigeben möchten.
-
Wählen Sie unter Actions (Aktionen) die Option Share Snapshots (Snapshot freigeben).
-
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.
-
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.
-
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
-
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich die Option Snapshots.
-
Wählen Sie den manuellen Snapshot, für den Sie die Freigabe beenden möchten.
-
Wählen Sie die Option Aktionen und anschließend Share Snapshot (Snapshot freigeben) aus.
-
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).
-
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\"]"
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
.