Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Registrar un repositorio de instantáneas manuales
Debe registrar un repositorio de instantáneas en OpenSearch Service para poder realizar instantáneas de indexación manuales. Esta operación única requiere que firme la AWS solicitud con las credenciales a las que se permite el accesoTheSnapshotRole
, tal y como se describe enRequisitos previos.
Paso 1: Asigne la función de captura de pantalla en los OpenSearch paneles (si utiliza un control de acceso detallado)
El control de acceso detallado presenta un paso adicional al registrar un repositorio. Incluso si utiliza la autenticación HTTP básica para todos los demás fines, debe asignar la función a la manage_snapshots
IAM función que tenga iam:PassRole
permisos de transferencia. TheSnapshotRole
-
Navegue hasta el complemento OpenSearch Dashboards de su dominio OpenSearch de servicio. Puedes encontrar el punto de conexión de Dashboards en el panel de control de tu dominio, en la consola de OpenSearch servicio.
-
En el menú principal, seleccione Seguridad, Roles y seleccione el rol manage_snapshots.
-
Seleccione Usuarios asignados, Administrar mapeo.
-
Agrega ARN el rol que tiene permisos para pasar
TheSnapshotRole
. Coloque el rol ARNs en los roles de backend.arn:aws:iam::
123456789123
:role/role-name
-
Seleccione Asignar y confirme que el usuario o el rol aparecen en Usuarios asignados.
Paso 2: registrar un repositorio
La siguiente pestaña Instantáneas muestra cómo registrar un directorio de instantáneas. Para ver las opciones específicas para cifrar una instantánea manual y registrarla después de migrarla a un nuevo dominio, consulte las pestañas correspondientes.
Utilizar el cliente de Python de ejemplo
El cliente Python es más fácil de automatizar que una simple HTTP solicitud y tiene una mejor capacidad de reutilización. Si elige utilizar este método para registrar un repositorio de instantáneas, guarde el siguiente código de muestra de Python como archivo Python, por ejemplo register-repo.py
. El cliente necesita AWS SDK for Python (Boto3)
Actualice las variables siguientes en el código de muestra: host
, region
, path
y 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": "s3-bucket-name
", "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)