Uso de um manifesto CSV para copiar objetos entre Contas da AWS - Amazon Simple Storage Service

Uso de um manifesto CSV 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.

É possível usar um manifesto CSV armazenado na conta de origem para copiar objetos nas Contas da AWS com o S3 Batch Operations. Para usar um relatório de inventário S3 como manifesto, consulte Uso de um relatório de inventário para copiar objetos entre Contas da AWS.

Para ter um exemplo do formato CSV para arquivos de manifesto, consulte Criar um arquivo de manifesto.

O procedimento a seguir mostra como configurar permissões ao usar um trabalho de Operações em Lote do S3 para copiar objetos de uma conta de origem para uma conta de destino com um arquivo de manifesto CSV armazenado na conta de origem.

Como usar um manifesto CSV para copiar objetos nas Contas da AWS
  1. Crie um perfil do AWS Identity and Access Management (IAM) na conta de destino baseado na política de confiança do recurso Operações em Lote do S3. Neste procedimento, a conta de destino é a conta para a qual os objetos estão sendo copiados.

    Para obter mais informações sobre a política de confiança, consulte 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.

    Se você criar o perfil usando o console, insira um nome para o perfil (o perfil de 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/*" ] } ] }

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

  2. Na conta de origem, crie uma política para o bucket que contém o manifesto para conceder ao perfil que você criou na etapa anterior permissões para objetos GET e versões no bucket do manifesto de origem.

    Esta etapa permite que as Operações em Lote do S3 leiam o manifesto usando o perfil confiável. Aplique a política de bucket ao bucket que contém o manifesto.

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperationsSourceManfiestRead", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::DestinationAccountNumber:user/ConsoleUserCreatingJob", "arn:aws:iam::DestinationAccountNumber:role/BatchOperationsDestinationRoleCOPY" ] }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" } ] }

    Esta poítica também concede ao usuário de um console que está criando uma tarefa na conta de destino as mesmas permissões no bucket do manifesto de origem por meio da mesma política de bucket.

  3. Na conta de origem, crie uma política para o bucket de origem que conceda ao perfil que você criou permissões para objetos GET, ACLs, tags e versões no bucket de objeto de origem. O Operações em lote do S3 pode então obter objetos do bucket de origem por meio da função confiável.

    Veja a seguir um exemplo da política de bucket para o bucket que contém os objetos 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/*" } ] }
  4. Crie um trabalho de operações em lote do S3 na conta de destino. Você precisa do nome de recurso da Amazon (ARN) para a função que criou na conta de destino. Para obter mais informações sobre como criar um trabalho, consulte Criar um trabalho de operações em lote do S3.