Share via


Isolated Image Builds pour Azure VM Image Builder

Isolated Image Builds est une fonctionnalité d’Azure VM Image Builder (AIB). Elle transfère le processus principal de personnalisation/validation d’une image de machine virtuelle à partir d’une infrastructure de plateforme partagée vers des ressources Azure Container Instances (ACI) dédiées dans votre abonnement, fournissant une isolation du calcul et du réseau.

Avantages d’Isolated Image Builds

Isolated Image Builds permet une défense en profondeur en limitant l’accès réseau de votre machine virtuelle de build uniquement à votre abonnement. Isolated Image Builds fournit également une plus grande transparence en permettant à votre inspection du traitement effectué par AIB de personnaliser/valider l’image de votre machine virtuelle. En outre, Isolated Image Builds facilite la visualisation des journaux de build en direct. Plus précisément :

  1. Isolation de calcul : Isolated Image Builds effectue la majeure partie du traitement de génération d’images dans les ressources ACI de votre abonnement plutôt que dans les ressources de plateforme partagée d’AIB. ACI fournit une isolation d’hyperviseur pour chaque groupe de conteneurs afin de garantir que les conteneurs s’exécutent en isolation sans partager un noyau.

  2. Isolement réseau : Isolated Image Builds supprime toutes les communications WinRM/ssh réseau directes entre votre machine virtuelle de build et le service AIB.

    • Si vous approvisionnez un modèle AIB sans votre propre réseau virtuel, la ressource d’adresse IP publique n’est plus approvisionnée dans votre groupe de ressources intermédiaire au moment de la génération de l’image.
    • Si vous approvisionnez un modèle AIB avec un sous-réseau existant pour la machine virtuelle de build, un canal de communication basé sur Private Link n’est plus configuré entre vos ressources de plateforme principale de build et AIB. À la place, le canal de communication est configuré entre ACI et les ressources de machine virtuelle de build, qui résident toutes dans le groupe de ressources intermédiaire de votre abonnement.
    • À compter de la version 2024-02-01 de l’API, vous pouvez spécifier un deuxième sous-réseau pour le déploiement d’ACI en plus du sous-réseau pour la machine virtuelle de build. S’il est spécifié, AIB déploie ACI sur ce sous-réseau et il n’est pas nécessaire qu’AIB configure le canal de communication basé sur Private Link entre l’ACI et la machine virtuelle de build. Pour plus d’informations sur le deuxième sous-réseau, consultez la section ici.
  3. Transparence : AIB repose sur Packer de HashiCorp. Isolated Image Builds exécute Packer dans l’ACI de votre abonnement, ce qui vous permet d’inspecter la ressource ACI et ses conteneurs. De même, disposer de l’intégralité du pipeline de communication réseau dans votre abonnement vous permet d’inspecter toutes les ressources réseau, leurs paramètres et leurs allocations.

  4. Meilleure visualisation des journaux en direct : AIB écrit des journaux de personnalisation dans un compte de stockage dans le groupe de ressources intermédiaire de votre abonnement. Isolated Image Builds offre un autre moyen de suivre les mêmes journaux directement dans le portail Azure, ce qui peut être effectué en accédant au conteneur AIB dans la ressource ACI.

Topologies des réseaux

Isolated Image Builds déploie l’instance ACI et la machine virtuelle de build dans le groupe de ressources intermédiaire de votre abonnement. Pour qu’AIB personnalise/valide votre image, les instances de conteneur s’exécutant dans l’instance ACI doivent avoir un chemin réseau vers la machine virtuelle de build. En fonction de vos besoins et stratégies de mise en réseau personnalisés, vous pouvez configurer AIB pour utiliser différentes topologies réseau à cet effet :

N’apportez pas votre propre sous-réseau de machine virtuelle de build

  • Vous pouvez sélectionner cette topologie sans spécifier le champ vnetConfig dans le modèle d’image ou en spécifiant le champ, mais sans les sous-champs subnetId et containerInstanceSubnetId.
  • Dans ce cas, AIB déploie un réseau virtuel dans le groupe de ressources intermédiaire, ainsi que deux sous-réseaux et groupes de sécurité réseau (NSG). L’un des sous-réseaux est utilisé pour déployer l’instance ACI, tandis que l’autre sous-réseau est utilisé pour déployer la machine virtuelle de build. Les groupes de sécurité réseau sont configurés pour autoriser la communication entre les deux sous-réseaux.
  • AIB ne déploie pas de ressource IP publique ni de pipeline de communication basé sur une liaison privée dans ce cas.

Apportez votre propre sous-réseau de machine virtuelle de build, mais pas votre propre sous-réseau ACI

  • Vous pouvez sélectionner cette topologie en spécifiant le champ vnetConfig avec le sous-champ subnetId, mais pas le sous-champ containerInstanceSubnetId dans le modèle d’image.
  • Dans ce cas, AIB déploie un réseau virtuel temporaire dans le groupe de ressources intermédiaire, ainsi que deux sous-réseaux et groupes de sécurité réseau (NSG). L’un des sous-réseaux est utilisé pour déployer l’instance ACI, tandis que l’autre sous-réseau est utilisé pour déployer la ressource de point de terminaison privé. La machine virtuelle de build est déployée dans votre sous-réseau spécifié. Un pipeline de communication basé sur des liaisons privées constitué d’un point de terminaison privé, d’un service Private Link, d’Azure Load Balancer et d’une machine virtuelle proxy est également déployé dans le groupe de ressources intermédiaire pour faciliter la communication entre le sous-réseau ACI et votre sous-réseau de machine virtuelle de build.

Apportez votre propre sous-réseau de machine virtuelle build et votre propre sous-réseau ACI

  • Vous pouvez sélectionner cette topologie en spécifiant le champ vnetConfig ainsi que les sous-champs subnetId et containerInstanceSubnetId dans le modèle d’image. Cette option (et le sous-champ containerInstanceSubnetId) est disponible à compter de la version 2024-02-01 de l’API. Vous pouvez également mettre à jour vos modèles existants pour utiliser cette topologie.
  • Dans ce cas, AIB déploie la machine virtuelle de build sur le sous-réseau de machine virtuelle de build spécifié et l’instance ACI sur le sous-réseau ACI spécifié.
  • AIB ne déploie aucune des ressources réseau dans le groupe de ressources intermédiaire, notamment l’adresse IP publique, le réseau virtuel, les sous-réseaux, les groupes de sécurité réseau, le point de terminaison privé, le service Private Link, Azure Load Balancer et la machine virtuelle proxy. Vous pouvez utiliser cette topologie si vous avez des restrictions de quota ou des stratégies qui interdisent le déploiement de ces ressources.
  • Le sous-réseau ACI doit respecter certaines conditions pour permettre son utilisation avec Isolated Image Builds.

Vous pouvez voir des détails sur ces champs dans la référence de modèle. Les options de mise en réseau sont abordées en détail ici.

Compatibilité descendante

Isolated Image Builds est une modification au niveau de la plateforme qui n’affecte pas les interfaces AIB. Par conséquent, vos ressources de modèle d’image et de déclencheur existantes continuent de fonctionner et rien ne change dans la façon dont vous déployez les nouvelles ressources de ces types. Vous devez créer des modèles ou mettre à jour des modèles existants si vous souhaitez utiliser la topologie de réseau, ce qui vous permet d’apporter votre propre sous-réseau ACI.

Les builds de vos images sont automatiquement migrées vers Isolated Image Builds et aucune action n’est nécessaire pour vous inscrire. De même, les journaux de personnalisation restent disponibles dans le compte de stockage.

Selon la topologie de réseau spécifiée dans le modèle d’image, vous pouvez observer que quelques nouvelles ressources apparaissent temporairement dans le groupe de ressources intermédiaire (par exemple, ACI, réseau virtuel, groupe de sécurité réseau et point de terminaison privé), tandis que d’autres peuvent ne plus apparaître (par exemple, adresse IP publique). Comme précédemment, ces ressources temporaires existent uniquement pendant la build et AIB les supprime par la suite.

Important

Vérifiez que votre abonnement est inscrit pour Microsoft.ContainerInstance provider :

  • Azure CLI : az provider register -n Microsoft.ContainerInstance
  • PowerShell : Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

Après avoir inscrit votre abonnement, vérifiez qu’aucune stratégie Azure dans votre abonnement ne refuse le déploiement des ressources ACI. Les stratégies autorisant uniquement un ensemble restreint de types de ressources excluant ACI entraînent l’échec d’Isolated Image Builds.

Vérifiez que votre abonnement dispose également d’un quota de ressources suffisant pour le déploiement des ressources ACI.

Important

Selon la topologie de réseau spécifiée dans le modèle d’image, AIB peut avoir besoin de déployer des ressources liées à la mise en réseau temporaire dans le groupe de ressources intermédiaires de votre abonnement. Assurez-vous qu’aucune stratégie Azure ne refuse le déploiement de telles ressources (réseau virtuel avec des sous-réseaux, groupe de sécurité réseau, point de terminaison privé) dans le groupe de ressources.

Si vous avez des stratégies Azure qui appliquent des plans de protection DDoS à un réseau virtuel récemment créé, assouplissez la stratégie pour le groupe de ressources ou vérifiez que l’identité managée du modèle dispose des autorisations nécessaires pour rejoindre le plan. Vous pouvez également utiliser la topologie de réseau qui ne nécessite pas le déploiement d’un nouveau réseau virtuel par AIB.

Important

Veillez à suivre toutes les meilleures pratiques lors de l’utilisation d’AIB.

Remarque

AIB est en cours de déploiement de cette modification vers tous les emplacements et clients. Certains de ces détails (en particulier concernant le déploiement de nouvelles ressources liées à la mise en réseau) peuvent changer à mesure que le processus est affiné en fonction des données de télémétrie du service et des commentaires. Pour toute erreur, veuillez vous reporter au guide de résolution des problèmes.

Étapes suivantes