Uso de um relatório de inventário para copiar objetos entre Contas da AWS - Amazon Simple Storage Service

Uso de um relatório de inventário para copiar objetos entre Contas da AWS

Você pode usar o Operações em Lote do Amazon S3 para executar operações em lote de grande escala em objetos do Amazon S3. É possível usar o Operações em Lote do S3 para criar um trabalho Copiar (CopyObject) para copiar objetos dentro da mesma conta ou para uma conta de destino diferente.

Você pode usar o Inventário Amazon S3 para criar um relatório de inventário e usá-lo para criar uma lista (manifesto) de objetos a serem copiados com o Operações em Lote do S3. Para obter mais informações sobre como usar um manifesto CSV na conta de origem ou destino, consulte Uso de um manifesto CSV para copiar objetos entre Contas da AWS.

O inventário do Amazon S3 gera inventários dos objetos em um bucket. A lista resultante é publicada em um arquivo de saída. O bucket do qual foi feito o inventário é chamado de bucket de origem e o bucket no qual o relatório de inventário é armazenado é chamado de bucket de destino.

O relatório do Amazon S3 Inventory pode ser configurado para ser entregue a outra Conta da AWS. Fazer isso permite que o Operações em Lote do S3 leia o relatório de inventário quando o trabalho é criado na conta de destino.

Para obter mais informações sobre os buckets de origem e destino do inventário do Amazon S3, consulte Buckets de origem e destino.

A maneira mais fácil de configurar um inventário é usando o console do Amazon S3, mas você também pode usar a API REST do Amazon S3, a AWS Command Line Interface (AWS CLI) ou SDKs da AWS.

O procedimento de console a seguir contém as etapas de alto nível para configurar permissões para um trabalho de operações em lote do S3. Neste procedimento, você copia objetos de uma conta de origem para uma conta de destino, com o relatório de inventário armazenado na conta de destino.

Como configurar o Amazon S3 Inventory para buckets de origem e de destino que são de propriedade de diferentes contas
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets.

  3. Escolha (ou crie) um bucket de manifesto de destino para armazenar o relatório de inventário. Neste procedimento, a conta de destino é a conta que possui tanto o bucket de manifesto de destino como o bucket no qual os objetos são copiados.

  4. Configure um relatório de inventário para um bucket de origem. Para obter informações sobre como usar o console para configurar um inventário ou sobre como criptografar um arquivo de lista de inventário, consulte Configurar o inventário do Amazon S3.

    Ao configurar o relatório de inventário, você especifica o bucket de destino no qual deseja que a lista seja armazenada. O relatório de inventário para o bucket de origem é publicado no bucket de destino. Neste procedimento, a conta de origem é a conta que possui o bucket de origem.

    Selecione CSV para o formato de saída.

    Ao inserir informações para o bucket de destino, selecione Buckets in another account (Buckets em outra conta). Em seguida, insira o nome do bucket do manifesto de destino. Se preferir, você poderá inserir o ID da conta de destino.

    Após salvar a configuração do inventário, o console exibirá uma mensagem semelhante à seguinte:

    O Amazon S3 não conseguiu criar uma política de bucket no bucket de destino. Peça para o proprietário do bucket de destino adicionar a política de bucket a seguir a fim de permitir que o Amazon S3 insira dados nele.

    O console exibirá, então, uma política de bucket que pode ser usada para o bucket de destino.

  5. Copie a política do bucket de destino que aparece no console.

  6. Na conta de destino, adicione a política de bucket copiada ao bucket do manifesto de destino no qual o relatório de inventário está armazenado.

  7. Crie uma função na conta de destino baseada na política de confiança do recurso Operações em lote do S3. Consulte mais informações sobre essa política de confiança em Política de confiança.

    Consulte mais informações sobre como criar um perfil em Criar um perfil para delegar permissões a um AWS service (Serviço da AWS) no Guia do usuário do IAM.

    Insira um nome para o perfil (o perfil do exemplo a seguir usa o nome BatchOperationsDestinationRoleCOPY). Escolha o serviço S3 e selecione o caso de uso Operações em Lote do S3, que aplica a política de confiança ao perfil.

    Em seguida, selecione Create policy (Criar política) para anexar a política a seguir à função. Para utilizar essa política, substitua os user input placeholders por suas próprias informações.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperationsDestinationObjectCOPY", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectVersionAcl", "s3:PutObjectAcl", "s3:PutObjectVersionTagging", "s3:PutObjectTagging", "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*", "arn:aws:s3:::amzn-s3-demo-source-bucket/*", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] } ] }

    A função usa a política para conceder ao batchoperations.s3.amazonaws.com permissão para ler o manifesto no bucket de destino. Ele também concede permissões a objetos GET, listas de controle de acesso (ACLs), tags e versões no bucket do objeto de origem. Além disso, ela concede permissões a objetos PUT, ACLs, tags e versões no bucket do objeto de destino.

  8. Na conta de origem, crie uma política de bucket para o bucket de origem que concede o perfil que você criou na etapa anterior para objetos GET, ACLs, tags e versões no bucket de origem. Esta etapa permite que as operações em lote do S3 obtenham objetos do bucket de origem por meio da função de confiança.

    Veja a seguir um exemplo da política de bucket para a conta de origem. Para utilizar essa política, substitua os user input placeholders por suas próprias informações.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperationsSourceObjectCOPY", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::DestinationAccountNumber:role/BatchOperationsDestinationRoleCOPY" }, "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*" } ] }
  9. Depois que o relatório de inventário estiver disponível, crie um trabalho de Copiar (CopyObject) do Operações em Lote do S3 na conta de destino e escolha o relatório de inventário no bucket do manifesto de destino. Você precisa do ARN para o perfil do IAM que criou na conta de destino.

    Para obter informações gerais sobre como criar uma tarefa, consulte Criar um trabalho de operações em lote do S3.

    Consulte informações sobre a criação de um trabalho usando o console em Criar um trabalho de operações em lote do S3.