Registrar un repositorio de instantáneas manuales - OpenSearch Servicio Amazon

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

  1. 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.

  2. En el menú principal, seleccione Seguridad, Roles y seleccione el rol manage_snapshots.

  3. Seleccione Usuarios asignados, Administrar mapeo.

  4. Agrega ARN el rol que tiene permisos para pasarTheSnapshotRole. Coloque el rol ARNs en los roles de backend.

    arn:aws:iam::123456789123:role/role-name
  5. 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.

Snapshots

Para registrar un repositorio de instantáneas, envíe una PUT solicitud al punto final del dominio OpenSearch de servicio. Puede usar curl, el cliente Python de muestra, Postman o algún otro método para enviar una solicitud firmada para registrar el repositorio de instantáneas. Tenga en cuenta que no puede usar una PUT solicitud de la consola de OpenSearch Dashboards para registrar el repositorio.

La solicitud tiene el siguiente formato:

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

Los nombres de repositorio no pueden comenzar por “cs-”. Además, no debe escribir en el mismo repositorio desde varios dominios. Solo un dominio debe tener acceso de escritura al repositorio.

Si su dominio reside en una nube privada virtual (VPC), su ordenador debe estar conectado a ella VPC para que la solicitud registre correctamente el repositorio de instantáneas. El acceso a VPC varía según la configuración de la red, pero es probable que implique conectarse a una VPN red corporativa. Para comprobar que puedes acceder al dominio del OpenSearch servicio, navega https://your-vpc-domain.region.es.amazonaws.com en un navegador web y comprueba que recibes la JSON respuesta predeterminada.

Cuando su bucket de Amazon S3 se encuentre en un dominio Región de AWS que no sea su OpenSearch dominio, añada el parámetro "endpoint": "s3.amazonaws.com" a la solicitud.

Encrypted snapshots

Actualmente no puedes usar las claves AWS Key Management Service (KMS) para cifrar instantáneas manuales, pero puedes protegerlas mediante el cifrado del lado del servidor (). SSE

Para activar SSE las claves administradas por S3 para el depósito que utilizas como repositorio de instantáneas, agrégalas "server_side_encryption": true al bloque de la solicitud. "settings" PUT Para más información, consulte Protección de datos mediante cifrado del lado del servidor con claves de cifrado administradas por Amazon S3 en la Guía del usuario de Amazon Simple Storage Service.

Como alternativa, puedes usar AWS KMS claves para el cifrado del lado del servidor en el bucket de S3 que utilizas como repositorio de instantáneas. Si utiliza este enfoque, asegúrese de dar TheSnapshotRole permiso a la AWS KMS clave utilizada para cifrar el depósito de S3. Para más información, consulte Políticas de claves en AWS KMS.

Domain migration

El registro de un repositorio de instantáneas es una operación que se realiza una vez. Sin embargo, para migrar de un dominio a otro, debe registrar el mismo repositorio de instantáneas en el dominio antiguo y en el nuevo. El nombre del repositorio es arbitrario.

Tenga en cuenta las siguientes pautas al migrar a un nuevo dominio o registrar el mismo repositorio con varios dominios:

  • Al registrar el repositorio en el nuevo dominio, "readonly": true añádelo al "settings" bloque de la PUT solicitud. Esta configuración impide sobrescribir accidentalmente datos del dominio antiguo. Solo un dominio debe tener acceso de escritura al repositorio.

  • Si vas a migrar datos a un dominio de un dominio diferente (por ejemplo Región de AWS, de un dominio y un depósito antiguos ubicados en us-east-2 a un dominio nuevo en us-west-2), "region": "region" "endpoint": "s3.amazonaws.com" sustitúyalos por en la declaración y vuelve a intentar la solicitud. PUT

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), solicitudes y paquetes requests-aws4auth. El cliente contiene ejemplos de otras operaciones de instantánea que están marcados como comentarios.

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)