La plate-forme de véhicule défini par logiciel (SDV) fournit un framework d'autorisation permettant à l'OEM de contrôler l'accès à certaines ressources.
Android dispose d'un modèle d'autorisations dans lequel chaque application déclare ses propres autorisations dans le fichier manifeste pour décrire ses fonctionnalités. Le modèle d'autorisation des SDV est similaire. Les bundles de services SDV définissent des autorisations pour déclarer les actions qu'ils peuvent effectuer, telles que la publication, l'abonnement, la diffusion et l'appel.
Types d'autorisations
Les types d'autorisations suivants sont acceptés :
- Client
- Autorisé à appeler des méthodes sur une interface RPC, identifiée par le type de service et le canal.
- Serveur
- Autorisé à implémenter et à diffuser une interface RPC, identifiée par le type de service et le canal.
- Éditeur
- Autorisé à publier des messages dans un sujet de données, identifié par le type de message et le sujet.
- Abonné
- Autorisé à recevoir des messages d'un sujet de données, identifié par le type de message et le sujet.
Fichier de règles d'autorisation
Le fichier de règles d'autorisation est une source unique de vérité pour la configuration d'autorisation de la pile de communications SDV pour un bundle de services SDV.
Exemple
# 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"
}
Consultez la section Déploiement pour déterminer à quel service appartient un fichier de stratégie d'autorisation spécifique. Pour en savoir plus sur le schéma proto, consultez Stratégie d'autorisation. Pour savoir comment les règles sont appliquées et comment inspecter les journaux d'audit en cas d'échec d'une vérification d'autorisation, consultez Application et Déboguer les violations d'autorisations.
Autorisations au niveau de la VM
Les autorisations au niveau de la VM définissent des règles d'autorisation pour la communication entre différentes VM du réseau maillé. Cela fournit une sécurité de défense en profondeur au cas où une VM serait compromise. Pour en savoir plus, consultez Autorisations au niveau de la VM.
Réseau maillé
L'architecture de découverte des services est configurée de sorte que toutes les règles d'autorisation soient partagées entre les VM du réseau maillé. Aucune intervention n'est requise de la part de l'utilisateur.
La découverte des services effectue une recherche dans le cache local pour découvrir les unités de service sur une VM distante. Toutes les règles d'autorisation sont partagées entre les VM pour vérifier si l'appelant de la découverte des services est autorisé à accéder aux unités de service découvertes.
Chaque nœud du réseau maillé met en cache les règles d'autorisation de tous les autres nœuds. Lorsqu'un nouveau nœud est introduit, ses règles d'autorisation sont répliquées sur tous les autres nœuds. Si une connexion de nœud est perdue, par exemple lors d'un redémarrage ou d'un plantage, toutes les règles d'autorisation mises en cache de ce nœud sont supprimées. Pour savoir comment placer des listes de contrôle d'accès (LCA) de type unité sur plusieurs VM et éviter les conflits de règles lorsqu'un nœud se déconnecte, consultez LCA de type unité.