Visão geral da segurança

Este documento explica como o Fleet Engine protege a troca de informações entre os três ambientes principais do sistema: 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 do menor privilégio:

  • Credenciais padrão do aplicativo (ADC): para ambientes de privilégio alto, como comunicações entre servidores. Usado quando o servidor de back-end está criando veículos e viagens e os gerenciando no Fleet Engine. Para mais detalhes, consulte Credenciais padrão do aplicativo.

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

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

    Por exemplo, se você tiver um app de motorista, os motoristas acessam os dados do Fleet Engine por meio dele. O app é autenticado usando JWTs recebidos do servidor de back-end. As declarações JWT incluídas, junto com o papel da conta de serviço, determinam a que partes do sistema o app do motorista tem acesso e o que ele pode fazer. Essa abordagem limita o acesso apenas aos dados necessários para concluir as missõ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 está fazendo 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 tem acesso. 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 visualizar 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 e sites de cliente.

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 da autenticação do app cliente e do servidor

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 Funções 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 as credenciais padrão do aplicativo com a conta de serviço *Admin adequada. Para 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 declarações adequadas para aplicativos cliente e monitoramento de sites. Para saber mais, consulte Emitir tokens JSON da Web.

Configuração de segurança do aplicativo

Os desenvolvedores de aplicativos precisam incluir uma maneira de buscar tokens da Web JSON 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 servidor e do app cliente

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

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 envia uma viagem ou tarefa para um veículo: o app do motorista, quando ativo, recupera a tarefa.

  • Seu servidor de back-end: assina e emite um JWT para a respectiva conta de serviço com a função do IAM apropriada 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