Antes de começar

Na primeira vez que você criar um job do Serviço de transferência de dados locais, será preciso ativar as APIs necessárias e garantir as permissões corretas.

Se você receber erros ao realizar a configuração inicial, confirme se o usuário que fez login tem permissão para executar as etapas de configuração. Em muitos casos, essas permissões não estão disponíveis para todos os usuários, e talvez seja necessário entrar em contato com um administrador do projeto para receber ajuda.

Para fazer a configuração inicial:

  1. Ative a Google Storage Transfer API.

    Ative a API

    1. Confirme o projeto em que você está ativando a API e clique em Next.

    2. Clique em Enable.

  2. Ative a Pub/Sub API.

    Ative a API

    1. Confirme o projeto em que você está ativando a API e clique em Next.

    2. Clique em Enable.

  3. Use o administrador de projetos do Google Cloud, um usuário com privilégios resourcemanager.projects.setIamPolicy, para conceder gerenciamento de identidade e acesso (permissões ou papéis do IAM a:
    • contas de administrador (admin) de transferência local: contas de superusuário compatíveis com colegas que realizam transferências. Os administradores gerenciam agentes de transferência local e definem limites de uso da largura de banda.
    • contas de usuário de transferência local: contas usadas para criar e executar transferências. Essas contas normalmente não têm acesso para excluir jobs de transferência.
    • A transferência para a conta de serviço de transferência local: a conta de serviço gerenciada pelo Google usada pela Transferência para realizar transferências locais.
    • identidade do agente de transferência local: a identidade usada para executar a transferência do agente local. Pode ser uma conta de serviço ou uma conta de usuário que configura agentes locais.

    A conta de administrador do projeto do Google Cloud serve apenas para configurar usuários de transferência e conceder as permissões necessárias para a conta de serviço de transferência local. Não é necessário iniciar jobs de transferência.

    Para mais informações sobre como conceder papéis do IAM, consulte Como conceder, alterar e revogar acesso a recursos.

    Se você quiser criar papéis personalizados para transferências locais, consulte Permissões do IAM para transferências locais e Noções básicas sobre os papéis personalizados do IAM.

    1. Para configurar uma conta de administrador de transferência local, atribua as seguintes permissões e papéis do IAM à conta:
      Papel / permissão Efeitos Observações
      resourcemanager.projects.getIamPolicy Usada para confirmar que a conta de serviço de transferência local tem as permissões necessárias para realizar uma transferência.
      Administrador de transferências do Storage (roles/storagetransfer.admin) Permite ações administrativas no projeto de transferência, como configuração do projeto e monitoramento do agente. Para ver uma lista detalhada das permissões concedidas, consulte Papéis predefinidos do Serviço de transferência do Cloud Storage.
    2. Para configurar uma conta de usuário de transferência local, atribua as seguintes permissões e papéis à conta:
      Papel / permissão Efeitos Observações
      resourcemanager.projects.getIamPolicy Usada para confirmar que a conta de serviço de transferência local tem as permissões necessárias do Pub/Sub para realizar uma transferência.
      Usuário de transferência do Storage (roles/storagetransfer.user) Permite que o usuário crie, receba, atualize e liste transferências. Para ver uma lista detalhada das permissões concedidas, consulte Papéis predefinidos do Serviço de transferência do Cloud Storage.
      Administrador de objetos do Storage (roles/storage.objectAdmin) Permite que o usuário crie, atualize e exclua objetos do Cloud Storage como parte de uma transferência. É necessário conceder a todos os buckets do Cloud Storage usados por essa conta nas transferências.

      Para ver uma lista detalhada de permissões concedidas, consulte Papéis predefinidos do Cloud Storage.
    3. A transferência local usa uma conta de serviço gerenciada pelo Google para mover seus dados. O formato da conta de serviço geralmente é project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para determinar o PROJECT_NUMBER específico, use a chamada de API googleServiceAccounts.get.

      Para permitir que a conta de serviço de transferência local acesse os recursos necessários para concluir transferências, atribua os seguintes papéis ou permissões equivalentes a essa conta de serviço:

      Papel / permissão Efeitos Observações
      Criador de objetos do Storage (roles/storage.objectCreator) Permite que a transferência local crie registros de transferência no bucket do Cloud Storage conectado a essa transferência. Conceda a todos os buckets do Cloud Storage usados em uma transferência. Se for indicado para seu caso, é possível conceder esse papel (no nível do projeto) ao projeto de onde a transferência local é executada.

      Para ver uma lista detalhada das permissões que esses papéis concedem, consulte Papéis predefinidos do Cloud Storage.
      Leitor de objetos do Storage (roles/storage.objectViewer) Permite que a transferência local determine se um arquivo já foi transferido para ou do Cloud Storage.
      Editor do Pub/Sub (roles/pubsub.editor) Permite que a transferência local crie e modifique tópicos do Pub/Sub automaticamente para a comunicação entre o Google Cloud e os agentes locais de transferência. Aplique o papel no nível do projeto em que a transferência local está sendo executada.

      Para ver uma lista detalhada das permissões que esse papel concede, consulte Papéis do Pub/Sub.
      Leitor de bucket legado do Storage (roles/storage.legacyBucketReader) Permite que a transferência local leia metadados do bucket do Cloud Storage. Concede a cada bucket do Cloud Storage usado em uma transferência.
    4. Para configurar uma conta de usuário ou uma conta de serviço de agente de transferência local que executa agentes de transferência local, atribua estas permissões e papéis:
      Papel / permissão Efeitos Observações
      Administrador de objetos do Storage (roles/storage.objectAdmin) Permite que agentes de transferência local criem, atualizem e excluam objetos do Cloud Storage como parte de uma transferência. Conceda a todos os buckets do Cloud Storage usados em uma transferência. Se for indicado para seu caso, é possível conceder esse papel (no nível do projeto) ao projeto de onde a transferência local é executada.

      Para ver uma lista detalhada das permissões que esse papel concede, consulte Papéis predefinidos do Cloud Storage.
      Divulgador do Pub/Sub (roles/pubsub.publisher) Permite que agentes de transferência local compartilhem informações com o Google Cloud usando tópicos do Pub/Sub. Para uma lista detalhada das permissões que este papel concede, consulte Papéis do Pub/Sub.
      Assinante do Pub/Sub (roles/pubsub.subscriber) Permite que o Google Cloud compartilhe informações com agentes de transferência local usando tópicos do Pub/Sub. Para uma lista detalhada das permissões que este papel concede, consulte Papéis do Pub/Sub.
      Editor do Pub/Sub (roles/pubsub.editor) Permite que os agentes de transferência local criem, recebam e excluam assinaturas do Pub/Sub. Permite que os agentes recebam o tópico do Pub/Sub usado na comunicação entre o Google Cloud e os agentes de transferência local. Para uma lista detalhada das permissões que este papel concede, consulte Papéis do Pub/Sub.
  4. Para instalar o Docker Community Edition em uma máquina física ou virtual do Linux, faça as seguintes ações:

    1. Para instalar o Docker Community Edition, execute os seguintes comandos:

       curl -fsSL https://get.docker.com -o get-docker.sh
      
       sudo sh get-docker.sh
      
       sudo systemctl enable docker
      

      Se você encontrar um erro de instalação, consulte Solução de problemas.

    2. Ative os agentes desta máquina para fazer a autenticação no Google Cloud.

      Para ativar a autenticação, execute os comandos a seguir para salvar as credenciais padrão do gcloud da sua máquina em um volume do Docker:

      sudo docker run -ti --name gcloud-config \
          gcr.io/google.com/cloudsdktool/cloud-sdk \
          gcloud auth application-default login
      
  5. Inicie o agente executando o seguinte comando:

    sudo docker run -d --ulimit memlock=64000000 --rm \
    --volumes-from gcloud-config \
    -v /:/transfer_root \
    gcr.io/cloud-ingest/tsop-agent:latest \
    --enable-mount-directory \
    --project-id=PROJECT_ID \
    --hostname=$(hostname)
    

    Substitua PROJECT_ID pelo ID do seu projeto.

A seguir