Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Wie stelle ich Daten aus einer OpenSearch Service-Domain in einem anderen AWS-Konto wieder her?
Ich möchte Daten aus einer Amazon OpenSearch Service-Domain in einem anderen Konto wiederherstellen.
Kurzbeschreibung
Um Daten aus einer OpenSearch Service-Domain in einem anderen Konto wiederherzustellen, musst du den kontoübergreifenden Zugriff für die folgenden Domains einrichten:
- Die Quell-Domain, von der du Daten wiederherstellen möchtest (Konto A)
- Deine OpenSearch Service-Ziel-Domain (Konto B)
Du musst außerdem Berechtigungen für deine Domain einrichten, um auf den Amazon Simple Storage Service (Amazon S3)-Bucket zuzugreifen, in dem deine Daten gespeichert sind.
Hinweis: Du musst im Ziel (Konto B) keinen Amazon S3-Bucket erstellen. OpenSearch Service verwendet einen einzigen Amazon S3-Bucket, um die Daten in deinen Konten wiederherzustellen.
Lösung
Hinweis: OpenSearch Service verwendet die Quell-Domain in Konto A für Cluster-Snapshots.
Erstelle zunächst einen Amazon S3-Bucket in Konto A in derselben AWS-Region wie die OpenSearch Service-Ziel-Domain. Führe dann die folgenden Schritte aus, um den kontoübergreifenden Zugriff einzurichten. Du musst die Schritte sowohl für Konto A als auch für Konto B ausführen.
Richte den Zugriff auf den S3-Bucket in beiden Konten ein
Führe die folgenden Schritte aus:
-
Erstelle eine AWS Identity and Access Management (IAM)-Rolle, die OpenSearch Service die Erlaubnis erteilt, auf den S3-Bucket zuzugreifen. Wähle dann Amazon Elastic Compute Cloud (Amazon EC2) als deinen Service aus.
-
Erstelle die folgende IAM-Richtlinie, die eine S3-Bucket-Zugriffsberechtigung gewährt, und hänge die Richtlinie dann der IAM-Rolle an:
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::AccountA_S3_Bucket_Name" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::AccountA_S3_Bucket_Name/*" ] }] }
Hinweis: Ersetze arn:aws:s3:::AccountA_S3_Bucket_Name durch den ARN deines Buckets.
-
Aktualisiere die Bucket-Richtlinie von Konto A mit der folgenden Anweisung, um kontoübergreifenden Bucket-Zugriff auf die IAM-Rolle in Konto B zu gewähren:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission for AccountB role", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-B-id:role/AccountB-role" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket", "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::AccountA-bucket", "arn:aws:s3:::AccountA-bucket/*" ] } ] }
-
Aktualisiere die Vertrauensrichtlinie der Rolle, sodass sie das folgende Vertrauensverhältnis enthält:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }] }
Hinweis: Notiere dir den ARN der Rolle, der in späteren Schritten verwendet werden soll.
-
Um OpenSearch Service Schreibzugriff auf deinen S3-Bucket zu gewähren, führe eine der folgenden Aktionen aus:
Um alle deine Berechtigungen unter einer IAM-Rolle zu gruppieren, nimm die Berechtigung iam:PassRole in deine bestehende IAM-Richtlinie auf.
-oder-
Um Berechtigungen aufzuteilen, erstelle eine neue IAM-Richtlinie mit der Berechtigung iam:PassRole.
Hinweis: Du musst die IAM-Richtlinie an die IAM-Rolle anhängen, die du zum Signieren der HTTP-Anfrage verwendest.
Die folgende Beispielrichtlinie enthält die erforderlichen IAM-Berechtigungen:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::Account:snapshot role" }, { "Effect": "Allow", "Action": "es:ESHttpPut", "Resource": "arn:aws:es:us-east-1:Account:domain/srestore/*" }] }
Hinweis: Ersetze arn:aws:iam::Account:snapshot-role durch deine IAM-Rolle. Ersetze außerdem arn:aws:es:us-east-1:Account:domain/restore/* durch die OpenSearch Service-Domain in Konto A oder Konto B.
-
Wenn du die detaillierte Zugriffskontrolle für deine Domain aktiviert hast, musst du die IAM-Rolle OpenSearch Dashboards zuordnen. Die IAM-Rolle verwendet eine detaillierte Zugriffskontrolle, um den Zugriff auf die Lese- oder Schreib-API zu ermöglichen.
-
(Optional) Wenn du den Python-Client in Konto A verwendet hast, um den Bucket bei OpenSearch Service zu registrieren, starte eine EC2-Instance in Konto A. Füge dann deine IAM-Rolle hinzu.
Hinweis: Stelle sicher, dass deine Sicherheitsgruppe auf die OpenSearch Service-Domain zugreifen kann.
Registriere den S3-Bucket als Snapshot-Repository in beiden Konten
Wichtig: Für Konto B musst du die IAM-Benutzerauthentifizierungsdaten von Konto B verwenden und OpenSearch Service als Ziel auswählen.
Um den Bucket zu registrieren, verwende die Postman-Anwendung, um eine HTTP-PUT-Anfrage zu stellen. Informationen zur Installation der Anwendung findest du unter Postman herunterladen auf der Postman-Website.
Führe die folgenden Schritte aus:
- Gib bei PUT eine URL ein, die den OpenSearch Service-Domain-Endpunkt und den S3-Bucket-Namen enthält, zum Beispiel your-domain-endpoint.amazonaws.com/_snapshot/your-snapshot-repository-name.
- Wähle die Registerkarte Autorisierung aus.
- Wähle unter Postman für Typ die Option AWS Signature aus. Gib bei AccessKey und SecretKey die Zugriffsschlüssel des IAM-Benutzers ein.
- Gib bei AWS-Region deine Region ein.
- Gib beim Servicenamen es ein.
- Wähle Speichern aus.
- Wähle die Registerkarte Header aus.
- Wähle für Schlüsseltyp die Option Inhaltstyp aus.
- Wähle für Schlüsselwert die Option Anwendung/JSON aus.
- Wähle Speichern aus.
- Wähle die Registerkarte Text aus.
- Registriere den S3-Bucket als Snapshot-Repository:
{ "type": "s3", "settings": { "bucket": "snapshot", "region": "us-east-1", "role_arn": "arn:aws:iam::Account:role/cross" } }
Hinweis: Ersetze snapshot durch deinen S3-Bucket-Namen, us-east-1 durch deine Region und arn:aws:iam::Account:role/cross durch die IAM-Rolle von Konto A oder Konto B. Um die Anfrage zu senden, wähle Senden aus.
Nachdem die Registrierung abgeschlossen ist, erhältst du die Meldung Status Code: 200 OK.
Stelle sicher, dass dein Snapshot-Repository richtig konfiguriert ist
Führe in Konto A die folgenden Schritte aus:
- Öffne OpenSearch Dashboards und überprüfe dann die verfügbaren Daten im Bucket.
- Führe den folgenden Befehl aus, um einen neuen Snapshot zu erstellen:
Hinweis: Ersetze my-snapshot-repo-name durch deinen S3-Bucket-Namen und den snapshot name durch deinen Snapshot-Namen.PUT /_snapshot/my-snapshot-repo-name/snapshot_name
Die folgende Beispielausgabe bestätigt eine vollständige S3-Bucket-Registrierung für die OpenSearch Service-Domain in Konto A:GET _cat/snapshots/my-snapshot-repo-name SUCCESS 1585190280 02:38:00 1585190284 02:38:04 3.9s 4 4 0 4
Führe in Konto B die folgenden Schritte aus:
-
Öffne OpenSearch Dashboards.
-
Führe den folgenden Befehl aus, um die Snapshots von Konto A anzuzeigen, die im S3-Bucket verfügbar sind:
GET _cat/snapshots/my-snapshot-repo-name
**Hinweis:**Ersetze my-snapshot-repo-name durch dein Snapshot-Repository.
Die folgende Beispielausgabe bestätigt, dass du den kontoübergreifenden Zugriff in Konto B eingerichtet hast:today SUCCESS 1585190280 02:38:00 1585190284 02:38:04 3.9s 4 4 0 4
-
Führe den folgenden Befehl aus, um die Daten wiederherzustellen:
POST /_snapshot/my-snapshot-repo-name/snapshotID/_restore
**Hinweis:**Ersetze my-snapshot-repo-name durch dein Snapshot-Repository und snapshotID durch deinen Snapshot-Namen.
-
Führe den folgenden Befehl aus, um bestimmte Indizes wiederherzustellen:
POST /_snapshot/my-snapshot-repo-name/snapshot ID/_restore { "indices": "index name1,index name2" }
**Hinweis:**Ersetze my-snapshot-repo-name durch dein Snapshot-Repository und snapshotID durch deinen Snapshot-Namen. Ersetze außerdem index name1 und indexname2 durch deine Indizes.
-
Führe den folgenden Befehl aus, um die wiederhergestellten Indizes zu überprüfen:
GET _cat/indices?v
Ähnliche Informationen
Wie migriere ich Daten von einer OpenSearch-Service-Domain zu einer anderen?
Amazon OpenSearch Service-Indizes mithilfe von Remote-Neuindizierung migrieren

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 5 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren