このドキュメントでは、Fleet Engine が VPC ネットワークと Fleet Engine システムの 3 つの主要な環境、すなわちバックエンド サーバー、 Fleet Engine サーバー、クライアント アプリケーションとウェブサイト。
Fleet Engine は、最小権限の原則に基づいて、次の 2 つの基本的な方法でセキュリティを管理します。
アプリケーションのデフォルト認証情報(ADC): 高い権限を持つ環境向け たとえばサーバー間通信などですバックエンド サーバーが Compute Engine で 車両やルートの作成、Fleet Engine による管理を行います。詳細については、アプリケーションのデフォルト認証情報をご覧ください。
JSON Web Token(JWT): クライアントのような信頼性の低い環境向け スマートフォンやブラウザで アプリを実行することですFleet Engine での車両位置情報の更新など、低権限のオペレーションを実行するために使用されます。
信頼性の低い環境で必要な JWT は、デベロッパーによって生成され、発行されます。 使用してサービス アカウントの秘密鍵を保護し、必要に応じて Fleet Engine に固有の追加クレームを追加できます。詳細については、JSON Web Token をご覧ください。
たとえば、ドライバー アプリがある場合、ドライバーはアプリを介して 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): 適切な *Admin サービス アカウントを使用してアプリケーションのデフォルト認証情報を使用して Fleet Engine インスタンスと通信するようにバックエンドを構成します。対象 詳細については、以下をご覧ください。 アプリケーションのデフォルト認証情報。
クライアント アプリとの安全な通信を構成する(JWT): JSON Web Token ジェネレータを作成して、クライアント アプリケーションとモニタリング ウェブサイトに適したクレームを含む JWT を作成します。詳しくは、 JSON Web Token を発行する。
アプリケーションのセキュリティ設定
アプリケーション デベロッパーは、バックエンド サーバーによって生成された JSON Web Token をクライアント アプリまたはウェブサイトで取得し、それを使用して Fleet Engine と安全に通信する方法を含める必要があります。詳しくは、 ドライバー エクスペリエンスまたは消費者 ユーザー エクスペリエンスのドキュメント 簡単にアクセスできます。
サーバー アプリとクライアント アプリのセキュリティ フロー
次のシーケンス図は、サーバーとクライアント アプリを示しています。 Fleet Engine と ADC を使用して認証と認可のフローを バックエンド サーバーと JWT をクライアント アプリケーションおよびウェブサイトと接続します。
バックエンド サーバーが Fleet Engine で車両とルートまたはタスクを作成します。
バックエンド サーバーによる車両へのルートまたはタスク: ドライバアプリがアクティブになると、割り当てを取得します。
バックエンド サーバー: 割り当てられたタスクまたはルートに適した IAM ロールを持つ、それぞれのサービス アカウントの JWT に署名して発行します。
クライアント アプリ: クライアント アプリは、受信した JWT を使用して、車両の位置情報の更新を Fleet Engine に送信します。
次のステップ
- Fleet Engine プロジェクトを作成します。
- サーバーから JSON Web Token を発行する方法を学習する。
- 詳しくは、サービス アカウントのロールをご覧ください。
- JWT の詳細を確認する。