Configurar o acesso a uma origem: Cloud Storage

O Serviço de transferência do Cloud Storage usa um agente de serviço para mover dados de um bucket de origem do Cloud Storage. Esse agente de serviço é criado na primeira vez que você chama googleServiceAccounts.get.

O bucket de origem não precisa pertencer ao mesmo projeto que o agente de serviço. As etapas são as mesmas, independentemente do projeto em que o bucket está.

Permissões do usuário

Para conceder as permissões necessárias ao agente de serviço, você precisa ter as permissões relevantes no bucket de origem:

  • storage.buckets.getIamPolicy
  • storage.buckets.setIamPolicy

Os papéis Proprietário do bucket legado do Storage (roles/storage.legacyBucketOwner) ou Administrador do Storage (roles/storage.admin) fornecem as permissões necessárias.

Como conceder permissões automaticamente no console do Google Cloud

Se você estiver usando o console do Google Cloud para criar sua transferência e tiver as permissões listadas em Permissões do usuário, o agente de serviço receberá automaticamente as permissões necessárias na sua bucket de origem.

É possível pular as etapas desta página e ir diretamente para Como criar uma transferência.

Permissões necessárias

A conta de serviço precisa ter as seguintes permissões para o bucket de origem:

Permissão Descrição
storage.buckets.get Permite a localização do bucket pelo agente de serviço.
storage.objects.list Permite a listagem dos objetos no bucket pelo agente de serviço.
storage.objects.get Permite a leitura dos objetos no bucket pelo agente de serviço.
storage.objects.create

Permite que o agente de serviço crie objetos no bucket. Obrigatório se a transferência for para um sistema de arquivos.

O Serviço de transferência do Cloud Storage cria e preenche duas pastas no bucket de origem: cloud-ingest/ contém informações do sistema de arquivos e storage-transfer/ contém registros de transferência.

storage.objects.delete Permite a exclusão de objetos no bucket pelo agente de serviço. Obrigatório se você definir deleteObjectsFromSourceAfterTransfer como true.
storage.objects.getIamPolicy Permite que o agente de serviço leia ACLs em objetos de origem. Obrigatório se a preservação da ACL de objeto (ACL_PRESERVE) estiver ativada.

Os papéis predefinidos a seguir concedem as permissões necessárias:

  • Uma destas:
    • Leitor de objetos do Storage (roles/storage.objectViewer) se a transferência for para outro bucket do Cloud Storage.
    • Criador de objeto do Storage (roles/storage.objectCreator) se a transferência for para um sistema de arquivos.
  • Mais um dentre:
    • Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter) se a permissão de exclusão de objetos for necessária.
    • Leitor de bucket legado do Storage (roles/storage.legacyBucketReader) se a permissão de exclusão de objetos não for necessária.
  • Além disso, se você preservar as ACLs de objeto com ACL_PRESERVE:
    • Proprietário de objeto legado do Storage (roles/storage.legacyObjectOwner)

Qualquer papel do Cloud Storage marcado como um papel legacy só pode ser concedido no nível do bucket.

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