As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Registro de um repositório de snapshots manuais
Você precisa registrar um repositório de instantâneos no OpenSearch Service antes de poder tirar instantâneos de índice manuais. Essa operação única exige que você assine sua AWS solicitação com credenciais de acesso permitidoTheSnapshotRole
, conforme descrito em. Pré-requisitos
Etapa 1: mapear a função de instantâneo nos OpenSearch painéis (se estiver usando controle de acesso refinado)
O controle de acesso refinado introduz uma etapa adicional ao registrar um repositório. Mesmo que você use a autenticação básica HTTP para todos os outros fins, será necessário mapear o perfil manage_snapshots
para o seu perfil do IAM que tem permissões iam:PassRole
para passar TheSnapshotRole
.
-
Navegue até o plug-in OpenSearch Dashboards do seu domínio OpenSearch de serviço. Você pode encontrar o endpoint do Dashboards no painel do seu domínio no console de OpenSearch serviços.
-
No menu principal, escolha Segurança, Funções e selecione a função manage_snapshots.
-
Escolha Usuários mapeados e Gerenciar mapeamento.
-
Adicione o ARN do perfil que tenha permissões para aprovar
TheSnapshotRole
. Coloque a função ARNs em Funções de back-end.arn:aws:iam::
123456789123
:role/role-name
-
Selecione Mapa e confirme se o usuário ou função aparece em Usuários mapeados.
Etapa 2: Registrar um repositório
A guia Snapshots a seguir demonstra como registrar um diretório de snapshots. Para opções específicas para criptografar e registrar um snapshot manual após a migração para um novo domínio, consulte as guias relevantes.
Uso do cliente Python de exemplo
O cliente Python é mais fácil de automatizar do que uma simples solicitação HTTP, além de ser mais fácil reutilizá-lo. Se você optar por usar esse método para registrar um repositório de snapshots, salve o seguinte código de exemplo Python como um arquivo Python. Por exemplo, register-repo.py
. O cliente exige os pacotes AWS SDK for Python (Boto3)
Atualize as seguintes variáveis no código de exemplo: host
, region
, path
e 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)