IAM 設定とサービス アカウントのロール

IAM を正しく構成することは、Fleet Engine システムのセキュリティと ID 管理の前提条件です。IAM ロールを使用して、さまざまなオペレーションやデータへのアクセスを調整し、ドライバー、消費者、フリート オペレーターの要件を満たします。

サービス アカウントと IAM ロールとは

Google Cloud コンソールでサービス アカウントを設定し、Fleet Engine のデータへのアクセスを認証して承認します。Fleet Engine には、サービス アカウントに割り当てて、そのアカウントがアクセスできるデータを決定する、一連の事前定義された IAM ロールがあります。詳細については、Google Cloud ドキュメントのサービス アカウントの概要をご覧ください。

Fleet Engine は、IAM ロールとポリシーを使用して、Fleet Engine API メソッドとリソースの認可を管理します。詳細については、Google Cloud ドキュメントのロールの概要をご覧ください。次のセクションで説明する Fleet Engine サービス アカウントのロールのみを使用します。

IAM ロールの付与に関する一般的な情報については、Google Cloud コンソールを使用して IAM ロールを付与するをご覧ください。

Fleet Engine サービス アカウントのロール

Fleet Engine のインストールで選択する Mobility サービスによって、含まれるロールと権限が決まります。

次のロールは、権限が Fleet Engine ロールでどのように機能するかを示しています。

  • ondemandAdmin ロールと deliveryAdmin ロールは、Fleet Engine でのすべてのオペレーションを実行できます。これらのロールは、バックエンド サーバーと Fleet Engine 間の通信など、信頼できる環境でのみ使用してください。

  • driverSdkUser ロールと consumerSdkUser ロールは、割り当てられた乗車に関する詳細を取得し、車両の位置情報を更新または受信することのみが許可されています。これらのタイプのロールは、通常、ドライバ、消費者、モニタリング アプリなど、信頼度の低い環境のクライアントで使用されます。

オンデマンド トリップとスケジュール設定されたタスクに付与されるロールと権限については、次の表をご覧ください。

オンデマンドのルート

ロール 権限

Fleet Engine オンデマンド管理者

roles/fleetengine.ondemandAdmin

すべての車両リソースと乗車リソースに対する読み取り、書き込み、削除の権限を付与します。このロールを持つプリンシパルは JWT を使用する必要はありません。可能な限り、アプリケーションのデフォルト認証情報を使用する必要があります。このロールはカスタム JWT クレームを無視します。このロールの使用は、バックエンド サーバーなどの信頼できる環境に制限します。

Fleet Engine Driver SDK ユーザー

roles/fleetengine.driverSdkUser

車両の位置とルートを更新し、車両と移動に関する情報を取得します。このロールで作成されたカスタム クレームを含む JWT を使用して、ライドシェアまたは配達のドライバー アプリからの認証と認可を行います。

Fleet Engine Consumer SDK ユーザー

roles/fleetengine.consumerSdkUser

車両を検索し、車両と乗車に関する情報を取得します。このロールで作成されたカスタム クレームを含む JWT を、ライドシェアリングや配達のコンシューマー アプリで使用します。

スケジュール設定されたタスク

ロール 権限

Fleet Engine Delivery 管理者

roles/fleetengine.deliveryAdmin

配信リソースに対する読み取り、書き込み、削除の権限を付与します。このロールを持つプリンシパルは JWT を使用する必要はなく、代わりにアプリケーションのデフォルト認証情報を使用する必要があります。カスタム JWT クレームを無視します。このロールの使用は、バックエンド サーバーなどの信頼できる環境に制限します。

Fleet Engine Delivery フリート リーダー

roles/fleetengine.deliveryFleetReader

配送車両とタスクの読み取り、およびトラッキング ID を使用したタスクの検索を行う権限を付与します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配送業者のウェブブラウザから使用されます。

Fleet Engine Delivery の信頼されていないドライバ ユーザー

roles/fleetengine.deliveryUntrustedDriver

配達車両の位置情報を更新する権限を付与します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配達ドライバーのモバイル デバイスから使用されます。

注: ここでいう「信頼できない」とは、企業の IT 部門によって管理されておらず、ドライバーが提供したデバイスを指します。通常、適切な IT セキュリティ制御がありません。BYOD ポリシーを導入している組織は、このロールの安全性を確保し、モバイルアプリのみを使用して車両の位置情報の更新を Fleet Engine に送信する必要があります。他のすべてのやり取りは、バックエンド サーバーから開始する必要があります。

Fleet Engine Delivery の一般ユーザー

roles/fleetengine.deliveryConsumer

トラッキング ID を使用してタスクを検索し、タスク情報を読み取ることはできるが更新することはできない権限を付与します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配信コンシューマーのウェブブラウザから使用されます。

Fleet Engine Delivery の信頼されているドライバ ユーザー

roles/fleetengine.deliveryTrustedDriver

配送車両とタスクの作成と更新(配送車両の位置情報とタスクのステータスまたは結果の更新を含む)を許可します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配達ドライバーのモバイル デバイスまたはバックエンド サーバーから使用されます。

注: 信頼できるとは、適切なセキュリティ管理が施された、企業の IT 部門によって管理されているドライバーのデバイスを指します。これらのデバイスを提供する組織は、Fleet Engine のインタラクションをモバイルアプリに統合することを選択できます。

Fleet Engine で IAM ロールとサービス アカウントを使用する方法

Fleet Engine で認証と認可にサービス アカウントを使用する一般的な手順は次のとおりです。

  1. 必要なロールごとに、Google Cloud コンソールでサービス アカウントを作成します。サービス アカウントは、ドライバー、消費者、フリート モニタリング、フリート管理のアプリケーションやウェブサイト(Fleet Engine データへのアクセスが必要なソフトウェア)を認証するために必要です。同じ権限を必要とするソフトウェアは、同じサービス アカウントを使用できます。

  2. 各サービス アカウントに Fleet Engine IAM ポリシーロールを割り当てます。Fleet Engine のデータにアクセスしたり、データを更新したりするための適切な権限を提供する、Fleet Engine 固有の IAM ポリシーロールを選択します。

  3. アプリとソフトウェアで適切なサービス アカウントを使用して、Fleet Engine への接続を認証し、割り当てられたロールによって付与されたリソースへのアクセスを承認します。

サービス アカウントのロールが Fleet Engine のセキュリティにどのように適合するかについて詳しくは、セキュリティの概要をご覧ください。サービス アカウントのロールの詳細については、Google Cloud ドキュメントの IAM のロールについてをご覧ください。

次のステップ

  • Fleet Engine での JSON Web Token の使用方法については、JSON Web Token をご覧ください。
  • Fleet Engine のセキュリティの概要については、セキュリティの概要をご覧ください。
  • Google Cloud コンソールのサービス アカウントのロールの詳細については、IAM ロールについてをご覧ください。