Como restaurar dados de um domínio do OpenSearch Service em outra conta da AWS?

6 minuto de leitura
0

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:

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

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

  3. 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/*"
                ]
            }
        ]
    }
  4. 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.

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

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

  7. (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:

  1. 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.
  2. Escolha a guia Autorização.
  3. Em Postman, para Type, escolha AWS Signature. Para AccessKey e SecretKey, insira as chaves de acesso do usuário do IAM.
  4. Para Região da AWS, insira sua região.
  5. Em Nome do serviço, insira es.
  6. Escolha Salvar.
  7. Escolha a guia Cabeçalhos.
  8. Em Tipo de chave, escolha Content-Type.
  9. Em Chave-valor, escolha Application/JSON.
  10. Escolha Salvar.
  11. Escolha a guia Corpo.
  12. 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:

  1. Abra o OpenSearch Dashboads e verifique os dados disponíveis no bucket.
  2. Execute o comando a seguir para obter um novo snapshot:
    PUT /_snapshot/my-snapshot-repo-name/snapshot_name
    Observação: Substitua my-snapshot-repo-name pelo nome do bucket do S3 e nome do snapshot pelo nome do seu snapshot.
    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:

  1. Abra os OpenSearch Dashboards.

  2. 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
  3. 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.

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

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

Gerenciamento do perfil do IAM

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses