As pastas gerenciadas do Cloud Storage oferecem controle de acesso refinado a objetos em buckets do Cloud Storage. As permissões podem ser definidas no nível da pasta em buckets que usam acesso uniforme 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 pasta gerenciada podem ser mantidas.
Limitações
As seguintes limitações se aplicam a transferências de pastas gerenciadas:
- O bucket de destino precisa usar acesso uniforme no nível do bucket.
- As transferências de pastas gerenciadas não oferecem suporte às opções
deleteObjectsUniqueInSinkoudeleteObjectsFromSourceAfterTransfer. - 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 o tipo de recurso objeto (storage.googleapis.com/Object). Se algum bucket em um projeto tiver uma condição do IAM que usa um desses tipos de recurso, não será possível transferir pastas gerenciadas para nenhum dos buckets desse projeto, mesmo que a condição seja removida posteriormente. - As transferências orientadas por eventos não são aceitas.
- As transferências de manifesto não são aceitas.
Permissões do IAM
As seguintes permissões do Google Cloud Identity and Access Management (IAM) são necessárias para o agente de serviço do Serviço de transferência do Cloud Storage.
Tanto para a origem quanto para o destino, as permissões podem ser definidas no nível do bucket ou podem ser definidas na pasta gerenciada. Para definir permissões em uma pasta gerenciada de destino, ela já precisa existir.
Não recomendamos definir permissões de pasta gerenciada no nível do projeto. Consulte Considerações sobre segurança para mais informações.
No bucket de origem ou na pasta gerenciada:
storage.managedFolders.getIamPolicystorage.managedFolders.liststorage.managedFolders.get
No bucket de destino ou na pasta gerenciada:
storage.managedFolders.setIamPolicystorage.managedFolders.liststorage.managedFolders.create
Essas permissões são adicionadas às permissões padrão exigidas pelo Serviço de transferência do Cloud Storage:
Para conceder as permissões de pasta gerenciada necessárias, crie um papel personalizado com apenas as permissões necessárias.
Criar uma transferência de pasta gerenciada
Para criar uma transferência que contenha uma pasta gerenciada, especifique managedFolderTransferEnabled: true no transferSpec. Opcionalmente, você pode especificar um valor path para transferir apenas uma pasta gerenciada específica.
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"name": "transferjobs/NAME",
"projectId": "PROJECT_ID",
"transferSpec": {
"gcsDataSource": {
"bucketName": "SOURCE_BUCKET",
"path": "SOURCE_PATH",
"managedFolderTransferEnabled": true
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET",
"path": "DESTINATION_PATH",
}
},
"status": "ENABLED"
}
Se as permissões de transferência gerenciada corretas não forem definidas na origem e no destino, a transferência vai falhar.
Consulte Criar transferências
para detalhes sobre como criar uma transferência usando a API REST ou consulte a
transferJobs.create referência.
Considerações sobre segurança
A concessão de permissões de pasta gerenciada a um agente de serviço permite que a conta modifique as políticas do IAM em pastas de destino ou em todas as pastas se o papel for concedido no nível do projeto. Isso representa um risco de segurança: um usuário com permissões de edição de jobs pode aproveitar isso para conceder privilégios a um agente malicioso. Para mitigar esse risco, considere isolar as transferências de pastas gerenciadas em um projeto na nuvem dedicado do Google Cloud.
Cloud Logging
As ações de pastas gerenciadas são registradas pelo Cloud Logging. Consulte Cloud Logging para o Serviço de transferência do Cloud Storage para mais detalhes.
Solução de problemas
Para receber ajuda na criação e no gerenciamento de pastas gerenciadas, consulte a Solução de problemas página.