Pour utiliser les enclaves SGX, les applications doivent communiquer avec le pilote SGX, qui est exposé par l'intermédiaire de /dev/isgx
sur l'hôte. Nous exécutons ces applications à l'intérieur de conteneurs Docker qui cartographient les données. /dev/isgx
à l'intérieur avec le --device
option de ligne de commande.
Existe-t-il une option permettant d'ajouter un dispositif ( /dev/isgx
dans ce cas) à tout conteneur lancé par un moteur Docker ?
Edit :
Des progrès de mon côté jusqu'à présent :
Docker utilise containerd
& runc
pour créer une configuration de conteneurs avant son démarrage. Le fichier de configuration de Docker /etc/docker/daemon.json
a un champ runtimes
où l'on peut fournir des arguments arbitraires à runc
:
[...]
"runtimes": {
"runc": {
"path": "runc"
},
"custom": {
"path": "/usr/local/bin/my-runc-replacement",
"runtimeArgs": [
"--debug"
]
}
},
[...]
Malheureusement, il semble runc
ne consomme pas beaucoup d'arguments utiles pour mes moyens ( runc --help
y runc spec --help
<-- crée la configuration).
J'ai trouvé intéressant code source concernant DefaultSimpleDevices
y DefaultAllowedDevices
en runc
La base de code de l'entreprise. Le dernier commit de ce fichier dit 'Ne pas créer /dev/fuse par défaut', ce qui est prometteur, mais impliquerait de construire ma propre base de données. runc
. J'espérais une solution générique via une option de configuration.