В этом документе объясняется, как 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 Console создайте учетные записи служб.
Назначьте определенные роли IAM учетным записям служб.
Настройте свой внутренний сервер с помощью созданных учетных записей служб. Подробности см. в разделе Роли учетных записей служб .
Настройте безопасную связь с Fleet Engine (ADC) : настройте свой бэкэнд для связи с экземпляром Fleet Engine с использованием учетных данных приложения по умолчанию с соответствующей учетной записью *Admin service. Подробности см. в разделе Учетные данные приложения по умолчанию .
Настройте безопасную связь с клиентскими приложениями (JWT) : создайте генератор JSON Web Token для создания JWT с соответствующими утверждениями для клиентских приложений и веб-сайтов мониторинга. Подробнее см. Issue JSON Web Tokens .
Настройка безопасности приложения
Разработчикам приложений необходимо включить способ извлечения JSON Web Tokens, сгенерированных вашим внутренним сервером, в ваши клиентские приложения или веб-сайты и использовать их для безопасной связи с Fleet Engine. Для получения подробной информации см. инструкции по настройке в документации Driver Experience или Consumer Experience для нужных вам приложений.
Поток безопасности серверных и клиентских приложений
Следующая диаграмма последовательности демонстрирует поток аутентификации и авторизации серверного и клиентского приложений с помощью Fleet Engine с использованием ADC с внутренним сервером и JWT с клиентскими приложениями и веб-сайтами.
Ваш внутренний сервер создает транспортные средства, поездки или задачи в Fleet Engine .
Ваш внутренний сервер отправляет поездку или задание в транспортное средство : приложение для водителя, если оно активно, извлекает задание.
Ваш внутренний сервер : подписывает и выдает JWT для соответствующей учетной записи службы с соответствующей ролью IAM для назначенной задачи или поездки.
Клиентское приложение : клиентское приложение использует полученный JWT для отправки обновлений местоположения транспортного средства в Fleet Engine.
Что дальше?
- Создайте свой проект Fleet Engine .
- Узнайте, как выдавать JSON Web Tokens со своего сервера.
- Узнайте больше о ролях учетных записей служб .
- Узнайте больше о JWT .