Partager via


Confidential Containers (préversion) sur Azure Kubernetes Service

Avec la croissance du développement d’applications natives Cloud, il devient de plus en plus nécessaire de protéger les charges de travail exécutées dans des environnements cloud. La conteneurisation de la charge de travail constitue un composant clé pour ce modèle de programmation. La protection du conteneur est ensuite primordiale pour une exécution confidentielle dans le cloud.

Confidential Containers sur Azure Kubernetes Service (AKS) permet l’isolation au niveau du conteneur dans vos charges de travail Kubernetes. Ils viennent s’ajouter à la suite Azure de produits d’informatique confidentielle et utilisent le chiffrement de mémoire AMD SEV-SNP pour protéger vos conteneurs au moment de l’exécution.

Confidential Containers est attrayant pour les scénarios de déploiement qui impliquent des données sensibles (par exemple, des données personnelles ou des données qui nécessitent une sécurité élevée pour la conformité réglementaire).

Qu’est-ce qui rend un conteneur confidentiel ?

Conformément aux directives définies par le groupe Confidential Computing Consortium, dont Microsoft est un membre fondateur, Confidential Containers doit répondre aux exigences suivantes :

  • Transparence : environnement de conteneur confidentiel dans lequel votre application sensible est partagée et dans lequel vous pouvez voir et vérifier qu’elle est sûre. Tous les composants de la base de calcul approuvée (TCB, Trusted Computing Base) doivent être open source.
  • Auditabilité : Vous avez la possibilité de vérifier et d’afficher la version de l’environnement CoCo qui est en cours d’utilisation, ainsi que le système d’exploitation invité Linux et tous les composants. Microsoft se connecte au système d’exploitation invité et à l’environnement de runtime de conteneur pour les vérifications par le biais de l’attestation. Il publie également un algorithme de hachage sécurisé (SHA, Secure Hash Algorithm) des builds du système d’exploitation invité pour générer une audibilité de chaîne et une histoire de contrôle.
  • Attestation complète : tout ce qui fait partie de l’environnement d’exécution de confiance (TEE, Trusted Execution Environment) doit être entièrement mesuré par le processeur avec la possibilité de vérifier à distance. Le rapport matériel du processeur AMD SEV-SNP doit refléter les couches de conteneurs et le hachage de configuration du runtime de conteneur via les revendications d’attestation. L’application peut récupérer le rapport matériel localement, y compris le rapport qui reflète l’image du système d’exploitation invité et le runtime de conteneur.
  • Intégrité du code : l’application du runtime est toujours disponible via des stratégies définies par le client pour les conteneurs et la configuration de conteneur, comme les stratégies immuables et la signature de conteneur.
  • Isolation de l’opérateur : conceptions de sécurité qui supposent des privilèges minimum et des protections d’isolation maximales contre toutes les parties non approuvées, y compris les administrateurs clients/locataires. Cela inclut le renforcement de l’accès existant du plan de contrôle Kubernetes (kubelet) aux pods confidentiels.

Cependant, avec ces fonctionnalités de confidentialité, le produit doit rester facile d’utilisation : il prend en charge tous les conteneurs Linux non modifiés avec une haute conformité des fonctionnalités Kubernetes. En outre, il prend en charge les pools de nœuds hétérogènes (GPU, nœuds à usage général) dans un seul cluster afin d’optimiser les coûts.

Comment est formé Confidential Containers sur AKS ?

Conformément à l’engagement de Microsoft envers la communauté open source, la pile sous-jacente pour Confidential Containers utilise l’agent Kata CoCo comme agent s’exécutant dans le nœud qui héberge le pod qui exécute la charge de travail confidentielle. Avec de nombreuses technologies TEE nécessitant une limite entre l’hôte et l’invité, les conteneurs Kata sont la base du travail initial de Kata CoCo. Microsoft a également contribué à la communauté Kata Coco pour alimenter les conteneurs s’exécutant à l’intérieur d’une machine virtuelle utilitaire confidentielle.

Le conteneur confidentiel Kata réside dans l’hôte de conteneur Azure Linux AKS. Azure Linux et le Cloud Hypervisor VMM (Virtual Machine Monitor, moniteur de machines virtuelles) est le logiciel d’espace utilisateur / destiné à l’utilisateur final qui est utilisé pour créer et gérer la durée de vie des machines virtuelles.

Isolation au niveau du conteneur dans AKS

Par défaut, toutes les charges de travail AKS partagent les mêmes noyau et administrateur de cluster. Avec la préversion du sandboxing de pods sur AKS, l’isolation a augmenté d’un niveau supérieur avec la possibilité de fournir l’isolation du noyau pour les charges de travail sur le même nœud AKS. Vous pouvez lire plus d’informations sur la fonctionnalité ici. Confidential Containers constitue la prochaine étape de cette isolation et utilise les fonctionnalités de chiffrement de mémoire des tailles de machines virtuelles AMD SEV-SNP sous-jacentes. Ces machines virtuelles sont les tailles DCa_cc et ECa_cc avec la possibilité de faire apparaître la racine de confiance du matériel aux pods déployés sur celui-ci.

Diagramme de diverses couches de l’architecture formant Confidential Containers.

Bien démarrer

Pour la prise en main et découvrir plus d’informations sur les scénarios pris en charge, consultez notre documentation AKS ici.

Étape suivante

Déployez un conteneur confidentiel sur AKS.