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 オンデマンド管理者
|
すべての車両リソースとルート リソースに対する読み取り / 書き込み権限を付与します。このロールを持つプリンシパルは JWT を使用する必要はなく、可能な限りアプリケーションのデフォルト認証情報を使用する必要があります。このロールでは、カスタム JWT クレームは無視されます。このロールの使用を、バックエンド サーバーなどの信頼できる環境に制限します。 |
Fleet Engine Driver SDK ユーザー
|
車両の位置とルートの更新、車両とルートに関する情報の取得を行います。このロールで作成されたカスタム クレームを含む JWT を使用して、ライドシェアリングや配達のドライバーアプリからの認証と承認を行います。 |
Fleet Engine Consumer SDK ユーザー
|
車両を検索し、車両とルートに関する情報を取得します。ライドシェアリングや配達用の消費者向けアプリでは、このロールで作成されたカスタム クレームを含む JWT を使用します。 |
スケジュール設定されたタスク
ロール | 権限 |
---|---|
Fleet Engine Delivery 管理者
|
配信リソースに対する読み取りと書き込みの権限を付与します。このロールを持つプリンシパルは JWT を使用する必要はなく、代わりにアプリケーションのデフォルト認証情報を使用する必要があります。JWT カスタム クレームは無視されます。このロールの使用を、バックエンド サーバーなどの信頼できる環境に制限します。 |
Fleet Engine Delivery フリート リーダー
|
配送車両とタスクの読み取り、追跡 ID を使用したタスクの検索の権限を付与します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配送フリート事業者のウェブブラウザから使用されます。 |
Fleet Engine Delivery の信頼されていないドライバ ユーザー
|
配送車両の位置情報を更新する権限を付与します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配達ドライバーのモバイル デバイスから使用されます。 注: 信頼できないデバイスとは、企業の IT 部門によって管理されていないドライバーのデバイスを指します。通常、このようなデバイスはドライバーによって提供され、適切な IT セキュリティ管理が施されていません。個人所有デバイスのポリシーを採用している組織は、このロールの安全性を選択し、モバイルアプリのみを使用して車両の位置情報の更新を Fleet Engine に送信する必要があります。その他のインタラクションはすべて、バックエンド サーバーから発信する必要があります。 |
Fleet Engine Delivery の一般ユーザー
|
トラッキング ID を使用してタスクを検索し、タスク情報を読み取る(更新は不可)権限を付与します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配信コンシューマのウェブブラウザから使用されます。 |
Fleet Engine Delivery の信頼されているドライバ ユーザー
|
配送車両とタスクの作成と更新(配送車両の位置情報、タスクのステータスまたは結果の更新など)の権限を付与します。このロールを持つサービス アカウントによって発行されたトークンは、通常、配達ドライバーのモバイル デバイスまたはバックエンド サーバーから使用されます。 注: 信頼できるデバイスとは、適切なセキュリティ管理が設定された企業の IT によって管理されているドライバーのデバイスを指します。これらのデバイスを提供する組織は、Fleet Engine の操作をモバイルアプリに統合できます。 |
Fleet Engine で IAM ロールとサービス アカウントを使用する方法
Fleet Engine で認証と認可にサービス アカウントを使用する一般的な手順は次のとおりです。
必要なロールごとに Google Cloud コンソールでサービス アカウントを作成します。ドライバー、コンシューマ、フリート モニタリング、フリート管理のアプリケーションやウェブサイト(Fleet Engine データへのアクセスが必要なソフトウェア)を認証するには、サービス アカウントが必要です。同じ権限が必要なソフトウェアは、同じサービス アカウントを使用できます。
各サービス アカウントに Fleet Engine IAM ポリシーロールを割り当てます。Fleet Engine 内のデータへのアクセスまたはデータの更新に必要な権限を付与する Fleet Engine 固有の IAM ポリシーロールを選択します。
アプリとソフトウェアで適切なサービス アカウントを使用して、Fleet Engine への接続を認証し、割り当てられたロールによって付与されたリソースへのアクセスを承認します。
Fleet Engine のセキュリティにおけるサービス アカウント ロールの位置付けについては、セキュリティの概要をご覧ください。サービス アカウントのロールについて詳しくは、Google Cloud ドキュメントの IAM ロールについてをご覧ください。
次のステップ
- JSON Web Token について読み、Fleet Engine での使用方法を理解します。
- Fleet Engine セキュリティの概要については、セキュリティの概要をご覧ください。
- Google Cloud コンソールのサービス アカウントのロールの詳細については、IAM ロールの概要をご覧ください。