ソフトウェア定義車両(SDV)プラットフォームは、OEM が一部のリソースへのアクセスを制御できるようにする認可フレームワークを提供します。
Android には、すべてのアプリがマニフェスト ファイルで独自の権限を宣言して機能を記述する権限モデルがあります。SDV 認可モデルも同様です。SDV サービス バンドルは、パブリッシュ、サブスクライブ、提供、呼び出しなど、実行できるアクション を宣言する権限を定義します。
権限の種類
次の権限タイプがサポートされています。
- クライアント
- サービスタイプとチャネルで識別される RPC インターフェースでメソッドを呼び出す権限。
- サーバー
- サービスタイプとチャネルで識別される RPC インターフェースを実装して提供する権限。
- パブリッシャー
- メッセージ タイプとトピックで識別されるデータトピックにメッセージをパブリッシュする権限。
- サブスクライバー
- メッセージ タイプとトピックで識別されるデータトピックからメッセージを受信する権限。
認可ポリシー ファイル
認可ポリシー ファイルは、SDV サービス バンドルの SDV 通信スタック認可構成の唯一の情報源です。
例
# Allows this SB to register publication of TireStatus type with "left-tire" topic only.
publisher {
message: "com.sdv.TireStatus"
topic: "left-tire"
}
# Allows this SB to subscribe to publication of TireStatus type with "left-tire" topic only.
subscriber {
message: "com.sdv.TireStatus"
topic: "left-tire"
}
# Allows this SB to implement and serve UserPreferencesManager service.
server {
service: "com.sdv.UserPreferencesManager"
channel: "default"
}
# Allows this SB to discover and call UserPreferencesManager service.
client {
service: "com.sdv.UserPreferencesManager"
channel: "default"
}
特定の認可 ポリシー ファイルが属するサービスを特定するには、デプロイをご覧ください。proto スキーマの詳細については、 認可ポリシーをご覧ください。
VM レベルの権限
VM レベルの権限は、メッシュ ネットワーク内の異なる VM 間の通信の認可ポリシーを定義します。これにより、1 つの VM が侵害された場合に多層防御セキュリティが提供されます。詳細については、VM レベルの権限をご覧ください。
メッシュ ネットワーク
サービス検出アーキテクチャは、すべての認可ポリシーがメッシュ ネットワーク内の VM 間で共有されるように設定されています。ユーザーの介入は必要ありません。
サービス検出は、ローカル キャッシュ ルックアップを実行して、リモート VM 上のサービス ユニットを検出します。すべての認可ポリシーは VM 間で共有され、サービス検出の呼び出し元が検出されたサービス ユニットに対して認可されているかどうかを確認します。
メッシュ ネットワーク内の各ノードは、他のすべてのノードの認可ポリシーをキャッシュに保存します。新しいノードが導入されると、その認可ポリシーは他のすべてのノードにレプリケートされます。再起動やクラッシュなどでノード接続が失われると、そのノードからキャッシュに保存されたすべての認可ポリシーが削除されます。