DEV Community

Henrique Santos
Henrique Santos

Posted on

Copia de Buckets S3 entre contas AWS

Na conta para qual o Bucket será copiado (Conta de destino)

  • Criar o bucket que irá receber os arquivos copiados.
  • Criar um usuário IAM e coloque a policy abaixo:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::<NOME-DO-BUCKET-DE-ORIGEM>",
                "arn:aws:s3:::<NOME-DO-BUCKET-DE-ORIGEM>/*",
                "arn:aws:s3:::<NOME-DO-BUCKET-DE-DESTINO>",
                "arn:aws:s3:::<NOME-DO-BUCKET-DE-DESTINO>/*"
            ]
        }
    ]
}

Enter fullscreen mode Exit fullscreen mode
  • Gere uma credencial programática e a configure em sua maquina ou em uma instância utilizando o AWS CLI.
  • caso não saiba como realizar essa configuração,clique aqui.

Na conta a qual o Bucket está (Conta de Origem)

  • Inserir a policy abaixo no bucket que será copiado:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<ID-DA-CONTA-DESTINO>:user/<NOME-DO-USUARIO-IAM-CRIADO-NA-CONTA-DESTINO>""
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::<NOME-DO-BUCKET-QUE-ESTÁ-INSERINDO-ESSA-POLICY>/*",
                "arn:aws:s3:::<NOME-DO-BUCKET-QUE-ESTÁ-INSERINDO-ESSA-POLICY>"
            ]
        }
    ]
}

Enter fullscreen mode Exit fullscreen mode

Acesse a maquina a qual foi configurada as credenciais

-Execute o comando para que a copia seja realizada.

aws s3 sync s3://<NOME-DO-BUCKET-DE-ORIGEM> s3://<NOME-DO-BUCKET-DE-DESTINO>

Pode utilizar o comando aws cp, porem o sync é mais eficiente caso queria rodar a copiar mais de uma vez sincronizando os arquivos

EXTRA
Se o bucket for muito grande, vale a pena executar a cópia utilizando o comando 'screen' (em ambientes Linux). Esse comando fará com que a cópia seja executada em segundo plano. Dessa forma, em situações em que as credenciais estejam configuradas em uma instância EC2 e a conexão com a mesma seja perdida, a cópia não será interrompida.

  • Criar uma sessao nomeada

screen -S nome_da_sessao

  • Minimizar sessão

Ctrl+A+D

  • Lista sessões ativar

screen -ls

  • Ir para a sessao

screen -r id_da_sessao

  • Encerrar sessão

screen -r id_da_sessao
Ctrl+C
exit

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more