このドキュメントでは、Fleet Engine システムの 3 つの主要な環境(バックエンド サーバー、Fleet Engine サーバー、クライアント アプリケーションとウェブサイト)間の情報交換を Fleet Engine がどのように保護しているかについて説明します。
Fleet Engine は、最小権限の原則を使用して、次の 2 つの方法でセキュリティを管理します。
アプリケーションのデフォルト認証情報(ADC): サーバー間通信などの高権限環境で使用します。バックエンド サーバーが車両と乗車を作成し、Fleet Engine で管理する場合に使用します。詳細については、 アプリケーションのデフォルト認証情報をご覧ください。
JSON ウェブトークン(JWT): スマートフォンやブラウザで実行されるクライアント アプリケーションなどの信頼度の低い環境で使用します。Fleet Engine で車両の位置情報を更新するなど、権限の低いオペレーションを実行するために使用します。
信頼度の低い環境に必要な JWT は、サービス アカウントのシークレット キーを保護するためにバックエンド サーバーによって生成および発行され、Fleet Engine 固有の追加のクレームが含まれます。詳細については、JSON Web トークンをご覧ください。
たとえば、ドライバー アプリがある場合、ドライバーはアプリを介して Fleet Engine のデータにアクセスします。アプリは、バックエンド サーバーから取得した JWT を使用して認証されます。含まれている JWT クレームは、サービス アカウントのロールとともに、ドライバー アプリがアクセスできるシステムの部分と実行できる操作を決定します。このアプローチでは、運転業務を完了するために必要なデータのみにアクセスが制限されます。
Fleet Engine は、これらのセキュリティ アプローチを使用して、次の機能を提供します。
認証では、リクエストを行うエンティティの ID を確認します。Fleet Engine は、信頼度の高い環境には ADC を使用し、信頼度の低い環境には JWT を使用します。
認可では、認証されたエンティティがアクセスできるリソースを指定します。Fleet Engine は、Google Cloud IAM ロールを持つサービス アカウントと、認証されたエンティティがリクエストしているデータを表示または変更する権限を持つことを保証する JWT クレームを使用します。
サーバーとクライアントのセキュリティ設定
Fleet Engine でセキュリティを有効にするには、バックエンド サーバーとクライアント アプリケーションおよびウェブサイトに必要なアカウントとセキュリティを設定します。
次の図は、バックエンド サーバーとクライアント アプリケーションでセキュリティを設定する手順の概要を示しています。

詳しくは、以降のセクションをご覧ください。
バックエンド サーバーのセキュリティ設定
フリート管理者は、次の手順を行う必要があります。
サービス アカウントを作成して構成する:
Google Cloud コンソールでサービス アカウントを作成します。
サービス アカウントに特定の IAM ロールを割り当てます。
作成したサービス アカウントを使用してバックエンド サーバーを構成します。詳細については、サービス アカウントのロールをご覧ください。
Fleet Engine との安全な通信を構成する(ADC): 適切な *管理者サービス アカウントのアプリケーションのデフォルト認証情報を使用して、Fleet Engine インスタンスと通信するようにバックエンドを構成します。詳細については、アプリケーションのデフォルト認証情報をご覧ください。
クライアント アプリとの安全な通信を構成する(JWT): クライアント アプリケーションとモニタリング ウェブサイトに適したクレームを含む JWT を作成する JSON ウェブ トークン ジェネレータを作成します。詳細については、 JSON ウェブトークンを発行するをご覧ください。
アプリケーションのセキュリティ設定
アプリケーション デベロッパーは、バックエンド サーバーで生成された JSON ウェブトークンをクライアント アプリまたはウェブサイトで取得し、それを使用して Fleet Engine と安全に通信する方法を含める必要があります。詳細については、必要なアプリケーションの ドライバー エクスペリエンスまたはコンシューマー エクスペリエンスのドキュメントの設定手順をご覧ください。
サーバーとクライアント アプリのセキュリティ フロー
次のシーケンス図は、バックエンド サーバーで ADC を使用し、クライアント アプリケーションとウェブサイトで JWT を使用する Fleet Engine を使用した、サーバーとクライアント アプリの認証と認可のフローを示しています。

バックエンド サーバーが Fleet Engine で車両と乗車またはタスクを作成します 。
バックエンド サーバーが乗車またはタスクを車両に割り当てます: ドライバー アプリがアクティブな場合、割り当てを取得します。
バックエンド サーバー: 割り当てられたタスクまたは乗車に適した IAM ロールを使用して、それぞれのサービス アカウントの JWT に署名して発行します。
クライアント アプリ: クライアント アプリは、受信した JWT を使用して、車両の 位置情報の更新を Fleet Engine に送信します。
次のステップ
- Fleet Engine プロジェクトを作成する。
- サーバーから JSON ウェブトークンを発行する 方法を確認する。
- サービス アカウントのロールの詳細を確認する。
- JWT の詳細を確認する。