As pastas geridas do Cloud Storage oferecem controlo de acesso detalhado a objetos em contentores do Cloud Storage. As autorizações podem ser definidas ao nível da pasta em contentores que usam o acesso universal ao nível do contentor. Quando transfere objetos entre contentores do Cloud Storage com o Serviço de transferência de armazenamento, estas autorizações de pastas geridas podem ser retidas.
Limitações
As seguintes limitações aplicam-se às transferências de pastas geridas:
- O contentor de destino tem de usar o acesso uniforme ao nível do contentor.
- As transferências de pastas geridas não suportam as opções
deleteObjectsUniqueInSink
nemdeleteObjectsFromSourceAfterTransfer
. - Não podem existir condições de IAM no contentor de destino ou no respetivo projeto que usem o tipo de recurso bucket (
storage.googleapis.com/Bucket
) ou o tipo de recurso object (storage.googleapis.com/Object
). Se algum contentor num projeto tiver uma condição de IAM que use qualquer um destes tipos de recursos, não é possível transferir pastas geridas para nenhum dos contentores nesse projeto, mesmo que a condição seja removida posteriormente. - As transferências baseadas em eventos não são suportadas.
- As transferências de manifestos não são suportadas.
Autorizações de IAM
As seguintes autorizações de Google Cloud gestão de identidade e de acesso (IAM) são necessárias para a conta de serviço gerida pela Google.
Tanto para a origem como para o destino, as autorizações podem ser definidas ao nível do contentor ou definidas na pasta gerida. Para definir autorizações numa pasta gerida de destino, essa pasta já tem de existir.
Não recomendamos a definição de autorizações de pastas geridas ao nível do projeto; consulte as Considerações de segurança para ver informações adicionais.
No contentor de origem ou na pasta gerida:
storage.managedFolders.getIamPolicy
storage.managedFolders.list
storage.managedFolders.get
No contentor de destino ou na pasta gerida:
storage.managedFolders.setIamPolicy
storage.managedFolders.list
storage.managedFolders.create
Estas autorizações são adicionais às autorizações padrão exigidas pelo Serviço de Transferência de Armazenamento:
Para conceder as autorizações necessárias para pastas geridas, crie uma função personalizada apenas com as autorizações necessárias.
Crie uma transferência de pasta gerida
Para criar uma transferência que contenha uma pasta gerida, especifique
managedFolderTransferEnabled: true
no seu transferSpec
. Opcionalmente, pode especificar um valor path
para transferir apenas uma pasta gerida 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 autorizações de transferência geridas corretas não estiverem definidas na origem e no destino, a transferência falha.
Consulte o artigo Crie transferências
para ver detalhes sobre como criar uma transferência através da API REST ou consulte a referência transferJobs.create
.
Considerações de segurança
A concessão de autorizações de pastas geridas a uma conta de serviço gerida pela Google permite que a conta modifique as políticas de IAM nas pastas de destino ou em todas as pastas se a função for concedida ao nível do projeto. Isto representa um risco de segurança: um utilizador com autorizações de edição de tarefas pode explorar esta situação para conceder privilégios a um ator malicioso. Para mitigar este risco, considere isolar as transferências de pastas geridas num Google Cloud projeto dedicado.
Cloud Logging
As ações de pastas geridas são registadas pelo Cloud Logging. Consulte o artigo Cloud Logging para o Serviço de transferência de armazenamento para ver detalhes.
Resolução de problemas
Para obter ajuda na criação e gestão de pastas geridas, consulte a página de resolução de problemas.