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 セキュリティ管理が行われていないドライバーが提供するデバイスです。Bring Your Own Device ポリシーを適用している組織は、このロールの安全性を選択し、モバイルアプリのみを使用して車両の位置情報の更新を 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 ウェブトークンについて読み、Fleet Engine での使用方法を理解します。
- Fleet Engine のセキュリティの概要については、セキュリティの概要をご覧ください。
- Google Cloud Console のサービス アカウントのロールの詳細については、IAM のロールについてをご覧ください。