Permissões de IAM para métodos do Storage Transfer Service

A tabela a seguir lista as permissões mínimas necessárias para executar cada método do serviço de transferência do Cloud Storage.

Recurso Método Permissões necessárias
googleServiceAccount get storagetransfer.projects.getServiceAccount
transferJobs create Ambas as permissões são necessárias:

  • storagetransfer.jobs.create
  • storagetransfer.projects.getServiceAccount

transferjobs get storagetransfer.jobs.get
transferjobs list storagetransfer.jobs.list
transferjobs patch Para atualizações de exclusão: storagetransfer.jobs.delete
Para atualizações de não exclusão: storagetransfer.jobs.update
transferoperations cancel storagetransfer.operations.cancel
transferOperations get storagetransfer.operations.get
transferOperations list storagetransfer.operations.list
transferOperations pause storagetransfer.operations.pause
transferOperations resume storagetransfer.operations.resume

Permissões de origem

Cloud Storage

O serviço de transferência do Cloud Storage usa a conta de serviço project-[$PROJECT_NUMBER]@storage-transfer-service.iam.gserviceaccount.com para mover dados de um bucket de origem do Cloud Storage. A conta de serviço precisa ter as seguintes permissões para o bucket de origem:

Permissão Descrição Uso
storage.buckets.get Permite a localização do bucket pela conta de serviço. Sempre obrigatório.
storage.objects.list Permite a listagem dos objetos no bucket pela conta de serviço. Sempre obrigatório.
storage.objects.get Permite a leitura dos objetos no bucket pela conta de serviço. Sempre obrigatório.
storage.objects.delete Permite a exclusão de objetos no bucket pela conta de serviço. Obrigatório se você definir deleteObjectsFromSourceAfterTransfer como true.

Os papéis roles/storage.objectViewer e roles/storage.legacyBucketReader juntos contêm as permissões que são sempre necessárias. O papel roles/storage.legacyBucketWriter contém as permissões storage.objects.delete. É necessário atribuir os papéis que você quer à conta de serviço usada para executar a transferência.

Para uma lista completa dos papéis do Cloud Storage e das respectivas permissões, consulte papéis do IAM.

Amazon S3

Para usar o Storage Transfer Service para mover dados de um intervalo do Amazon S3,

você precisa ter uma conta de usuário de gerenciamento de identidade e acesso da AWS que tenha determinadas permissões para o bucket:

Permissão Descrição Uso
s3:ListBucket Permite a listagem de objetos no bucket pelo Storage Transfer Service. Sempre obrigatório.
s3:GetObject Permite a leitura de objetos no bucket pelo Storage Transfer Service. Sempre obrigatório.
s3:GetBucketLocation Permite a localização do bucket pelo Storage Transfer Service. Sempre obrigatório.
s3:DeleteObject Permite a exclusão de objetos no bucket pelo Storage Transfer Service. Obrigatório se você definir deleteObjectsFromSourceAfterTransfer como true.

Lista de URLs

Se a origem de dados for uma lista de URLs, verifique se os objetos listados estão acessíveis ao público.

Permissões de coletor

No Storage Transfer Service, uma conta de serviço é usada para mover dados para um bucket do coletor do Cloud Storage. É preciso que a conta de serviço tenha determinadas permissões para o bucket do coletor:

Permissão Descrição Uso
storage.buckets.get Permite a localização do bucket pela conta de serviço. Sempre obrigatório.
storage.objects.create Permite a adição de objetos no bucket pela conta de serviço. Sempre obrigatório.
storage.objects.delete Permite a exclusão de objetos no bucket pela conta de serviço. Obrigatório se você definir overwriteObjectsAlreadyExistingInSink ou deleteObjectsUniqueInSink como true.
storage.objects.list Permite a listagem dos objetos no bucket pela conta de serviço. Obrigatório se você definir overwriteObjectsAlreadyExistingInSink como false ou deleteObjectsUniqueInSink como true.

Todas essas permissões estão contidas no papel roles/storage.legacyBucketWriter, que pode ser atribuído à conta de serviço. Para uma lista completa dos papéis do Cloud Storage e das respectivas permissões, consulte Papéis do IAM.

Permissões do Pub/Sub

Se você planeja usar o Pub/Sub para transferências, conceda à conta de serviço o papel do IAM roles/pubsub.publisher para o respectivo tópico do Pub/Sub.