

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.

# Registrieren eines manuellen Snapshot-Repositorys
<a name="managedomains-snapshot-registerdirectory"></a>

Sie müssen ein Snapshot-Repository bei OpenSearch Service registrieren, bevor Sie manuelle Index-Snapshots erstellen können. Dieser einmalige Vorgang erfordert, dass Sie Ihre AWS Anfrage mit Zugangsdaten signieren, die für den Zugriff berechtigt sind`TheSnapshotRole`, wie unter beschrieben[Voraussetzungen](managedomains-snapshots.md#managedomains-snapshot-prerequisites).

## Schritt 1: Ordnen Sie die Snapshot-Rolle in OpenSearch Dashboards zu (wenn Sie eine differenzierte Zugriffskontrolle verwenden)
<a name="managedomains-snapshot-fgac"></a>

Eine differenzierte Zugriffskontrolle führt einen zusätzlichen Schritt bei der Registrierung eines Repositorys ein. Auch wenn Sie die HTTP-Basisauthentifizierung für alle anderen Zwecke verwenden, müssen Sie die `manage_snapshots`-Rolle Ihrer IAM-Rolle mit `iam:PassRole`-Berechtigungen zuordnen, um `TheSnapshotRole` zu übergeben.

1. Navigieren Sie zum OpenSearch Dashboards-Plugin für Ihre Service-Domain. OpenSearch Sie finden den Dashboards-Endpunkt in Ihrem Domain-Dashboard in der OpenSearch Service-Konsole. 

1. Wählen Sie im Hauptmenü **Sicherheit**, **Rollen**, und wählen Sie die Rolle **manage\$1snapshots**.

1. Wählen Sie **Zugeordnete Benutzer**, **Mapping verwalten**. 

1. Fügen Sie den ARN der Rolle hinzu, die über Berechtigungen zum Weitergeben von `TheSnapshotRole` verfügt. Platzieren Sie die Rolle ARNs unter **Backend-Rollen**.

   ```
   arn:aws:iam::123456789123:role/role-name
   ```

1. Wählen Sie **Zuordnen** und bestätigen Sie, dass der Benutzer oder die Rolle unter **Zugeordnete Benutzer** angezeigt wird.

## Schritt 2: Registrieren eines Repositorys
<a name="managedomains-snapshot-register"></a>

Auf der folgenden Registerkarte „**Snapshots**“ wird gezeigt, wie ein Snapshot-Verzeichnis registriert wird. Spezifische Optionen für die Verschlüsselung eines manuellen Snapshots und die Registrierung eines Snapshots nach der Migration zu einer neuen Domain finden Sie auf den entsprechenden Registerkarten.

------
#### [ Snapshots ]

Um ein Snapshot-Repository zu registrieren, senden Sie eine PUT-Anfrage an den Endpunkt der OpenSearch Service-Domäne. Sie können [curl](https://curl.se/docs/manpage.html#--aws-sigv4), den [Python-Beispielclient](#managedomains-snapshot-client-python), [Postman](https://www.getpostman.com/) oder eine andere Methode verwenden, um eine signierte Anfrage zur Registrierung des Snapshot-Repositorys zu senden. Beachten Sie, dass Sie in der OpenSearch Dashboards-Konsole keine PUT-Anfrage verwenden können, um das Repository zu registrieren.

Die Anfrage hat das folgende Format:

```
PUT domain-endpoint/_snapshot/my-snapshot-repo-name
{
  "type": "s3",
  "settings": {
    "bucket": "amzn-s3-demo-bucket",
    "base_path": "my/snapshot/directory",
    "region": "region",
    "role_arn": "arn:aws:iam::123456789012:role/TheSnapshotRole"
  }
}
```

**Anmerkung**  
Repository-Namen dürfen nicht mit „cs-“ beginnen. Darüber hinaus sollten Sie nicht von mehreren Domains in dasselbe Repository schreiben. Nur eine Domain sollte Schreibzugriff auf das Repository haben.

Wenn sich Ihre Domain in einer Virtual Private Cloud (VPC) befindet, muss Ihr Computer mit der VPC verbunden sein, damit die Anforderung zur erfolgreichen Registrierung des Snapshot-Repositorys erfolgt. Der Zugriff auf eine VPC unterscheidet sich je nach Netzwerkkonfiguration, wahrscheinlich muss eine Verbindung mit einem VPN oder Unternehmensnetzwerk hergestellt werden. Um zu überprüfen, ob Sie die OpenSearch Service-Domain erreichen können, navigieren Sie `https://your-vpc-domain.region.es.amazonaws.com` in einem Webbrowser zu und stellen Sie sicher, dass Sie die Standard-JSON-Antwort erhalten.

Wenn sich Ihr Amazon S3 S3-Bucket in einer anderen AWS-Region als Ihrer OpenSearch Domain befindet, fügen Sie den Parameter `"endpoint": "s3.amazonaws.com"` zur Anfrage hinzu.

------
#### [ Encrypted snapshots ]

Sie können derzeit keine AWS Key Management Service (KMS-) Schlüssel zum Verschlüsseln manueller Snapshots verwenden, aber Sie können sie mit serverseitiger Verschlüsselung (SSE) schützen.

Um SSE mit S3-verwalteten Schlüsseln für den Bucket zu aktivieren, den Sie als Snapshot-Repository verwenden, fügen Sie dem `"settings"` Block der `"server_side_encryption": true` PUT-Anforderung etwas hinzu. Weitere Informationen finden Sie unter [Verwenden serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) im *Benutzerhandbuch zu Amazon Simple Storage Service*.

Alternativ können Sie AWS KMS Schlüssel für die serverseitige Verschlüsselung für den S3-Bucket verwenden, den Sie als Snapshot-Repository verwenden. Wenn Sie diesen Ansatz verwenden, stellen Sie sicher, dass Sie dem AWS KMS Schlüssel, der zur Verschlüsselung des S3-Buckets verwendet wird, die `TheSnapshotRole` Erlaubnis erteilen. Weitere Informationen finden Sie unter [Schlüsselrichtlinien in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html).

------
#### [ Domain migration ]

Das Registrieren eines Snapshot-Repositorys ist ein einmaliger Vorgang. Um jedoch von einer Domain zu einer anderen zu migrieren, müssen Sie dasselbe Snapshot-Repository auf der alten und der neuen Domain registrieren. Der Repository-Name ist beliebig.

Berücksichtigen Sie die folgenden Richtlinien, wenn Sie zu einer neuen Domain migrieren oder dasselbe Repository bei mehreren Domains registrieren:
+ Fügen Sie beim Registrieren des Repositorys in der neuen Domain `"readonly": true` zum `"settings"`-Block der PUT-Anforderung hinzu. Diese Einstellung verhindert, dass Sie versehentlich Daten aus der alten Domain überschreiben. Nur eine Domain sollte Schreibzugriff auf das Repository haben.
+ Wenn Sie Daten zu einer Domain in einer anderen AWS-Region migrieren (z. B. von einer alten Domain und einem Bucket in us-east-2 zu einer neuen Domain in us-west-2), `"region": "region"` ersetzen Sie sie `"endpoint": "s3.amazonaws.com"` in der PUT-Anweisung durch und versuchen Sie die Anfrage erneut.

------

### Verwenden des Python-Beispielclients
<a name="managedomains-snapshot-client-python"></a>

Der Python-Client ist einfacher zu automatisieren als eine einfache HTTP-Anfrage und bietet eine bessere Wiederverwendbarkeit. Wenn Sie diese Methode zum Registrieren eines Snapshot-Repositorys verwenden, speichern Sie den folgenden Python-Beispielcode als Python-Datei, z. B. `register-repo.py`. Der Client benötigt die Pakete [AWS SDK für Python (Boto3)](https://aws.amazon.com/sdk-for-python/), [Anforderungen](http://docs.python-requests.org/) und [requests-aws4auth](https://pypi.python.org/pypi/requests-aws4auth). Der Client enthält auskommentierte Beispiele für andere Snapshot-Vorgänge.

Aktualisieren Sie die folgenden Variablen im Beispiel-Code: `host`, `region`, `path`, und`payload`.

```
import boto3
import requests
from requests_aws4auth import AWS4Auth

host = '' # domain endpoint
region = '' # e.g. us-west-1
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

# Register repository

path = '/_snapshot/my-snapshot-repo-name' # the OpenSearch API endpoint
url = host + path

payload = {
  "type": "s3",
  "settings": {
    "bucket": "amzn-s3-demo-bucket",
    "base_path": "my/snapshot/directory",
    "region": "us-west-1",
    "role_arn": "arn:aws:iam::123456789012:role/snapshot-role"
  }
}

headers = {"Content-Type": "application/json"}

r = requests.put(url, auth=awsauth, json=payload, headers=headers)

print(r.status_code)
print(r.text)

# # Take snapshot
#
# path = '/_snapshot/my-snapshot-repo-name/my-snapshot'
# url = host + path
#
# r = requests.put(url, auth=awsauth)
#
# print(r.text)
#
# # Delete index
#
# path = 'my-index'
# url = host + path
#
# r = requests.delete(url, auth=awsauth)
#
# print(r.text)
#
# # Restore snapshot (all indexes except Dashboards and fine-grained access control)
#
# path = '/_snapshot/my-snapshot-repo-name/my-snapshot/_restore'
# url = host + path
#
# payload = {
#   "indices": "-.kibana*,-.opendistro_security,-.opendistro-*",
#   "include_global_state": False
# }
#
# headers = {"Content-Type": "application/json"}
#
# r = requests.post(url, auth=awsauth, json=payload, headers=headers)
#
# print(r.text)
# 
# # Restore snapshot (one index)
#
# path = '/_snapshot/my-snapshot-repo-name/my-snapshot/_restore'
# url = host + path
#
# payload = {"indices": "my-index"}
#
# headers = {"Content-Type": "application/json"}
#
# r = requests.post(url, auth=awsauth, json=payload, headers=headers)
#
# print(r.text)
```