В этом документе объясняется, как Fleet Engine обеспечивает безопасность обмена информацией между тремя основными средами вашей системы Fleet Engine: вашим бэкэнд-сервером, вашим сервером Fleet Engine и вашими клиентскими приложениями и веб-сайтами.
Fleet Engine обеспечивает безопасность двумя основными способами, используя принцип минимальных привилегий:
Учетные данные приложения по умолчанию (ADC) : используются в средах с высокими привилегиями, например, при обмене данными между серверами. Применяются, когда ваш бэкэнд-сервер создает транспортные средства и поездки и управляет ими в Fleet Engine. Подробнее см. раздел «Учетные данные приложения по умолчанию» .
JSON Web Tokens (JWT) : Для сред с низким уровнем доверия, таких как клиентские приложения, работающие на смартфонах и в браузерах. Используется для выполнения операций с низкими привилегиями, например, для обновления местоположения транспортного средства в Fleet Engine.
JWT-токены, необходимые в средах с низким уровнем доверия, генерируются и выдаются вашим бэкэнд-сервером для защиты секретных ключей учетных записей служб и включают дополнительные утверждения, специфичные для Fleet Engine. Подробнее см. JSON Web Tokens .
Например, если у вас есть приложение для водителей, водители получают доступ к данным из 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. Подробности см. в разделе «Учетные данные приложения по умолчанию» .
Настройка безопасной связи с клиентскими приложениями (JWT) : Создайте генератор JSON Web Token для создания JWT с соответствующими утверждениями для клиентских приложений и веб-сайтов мониторинга. Подробности см. в разделе «Выдача JSON Web Token» .
Настройка безопасности приложения
Разработчикам приложений необходимо предусмотреть способ получения JSON Web Tokens, сгенерированных бэкэнд-сервером, в клиентских приложениях или на веб-сайтах и использования их для безопасной связи с Fleet Engine. Подробности см. в инструкциях по настройке в документации по пользовательскому интерфейсу для водителей или потребителей для необходимых вам приложений.
Поток обеспечения безопасности серверного и клиентского приложений
На следующей диаграмме последовательности показан процесс аутентификации и авторизации серверного и клиентского приложений с использованием Fleet Engine, где в качестве бэкэнда используется ADC, а в качестве клиентских приложений и веб-сайтов — JWT.

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