Принципы безопасности

В этом документе рассказывается о том, как 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, настройте необходимые аккаунты и безопасность на внутреннем сервере, а также в клиентских приложениях и на сайтах.

На диаграмме ниже показаны шаги по настройке безопасности на сервере и в клиентских приложениях.

Схема потока безопасности во время настройки аутентификации сервера и клиентского приложения

Подробные сведения приведены в разделах ниже.

Настройка безопасности бэкенд-сервера

Администратор автопарка должен выполнить следующие действия:

  1. Создайте и настройте сервисные аккаунты:

    1. Создайте сервисные аккаунты в консоли Google Cloud.

    2. Назначьте сервисному аккаунту определенные роли IAM.

    3. Настройте бэкенд-сервер с созданными сервисными аккаунтами. Подробнее о ролях сервисных аккаунтов…

  2. Настройте защищенную связь с Fleet Engine (ADC). Настройте серверную часть так, чтобы она взаимодействовала с экземпляром Fleet Engine, используя учетные данные по умолчанию для приложений с подходящим сервисным аккаунтом *Admin. Подробнее об Application Default Credentials…

  3. Настройте защищенную связь с клиентскими приложениями (JWT). Создайте генератор JSON Web Token, чтобы создавать JWT с подходящими утверждениями для клиентских приложений и сайтов мониторинга. Подробнее о том, как выпустить веб-токены JSON…

Настройка безопасности приложений

Разработчикам приложений необходимо добавить в клиентские приложения или на сайты способ получения веб-токенов JSON, сгенерированных вашим серверным кодом, и использовать их для безопасного обмена данными с Fleet Engine. Подробные инструкции по настройке приведены в документации по интерфейсу для водителей и интерфейсу для клиентов.

Процесс обеспечения безопасности сервера и клиентского приложения

На диаграмме ниже показан процесс аутентификации и авторизации серверного и клиентского приложений с помощью Fleet Engine, в котором для взаимодействия с сервером используется ADC, а для взаимодействия с клиентскими приложениями и сайтами – JWT.

Схема процесса обеспечения безопасности при аутентификации сервера и клиентского приложения

  • Ваш внутренний сервер создает транспортные средства, поездки или задачи в Fleet Engine.

  • Ваш бэкенд-сервер назначает поездку или задачу транспортному средству. Приложение для водителей, если оно активно, получает назначение.

  • Ваш внутренний сервер подписывает и выдает JWT для соответствующего сервисного аккаунта с подходящей ролью IAM для назначенной задачи или поездки.

  • Клиентское приложение. Клиентское приложение использует полученный JWT для отправки обновлений местоположения транспортного средства в Fleet Engine.

Дальнейшие действия