Como restaurar dados de um domínio do OpenSearch Service em outra conta da AWS?
Quero restaurar dados de um domínio do Amazon OpenSearch Service em outra conta.
Breve descrição
Para restaurar dados de um domínio do OpenSearch Service em outra conta, configure o acesso entre contas para os seguintes domínios:
- O domínio de origem que você deseja restaurar os dados (Conta A)
- Seu domínio de destino do OpenSearch Service (Conta B)
Você também deve configurar permissões para seu domínio acessar o bucket do Amazon Simple Storage Service (Amazon S3) que armazena seus dados.
Observação: você não precisa criar um bucket do Amazon S3 no destino (Conta B). O OpenSearch Service usa um único bucket do Amazon S3 para restaurar os dados em suas contas.
Resolução
Observação: o OpenSearch Service usa o domínio de origem na Conta A para instantâneos de cluster.
Primeiro, crie um bucket do Amazon S3 na Conta A na mesma região da AWS que o domínio de destino do OpenSearch Service. Em seguida, conclua as etapas a seguir para configurar o acesso entre contas. Você deve concluir as etapas para a Conta A e a Conta B.
Configure o acesso ao bucket do S3 em ambas as contas
Conclua as etapas a seguir:
-
Crie um perfil do AWS Identity and Access Management (AWS IAM) que conceda permissão ao OpenSearch Service para acessar o bucket do S3. Em seguida, selecione Amazon Elastic Compute Cloud (Amazon EC2) como seu serviço.
-
Crie a seguinte política do IAM que concede permissão de acesso ao bucket do S3 e, em seguida, anexe a política ao perfil do IAM:
{ "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/*" ] }] }
Observação: substitua arn:aws:s3:::AccountA_S3_Bucket_Name pelo ARN do seu bucket.
-
Atualize a política de bucket da Conta A com a seguinte declaração para conceder acesso de bucket entre contas ao perfil do IAM na Conta B:
{ "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/*" ] } ] }
-
Atualize a política de confiança do perfil para incluir o seguinte relacionamento de confiança:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }] }
Observação: anote o ARN do perfil para usar em etapas posteriores.
-
Para conceder acesso de gravação ao OpenSearch Service ao seu bucket do S3, execute uma das seguintes ações:
Para agrupar todas as suas permissões em um perfil do IAM, inclua a permissão iam:passRole na sua política do IAM existente.
-or-
Para dividir as permissões, crie uma nova política do IAM com a permissão iam:passRole.
Observação: você deve anexar a política do IAM ao perfil do IAM que você usa para cadastrar a solicitação HTTP.
O exemplo de política a seguir contém as permissões de IAM necessárias:{ "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/*" }] }
Observação: substitua arn:aws:iam::Account:snapshot-role pelo perfil do IAM. Além disso, substitua arn:aws:es:us-east-1:Account:domain/restore/* pelo domínio do OpenSearch Service na Conta A ou Conta B.
-
Se você ativou o controle de acesso refinado para seu domínio, deverá mapear o perfil do IAM para o OpenSearch Dashboards. O perfil do IAM usa controle de acesso refinado para fornecer acesso à API de leitura ou gravação.
-
(Opcional) Se você usou o cliente Python na Conta A para registrar o bucket no OpenSearch Service, execute uma instância do EC2 na Conta A. Em seguida, anexe seu perfil do IAM.
Observação: Certifique-se de que seu grupo de segurança possa acessar o domínio do OpenSearch Service.
Registre o bucket do S3 como um repositório de snapshots em ambas as contas
Importante: para a Conta B, você deve usar as credenciais de autenticação de usuário IAM da Conta B e selecionar o OpenSearch Service como seu destino.
Para registrar o bucket, use a aplicação Postman para fazer uma solicitação HTTP PUT. Para instalar a aplicação, consulte Baixar Postman no site do Postman.
Conclua as etapas a seguir:
- Para PUT, insira uma URL que inclua o endpoint do domínio do OpenSearch Service e o nome do bucket do S3, por exemplo your-domain-endpoint.amazonaws.com/_snapshot/your-snapshot-repository-name.
- Escolha a guia Autorização.
- Em Postman, para Type, escolha AWS Signature. Para AccessKey e SecretKey, insira as chaves de acesso do usuário do IAM.
- Para Região da AWS, insira sua região.
- Em Nome do serviço, insira es.
- Escolha Salvar.
- Escolha a guia Cabeçalhos.
- Em Tipo de chave, escolha Content-Type.
- Em Chave-valor, escolha Application/JSON.
- Escolha Salvar.
- Escolha a guia Corpo.
- Registre o bucket do S3 como um repositório de snapshots:
{ "type": "s3", "settings": { "bucket": "snapshot", "region": "us-east-1", "role_arn": "arn:aws:iam::Account:role/cross" } }
Observação: substitua o snapshot pelo nome do seu bucket do S3, us-east-1 pela sua região e arn:aws:iam::Account:role/cross pelo perfil do IAM da Conta A ou da Conta B. Para enviar a consulta, escolha Enviar.
Depois que o registro for concluído, você receberá um Código de Status: Mensagem de 200 OK.
Verifique se o repositório de snapshots está configurado corretamente
Na Conta A, conclua as etapas a seguir:
- Abra o OpenSearch Dashboads e verifique os dados disponíveis no bucket.
- Execute o comando a seguir para obter um novo snapshot:
Observação: Substitua my-snapshot-repo-name pelo nome do bucket do S3 e nome do snapshot pelo nome do seu snapshot.PUT /_snapshot/my-snapshot-repo-name/snapshot_name
O exemplo da saída a seguir verifica um registro completo do bucket do S3 no domínio do OpenSearch Service na Conta A:GET _cat/snapshots/my-snapshot-repo-name SUCCESS 1585190280 02:38:00 1585190284 02:38:04 3.9s 4 4 0 4
Na Conta B, conclua as etapas a seguir:
-
Abra os OpenSearch Dashboards.
-
Execute o comando a seguir para visualizar os instantâneos da Conta A que estão disponíveis no bucket do S3:
GET _cat/snapshots/my-snapshot-repo-name
Observação: substitua my-snapshot-repo-name pelo seu repositório de snapshots.
O exemplo de saída a seguir confirma que você configurou o acesso entre contas na Conta B:today SUCCESS 1585190280 02:38:00 1585190284 02:38:04 3.9s 4 4 0 4
-
Para restaurar os dados, execute o seguinte comando:
POST /_snapshot/my-snapshot-repo-name/snapshotID/_restore
Observação: substitua my-snapshot-repo-name pelo seu repositório de snapshots e snapshotID pelo nome do seu snapshot.
-
Para restaurar índices específicos, execute o seguinte comando:
POST /_snapshot/my-snapshot-repo-name/snapshot ID/_restore { "indices": "index name1,index name2" }
Observação: substitua my-snapshot-repo-name pelo seu repositório de snapshots e snapshotID pelo nome do seu snapshot. Além disso, substitua index name1 e indexname2 pelos seus índices.
-
Para verificar os índices restaurados, execute o seguinte comando:
GET _cat/indices?v
Informações relacionadas
Como migrar dados de um domínio do OpenSearch Service para outro?
Etapa 1.3: Anexe uma política de bucket para conceder permissões entre contas à Conta B
Migrando índices do Amazon OpenSearch Service usando reindexação remota

Conteúdo relevante
- feita há um mêslg...
- Resposta aceitafeita há 4 meseslg...
- feita há 2 meseslg...
- feita há um mêslg...
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 4 anos
- AWS OFICIALAtualizada há 2 anos