Transferir pastas gerenciadas do Cloud Storage

As pastas gerenciadas do Cloud Storage oferecem controle de acesso refinado para objetos em buckets do Cloud Storage. As permissões podem ser definidas no nível da pasta em buckets que usam o acesso universal no nível do bucket. Ao transferir objetos entre buckets do Cloud Storage com o Serviço de transferência do Cloud Storage, essas permissões de pastas gerenciadas podem ser mantidas.

Limitações

As seguintes limitações se aplicam às transferências de pastas gerenciadas:

  • Use a API REST para criar a transferência.
  • O bucket de destino precisa usar o acesso uniforme no nível do bucket.
  • As transferências de pastas gerenciadas não são compatíveis com deleteObjectsUniqueInSink ou deleteObjectsFromSourceAfterTransfer.
  • Não pode haver condições do IAM no bucket de destino ou no projeto que usem o tipo de recurso bucket (storage.googleapis.com/Bucket) ou objeto (storage.googleapis.com/Object). Se algum bucket em um projeto tiver uma condição do IAM que use um desses tipos de recurso, as pastas gerenciadas não poderão ser transferidas para nenhum dos buckets desse projeto, mesmo que a condição seja removida mais tarde.
  • As transferências baseadas em eventos não são compatíveis.
  • Não há suporte para transferências de manifesto.
  • As operações de pasta gerenciada não são registradas pelo Cloud Logging. Registro de é suportado.

Permissões do IAM

As seguintes permissões do Identity and Access Management (IAM) do Google Cloud são necessárias para a conta de serviço gerenciada pelo Google.

No bucket de origem:

  • storage.managedFolders.getIamPolicy
  • storage.managedFolders.list
  • storage.managedFolders.get

No bucket de destino:

  • storage.managedFolders.setIamPolicy
  • storage.managedFolders.list
  • storage.managedFolders.create

Além das permissões padrão exigidas pelo serviço de transferência do Cloud Storage:

Para conceder as permissões de pasta gerenciada necessárias, criar um papel personalizado apenas com o as permissões exigidas e atribuí-las à conta de serviço gerenciado pelo Google, seja no nível do bucket (recomendado) ou no nível do projeto. Consulte Considerações de segurança para mais informações.

Criar uma transferência de pasta gerenciada

Para criar uma transferência que contenha uma pasta gerenciada, especifique managedFolderTransferEnabled: true no transferSpec:

POST https://storagetransfer.googleapis.com/v1/transferJobs
{
  "name": "transferjobs/NAME",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "gcsDataSource": {
      "bucketName": "SOURCE_BUCKET",
      "managedFolderTransferEnabled": true
    },
    "gcsDataSink": {
      "bucketName": "DESTINATION_BUCKET"
    }
  },
  "status": "ENABLED"
}

Consulte Criar transferências para saber como criar uma transferência usando a API REST ou consulte a referência transferJobs.create.

Considerações sobre segurança

Conceder permissões de pastas gerenciadas a uma conta de serviço gerenciada pelo Google permite que a conta modifique as políticas do IAM nas pastas de destino ou em todas as pastas, se o papel for concedido no nível do projeto. Isso representa um risco à segurança: um usuário com permissões de edição de trabalho pode explorar isso para conceder privilégios a uma usuário malicioso. Para reduzir esse risco, isole as pastas gerenciadas em um projeto dedicado do Google Cloud.

Solução de problemas

Para receber ajuda com a criação e o gerenciamento de pastas gerenciadas, consulte a página Solução de problemas.