Ao transferir dados para um sistema de arquivos local ou de nuvem privada (como POSIX, NFS ou SMB), é necessário configurar o seguinte:
- Permissões do sistema de arquivos local: conceda aos agentes de transferência de destino acesso de gravação no nível do SO aos diretórios de destino.
- Permissões de bucket intermediário (somente de arquivo para arquivo): conceda papéis do IAM no bucket intermediário do Cloud Storage usado para preparar arquivos entre sistemas de arquivos.
Pré-requisitos
- Permissões do usuário: verifique se a conta de usuário ou a conta de serviço gerenciado pelo usuário tem permissão para configurar jobs de transferência e pools de agentes. Consulte Permissões do usuário necessárias.
- Permissões no nível do projeto baseadas em agente: verifique se você configurou os papéis necessários para envolvidos no projeto para o agente de serviço e a conta do agente de transferência. Consulte Permissões para envolvidos no projeto baseadas em agente.
Permissões do sistema de arquivos de destino local
Os agentes de transferência gravam arquivos diretamente no sistema de arquivos do host. Para permitir gravações bem-sucedidas:
Permissões de usuário do SO: verifique se o usuário do sistema operacional que executa o processo do contêiner tem permissões de leitura, gravação e execução na árvore de diretórios de destino.
Ativar diretórios: ao instalar os agentes de destino, ative o caminho do diretório de destino no contêiner usando a flag
--mount-directories:gcloud transfer agents install --pool=DESTINATION_POOL_NAME \ --mount-directories=/path/to/destination/dir
Permissões de bucket intermediário (transferências de arquivo para arquivo)
As transferências entre dois sistemas de arquivos usam um bucket intermediário do Cloud Storage para organizar os arquivos durante a transferência.
Os papéis predefinidos a seguir concedem ao agente de serviço o acesso necessário ao bucket intermediário:
- Criador de objetos do Storage (
roles/storage.objectCreator) - Visualizador do objeto do Storage (
roles/storage.objectViewer) - Leitor de bucket legado do Storage (
roles/storage.legacyBucketReader)
O papel a seguir concede o acesso necessário no bucket intermediário às contas do agente de transferência:
- Usuário de objetos do Storage (
roles/storage.objectUser)
Conceda estes papéis no bucket intermediário:
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
- Clique no menu Estouro do bucket () do bucket intermediário e selecione Acesso de edição.
- Clique em + Adicionar principal.
- Em Novos participantes, insira o e-mail do agente de serviço.
- Selecione
Storage Object Creator,Storage Object ViewereStorage Legacy Bucket Readernos menus suspensos Selecionar um papel. - Clique em + Adicionar principal novamente.
- Insira o endereço de e-mail das contas de agente de transferência usadas nos pools de agentes de origem e destino.
- Selecione
Storage Object Userno menu suspenso Selecionar um papel. - Clique em Salvar.
gcloud
Conceda papéis de geração de registros e metadados ao agente de serviço:
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectCreatorgcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectViewergcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.legacyBucketReaderConceda papéis de gerenciamento de objetos às contas de agente de transferência para os pools de agentes de origem e de destino:
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT --role=roles/storage.objectUserSubstitua:
- INTERMEDIATE_BUCKET_NAME: o nome do bucket de preparo intermediário.
- SERVICE_AGENT_EMAIL: o e-mail do agente de serviço.
- serviceAccount_OR_user: especifique
serviceAccountse a conta do agente de transferência for uma conta de serviço ouuserse os agentes tiverem sido instalados com uma conta de usuário. - TRANSFER_AGENT_ACCOUNT: o e-mail da conta que executa os agentes de transferência. Repita esse comando se os pools de agentes de origem e destino usarem contas diferentes.
API REST
Gere um token de acesso para autenticar sua solicitação. Se você estiver usando a CLI
gcloud, execute:gcloud auth print-access-token
Recupere a política de IAM do bucket atual (
GET https://storage./storage/v1/b/<var>INTERMEDIATE_BUCKET_NAME</var>/iam), anexe as seguintes vinculações à matrizbindingse salve a política mesclada comointermediate_policy.json:{ "bindings": [ { "role": "roles/storage.objectCreator", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectViewer", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.legacyBucketReader", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectUser", "members": ["serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT"] } ] }
Substitua:
- SERVICE_AGENT_EMAIL: o e-mail do agente de serviço.
- serviceAccount_OR_user: especifique
serviceAccountse a conta do agente de transferência for uma conta de serviço ouuserse os agentes tiverem sido instalados com uma conta de usuário. - TRANSFER_AGENT_ACCOUNT: o e-mail da conta que instalou os agentes de transferência. Se os pools de agentes de origem e destino usarem contas diferentes, inclua as duas na matriz
memberspararoles/storage.objectUser.
Atualize a política do bucket intermediário usando
curl:curl -X PUT --data-binary @intermediate_policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage./storage/v1/b/INTERMEDIATE_BUCKET_NAME/iam"Substitua:
- OAUTH2_TOKEN: o token de acesso do OAuth 2.0 gerado na etapa 1.
- INTERMEDIATE_BUCKET_NAME: o nome do bucket intermediário.
Para mais informações sobre arquiteturas de arquivo para arquivo, consulte Transferências de sistema de arquivos para sistema de arquivos.
Desempenho e otimização
- Para maximizar a capacidade ao transferir para sistemas de arquivos grandes, instale vários agentes no pool de agentes de destino (mínimo recomendado de 3). Consulte as práticas recomendadas para agentes de transferência.
- Para arquivos grandes em transferências de arquivo para arquivo, considere ativar uploads de várias partes para o bucket intermediário. Ao usar o Usuário de objetos do Storage (
roles/storage.objectUser), as permissões de upload de várias partes necessárias (storage.multipartUploads.*) são incluídas automaticamente.
A seguir
- Saiba como instalar agentes de transferência.
- Saiba como configurar o acesso a uma origem: sistema de arquivos.
- Saiba como configurar o acesso a uma origem: Cloud Storage.
- Saiba como transferir dados entre sistemas de arquivos.