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 のインストールに選択したモビリティ サービスによって、含まれるロールと権限が決まります。

次のロールは、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 セキュリティ管理が施されていません。個人所有デバイスのポリシーを採用している組織は、このロールの安全性を選択し、モバイルアプリのみを使用して車両の位置情報の更新を 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 ロールについてをご覧ください。

次のステップ

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