Visão geral da segurança

Neste documento, explicamos como o Fleet Engine protege a troca de informações entre os três ambientes principais do sistema do Fleet Engine: o servidor de back-end, o servidor do Fleet Engine e os aplicativos e sites do cliente.

O Fleet Engine gerencia a segurança de duas maneiras fundamentais, usando o princípio de privilégio mínimo:

  • Application Default Credentials (ADC): para ambientes com privilégios elevados, como comunicações de servidor para servidor. Usado quando o servidor de back-end está criando veículos e viagens e gerenciando-os no Fleet Engine. Para mais detalhes, consulte Application Default Credentials.

  • JSON Web Tokens (JWT): para ambientes de baixa confiança, como aplicativos cliente em execução em smartphones e navegadores. Usado para realizar operações com menos privilégios, como atualizar a localização do veículo no Fleet Engine.

    Os JWTs exigidos por ambientes de baixa confiança são gerados e emitidos pelo seu servidor de back-end para proteger as chaves secretas da conta de serviço e incluem declarações adicionais específicas do Fleet Engine. Para mais detalhes, consulte JSON Web Tokens.

    Por exemplo, se você tiver um app para motoristas, eles vão acessar os dados do Fleet Engine pelo app. O app é autenticado usando JWTs que recebe do seu servidor de back-end. As declarações JWT incluídas, junto com o papel da conta de serviço, determinam quais partes do sistema o app do motorista pode acessar e o que ele pode fazer. Essa abordagem limita o acesso apenas aos dados necessários para concluir as atribuições de direção.

O Fleet Engine usa essas abordagens de segurança para oferecer o seguinte:

  • A autenticação verifica a identidade da entidade que faz a solicitação. O Fleet Engine usa o ADC para ambientes de alta confiança e o JWT para ambientes de baixa confiança.

  • A autorização especifica quais recursos uma entidade autenticada pode acessar. O Fleet Engine usa contas de serviço com papéis do IAM do Google Cloud, além de declarações JWT que garantem que as entidades autenticadas tenham permissões para ver ou alterar os dados que estão solicitando.

Configuração de segurança do servidor e do cliente

Para ativar a segurança com o Fleet Engine, configure as contas e a segurança necessárias no servidor de back-end e nos aplicativos cliente e sites.

O diagrama a seguir mostra uma visão geral das etapas para configurar a segurança no servidor de back-end e nos aplicativos cliente.

Diagrama do fluxo de segurança durante a configuração para autenticação de apps de servidor e cliente

Confira mais detalhes nas próximas seções.

Configuração de segurança do servidor de back-end

Um administrador de frota precisa seguir estas etapas:

  1. Criar e configurar contas de serviço:

    1. No console do Google Cloud, crie contas de serviço.

    2. Atribua papéis específicos do IAM às contas de serviço.

    3. Configure o servidor de back-end com as contas de serviço criadas. Para mais detalhes, consulte Papéis de conta de serviço.

  2. Configurar a comunicação segura com o Fleet Engine (ADC): configure seu back-end para se comunicar com a instância do Fleet Engine usando o Application Default Credentials com a conta de serviço de administrador adequada. Para mais detalhes, consulte Application Default Credentials.

  3. Configurar a comunicação segura com apps cliente (JWT): crie um gerador de JSON Web Token para criar JWTs com as declarações apropriadas para aplicativos cliente e sites de monitoramento. Para mais detalhes, consulte Emitir JSON Web Tokens.

Configuração de segurança para aplicativos

Os desenvolvedores de aplicativos precisam incluir uma maneira de buscar JSON Web Tokens gerados pelo servidor de back-end nos apps ou sites do cliente e usá-los para se comunicar com segurança com o Fleet Engine. Para mais detalhes, consulte as instruções de configuração na documentação da Experiência do motorista ou da Experiência do consumidor para os aplicativos necessários.

Fluxo de segurança do app para servidor e cliente

O diagrama de sequência a seguir demonstra o fluxo de autenticação e autorização do app de servidor e cliente com o Fleet Engine usando o ADC com o servidor de back-end e JWTs com os aplicativos cliente e sites.

Diagrama do fluxo de segurança durante a operação para autenticação de apps de servidor e cliente

  • O servidor de back-end cria veículos e viagens ou tarefas no Fleet Engine.

  • O servidor de back-end atribui uma viagem ou tarefa a um veículo: o app do motorista, quando ativo, recupera a atribuição.

  • Seu servidor de back-end: assina e emite um JWT para a respectiva conta de serviço com o papel do IAM apropriado para a tarefa ou viagem atribuída.

  • O app cliente: o app cliente usa o JWT recebido para enviar atualizações de localização do veículo ao Fleet Engine.

A seguir