В этом документе рассказывается о том, как Fleet Engine защищает обмен информацией между тремя основными средами вашей системы Fleet Engine: внутренним сервером, сервером Fleet Engine и клиентскими приложениями и сайтами.
Fleet Engine обеспечивает безопасность двумя основными способами, используя принцип наименьших привилегий:
Учетные данные приложения по умолчанию (ADC) – для сред с высокими привилегиями, например для связи между серверами. Используется, когда ваш бэкенд-сервер создает транспортные средства и поездки и управляет ими в Fleet Engine. Подробнее об Application Default Credentials…
Веб-токены JSON (JWT). Используются в средах с низким уровнем доверия, например в клиентских приложениях, работающих на смартфонах и в браузерах. Используется для выполнения операций с более низким уровнем доступа, например для обновления местоположения автомобиля в Fleet Engine.
JWT, необходимые для сред с низким уровнем доверия, генерируются и выдаются вашим внутренним сервером для защиты секретных ключей служебного аккаунта и включают дополнительные утверждения, относящиеся к Fleet Engine. Подробнее о веб-токенах JSON…
Например, если у вас есть приложение для водителей, они получают доступ к данным Fleet Engine через него. Приложение аутентифицируется с помощью JWT, которые оно получает от вашего бэкенд-сервера. Включенные утверждения JWT, а также роль аккаунта сервиса определяют, к каким частям системы имеет доступ приложение для водителей и что оно может делать. Такой подход ограничивает доступ только теми данными, которые необходимы для выполнения заданий.
Fleet Engine использует следующие подходы к обеспечению безопасности:
Аутентификация подтверждает личность отправителя запроса. Fleet Engine использует ADC для сред с высоким уровнем доверия и JWT для сред с низким уровнем доверия.
Авторизация определяет, к каким ресурсам имеет доступ аутентифицированный объект. Fleet Engine использует сервисные аккаунты с ролями Google Cloud IAM, а также утверждения JWT, которые гарантируют, что у аутентифицированных объектов есть разрешения на просмотр или изменение запрашиваемых данных.
Настройка безопасности сервера и клиента
Чтобы включить защиту с помощью Fleet Engine, настройте необходимые аккаунты и безопасность на внутреннем сервере, а также в клиентских приложениях и на сайтах.
На диаграмме ниже показаны шаги по настройке безопасности на сервере и в клиентских приложениях.

Подробные сведения приведены в разделах ниже.
Настройка безопасности бэкенд-сервера
Администратор автопарка должен выполнить следующие действия:
Создайте и настройте сервисные аккаунты:
Создайте сервисные аккаунты в консоли Google Cloud.
Назначьте сервисному аккаунту определенные роли IAM.
Настройте бэкенд-сервер с созданными сервисными аккаунтами. Подробнее о ролях сервисных аккаунтов…
Настройте защищенную связь с Fleet Engine (ADC). Настройте серверную часть так, чтобы она взаимодействовала с экземпляром Fleet Engine, используя учетные данные по умолчанию для приложений с подходящим сервисным аккаунтом *Admin. Подробнее об Application Default Credentials…
Настройте защищенную связь с клиентскими приложениями (JWT). Создайте генератор JSON Web Token, чтобы создавать JWT с подходящими утверждениями для клиентских приложений и сайтов мониторинга. Подробнее о том, как выпустить веб-токены JSON…
Настройка безопасности приложений
Разработчикам приложений необходимо добавить в клиентские приложения или на сайты способ получения веб-токенов JSON, сгенерированных вашим серверным кодом, и использовать их для безопасного обмена данными с Fleet Engine. Подробные инструкции по настройке приведены в документации по интерфейсу для водителей и интерфейсу для клиентов.
Процесс обеспечения безопасности сервера и клиентского приложения
На диаграмме ниже показан процесс аутентификации и авторизации серверного и клиентского приложений с помощью Fleet Engine, в котором для взаимодействия с сервером используется ADC, а для взаимодействия с клиентскими приложениями и сайтами – JWT.

Ваш внутренний сервер создает транспортные средства, поездки или задачи в Fleet Engine.
Ваш бэкенд-сервер назначает поездку или задачу транспортному средству. Приложение для водителей, если оно активно, получает назначение.
Ваш внутренний сервер подписывает и выдает JWT для соответствующего сервисного аккаунта с подходящей ролью IAM для назначенной задачи или поездки.
Клиентское приложение. Клиентское приложение использует полученный JWT для отправки обновлений местоположения транспортного средства в Fleet Engine.
Дальнейшие действия
- Создайте проект Fleet Engine.
- Узнайте, как выпускать веб-токены JSON на своем сервере.
- Подробнее о ролях сервисных аккаунтов…
- Подробнее о JWT…