Cet article répond à des questions fréquentes sur les nœuds d’informatique confidentielle basés sur Intel SGX sur Azure Kubernetes service (AKS). Si vous avez d’autres questions, envoyez un e-mail à acconaks@microsoft.com.
Produit
Les nœuds d’informatique confidentielle sur AKS peuvent-ils être utilisés en production ?
Oui, pour les nœuds d’enclave Intel SGX.
Puis-je activer les performances réseau accélérées avec des clusters AKS d’informatique confidentielle Azure ?
Oui, les nœuds de machine virtuelle DCSv3 prennent en charge la mise en réseau accélérée. En revanche, les machines virtuelles DCSv2 ne la prennent pas en charge.
Quelle version du pilote Intel SGX se trouve sur l’image AKS pour les nœuds confidentiels ?
Actuellement, les machines virtuelles DCSv2/DCSv3 d’informatique confidentielle Azure sont installées avec un pilote Intel SGX DCAP 1.33.2.
Puis-je injecter des scripts post-installation/personnaliser des pilotes sur les nœuds approvisionnés par AKS ?
Non. Les nœuds de traitement confidentiel basés sur le moteur AKS prennent en charge les nœuds de traitement confidentiel qui autorisent les installations personnalisées et qui ont un contrôle total sur votre plan de contrôle Kubernetes.
Puis-je exécuter des nœuds ACC avec d’autres références (SKU) AKS standard (créer un cluster de pools de nœuds hétérogènes) ?
Oui. Vous pouvez exécuter différents pools de nœuds dans le même cluster AKS, notamment des nœuds ACC. Pour cibler vos applications d’enclave sur un pool de nœuds spécifique, pensez à ajouter des sélecteurs de nœud ou à appliquer des limites EPC. Pour plus d’informations concernant le démarrage rapide sur des nœuds confidentiels, consultez cette rubrique.
Puis-je exécuter des nœuds et des conteneurs Windows avec ACC ?
Pas pour l'instant. Contactez l’équipe produit à l’adresse acconaks@microsoft.com si vous avez besoin de nœuds ou de conteneurs Windows.
Puis-je continuer à planifier et exécuter des conteneurs autres que d’enclave sur des nœuds d’informatique confidentielle ?
Oui. Les machines virtuelles sont également dotées d’une mémoire ordinaire capable d’exécuter des charges de travail de conteneur standard. Prenez en considération le modèle de sécurité et de menace de vos applications avant de choisir les modèles de déploiement.
Quelle référence (SKU) de machine virtuelle dois-je choisir pour les nœuds d’informatique confidentielle ?
Références SKU DCSv2/DCsv3. Plus d’informations sur DCSv2 et DCSv3 sont disponibles dans les régions prises en charge
Puis-je approvisionner AKS avec des pools de nœuds DCSv2 via le portail Azure ?
Oui. Azure CLI peut également être utilisé en guise d’alternative comme expliqué ici.
Quelles sont la version d’Ubuntu et la génération de machine virtuelle prises en charge ?
18.04 sur la génération 2.
Quelles sont les limitations actuelles connues du produit ?
- Prend en charge uniquement les nœuds de machines virtuelles de deuxième génération Ubuntu 18.04.
- Aucune prise en charge de nœuds ou conteneurs Windows.
- La mise à l’échelle automatique de pod horizontal basée sur la mémoire EPC n’est pas prise en charge. La mise à l’échelle basée sur la mémoire ordinaire et l’UC est prise en charge.
- Le service Dev Spaces sur AKS pour les applications confidentielles n’est pas pris en charge actuellement
Puis-je provisionner AKS avec des pools de nœuds DCSv2/DCSv3 dans le portail Azure ?
Oui. Azure CLI peut également être utilisé en guise d’alternative comme expliqué ici.
Développement et déploiement
Puis-je venir avec mes applications en conteneur existantes et les exécuter sur AKS avec l’informatique confidentielle Azure ?
Oui, vous pouvez apporter un logiciel de wrapper SGX dans une enclave Intel SGX. Pour plus d’informations sur les activateurs de plateforme, consultez la page sur les conteneurs confidentiels.
Dois-je utiliser une image de base Docker pour commencer à utiliser des applications d’enclave ?
Divers activateurs (éditeurs de logiciels indépendants et projets OSS) permettent d’activer des conteneurs confidentiels. Pour plus d’informations et pour obtenir des références individuelles à des implémentations, consultez la page relative aux conteneurs confidentiels.
Concepts de conteneur confidentiel
Qu’est-ce qu’une attestation et comment pouvons-nous délivrer une attestation d’applications s’exécutant dans des enclaves ?
Une attestation est un processus consistant à démontrer et à valider qu’un élément de logiciel a été correctement instancié sur la plateforme matérielle spécifique. Elle garantit également l’existence de preuves vérifiables garantissant qu’elle s’exécute dans une plateforme sécurisée et qu’elle n’a pas été falsifiée. Apprenez-en davantage sur la façon dont une attestation est délivrée pour des applications d’enclave.
Que se passe-t-il si la taille de mon conteneur est supérieure à la mémoire EPC disponible ?
La mémoire EPC s’applique à la partie de votre application qui est programmée pour s’exécuter dans l’enclave. La taille totale de votre conteneur n’est pas le bon indicateur pour comparer celui-ci avec la mémoire EPC maximale disponible. En fait, les machines DCSv2 avec SGX autorisent une mémoire de machine virtuelle maximale de 32 Go que votre partie non approuvée de l’application utiliserait. Cependant, si votre conteneur consomme plus que la mémoire EPC disponible, les performances de la partie du programme s’exécutant dans l’enclave peuvent être impactées.
Pour mieux gérer la mémoire EPC dans les nœuds Worker, envisagez de gérer des limites de mémoire EPC via Kubernetes. Suivez l’exemple ci-dessous à titre de référence.
Remarque
L’exemple suivant tire (pull) une image conteneur publique à partir de Docker Hub. Nous vous recommandons de configurer un secret d’extraction pour l’authentification à l’aide d’un compte Docker Hub au lieu de créer une demande de tirage anonyme. Pour une plus grande fiabilité lors de l’utilisation de contenu public, importez et gérez l’image dans un registre de conteneurs Azure privé. En savoir plus sur l’utilisation des images publiques.
apiVersion: batch/v1
kind: Job
metadata:
name: sgx-test
labels:
app: sgx-test
spec:
template:
metadata:
labels:
app: sgx-test
spec:
containers:
- name: sgxtest
image: oeciteam/sgx-test: 1.0
resources:
limits:
sgx.intel.com/sgx_epc_mem_in_MiB: 10 # This limit will automatically place the job into confidential computing node. Alternatively, you can target deployment to node pools
restartPolicy: Never
backoffLimit: 0
Que se passe-t-il si mon enclave consomme plus que la mémoire EPC disponible maximale ?
La mémoire EPC disponible totale est partagée entre les applications d’enclave dans les mêmes machines virtuelles ou nœuds Worker. Si votre application utilise plus de mémoire EPC que celle qui est disponible, ses performances peuvent en être impactées. Pour cette raison, nous vous recommandons de définir la tolérance par application dans votre fichier yaml de déploiement afin de mieux gérer la mémoire EPC disponible par nœud Worker, comme dans les exemples ci-dessus. Vous pouvez également augmenter les tailles de machine virtuelle du pool de nœuds Worker ou ajouter des nœuds.
Pourquoi ne puis-je pas effectuer des fourches () et exécutions pour exécuter plusieurs processus dans mon application d’enclave ?
À l’heure actuelle, les machines virtuelles de référence SKU DCsv2 pour le traitement confidentiel Azure prennent en charge un seul espace d’adressage pour le programme s’exécutant dans une enclave. Un processus unique est une limitation actuelle conçue autour de la haute sécurité. Toutefois, des activateurs de conteneurs confidentiels peuvent avoir d’autres implémentations pour surmonter cette limitation.
Est-ce que je dois monter les volumes de pilote dans mon fichier yaml de déploiement ?
Non. Le produit fournit l’extension ACC qui comprend le (confcom) pour vous aider à le faire. Explorez les détails du déploiement ici.
Pouvez-vous modifier la version actuelle du pilote Intel SGX DCAP sur AKS ?
Non. Pour effectuer des installations personnalisées, nous vous recommandons de choisir des déploiements de nœuds Worker d’informatique confidentielle de moteur AKS.
Est-ce que seules les images signées et approuvées sont chargées dans l’enclave pour le traitement confidentiel ?
Non en mode natif lors de l’initialisation de l’enclave, mais oui jusqu’à ce que la signature du processus d’attestation puisse être validée. Vous trouverez des références ici.
La signature de conteneurs est-elle possible pour assurer la protection de l’intégrité du code dans les conteneurs confidentiels ?
Les conteneurs confidentiels vous permettent de signer le code d’enclave, mais pas les conteneurs Docker eux-mêmes. Avec la signature du code d’enclave (qui est généralement votre code d’application de base en Java, Python, etc.), vous pouvez vérifier dans l’attestation les détails MRSIGNER du code d’enclave avant de pouvoir faire confiance au code et à l’environnement d’exécution dans le flux d’attestation.
Étapes suivantes
Pour plus d’informations sur les conteneurs confidentiels, consultez la page sur les conteneurs confidentiels.