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.getIamPolicystorage.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: |
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.
- Leitor de objetos do Storage (
- 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.
- Gravador de bucket legado do Storage (
- Além disso, se você preservar as ACLs de objeto com
ACL_PRESERVE:- Proprietário de objeto legado do Storage (
roles/storage.legacyObjectOwner)
- Proprietário de objeto legado do Storage (
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.