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 privilégio mínimo:

  • Application Default Credentials (ADC): para ambientes de alto privilégio, 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 detalhes, consulte Credenciais padrão do aplicativo.

  • JSON Web Tokens (JWT): para ambientes de baixa confiança, como aplicativos cliente executados 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 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 detalhes, consulte Tokens JSON da Web.

    Por exemplo, se você tiver um app de motorista, os motoristas vão acessar dados do Fleet Engine pelo app. O app é autenticado usando JWTs que ele recebe do seu servidor de back-end. As declarações JWT incluídas, junto com a função da conta de serviço, determinam a quais partes do sistema o app para motoristas tem acesso e o que ele pode fazer. Essa abordagem limita o acesso apenas aos dados necessários para concluir as tarefas 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 ADC para ambientes de alta confiança e JWT para ambientes de baixa confiança.

  • A autorização especifica a quais recursos uma entidade autenticada tem acesso. O Fleet Engine usa contas de serviço com papéis do Google Cloud IAM e declarações JWT que garantem que as entidades autenticadas tenham permissões para ver ou mudar 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 clientes.

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 servidor e do app 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 da conta de serviço.

  2. Configurar a comunicação segura com o Fleet Engine (ADC): configure seu back-end para se comunicar com sua instância do Fleet Engine usando Credenciais padrão do aplicativo com a conta de serviço de administrador apropriada. 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 declarações adequadas para aplicativos cliente e sites de monitoramento. Para detalhes, consulte Emitir tokens JSON da Web.

Configuração de segurança para aplicativos

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 de Experiência do motorista ou Experiência do consumidor para os aplicativos necessários.

Fluxo de segurança de apps cliente e servidor

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 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 do servidor e do cliente

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

  • Seu servidor de back-end atribui uma viagem ou tarefa a um veículo: O app Driver, 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 adequado para a tarefa ou viagem atribuída.

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

A seguir