Pour installer le capteur Defender pour conteneurs, utilisez Helm.

Cet article explique comment installer et configurer le capteur Microsoft Defender pour conteneurs sur les clusters AKS, EKS et GKE à l’aide de Helm.

Defender pour les conteneurs prend en charge plusieurs modèles de déploiement pour installer le capteur, notamment l’attribution automatique et l’installation basée sur Helm. Le déploiement basé sur Helm offre un meilleur contrôle sur la gestion des versions des capteurs et le timing des mises à niveau, mais il vous incombe d’assumer certaines responsabilités opérationnelles. Lors de l’utilisation du déploiement basé sur Helm, considérez ce qui suit :

  • Mises à niveau des capteurs : à l’aide du déploiement basé sur Helm, vous gérez les mises à niveau des capteurs et le minutage de mise à niveau. L’approvisionnement automatique suit les planifications de déploiement gérées par Microsoft.

  • Flux d’installation automatique : lors du déploiement du capteur à l’aide de Helm, ignorez les invites d’installation et les recommandations automatiques dans le portail Azure pour éviter les conflits avec le déploiement existant.

Prerequisites

Avant d’installer le capteur à l’aide de Helm, assurez-vous que :

  • Vous implémentez toutes les exigences préalables pour le capteur Defender pour conteneurs, comme décrit dans les exigences réseau de capteurs Defender.

  • Defender pour conteneurs est activé dans l’abonnement cible ou le connecteur de sécurité :

  • Les composants suivants du plan Defender pour conteneurs sont activés :

    • Capteur Defender
    • Accès à l’API Kubernetes
  • Pour les environnements AWS et GCP : vérifiez que le capteur Defender pour Azure Arc avec approvisionnement automatique est désactivé.

    Si vous souhaitez conserver l’approvisionnement automatique activé pour d’autres clusters avec Arc dans le compte AWS ou le projet GCP, appliquez la ms_defender_e2e_discovery_exclude=true balise aux clusters dans lesquels vous envisagez de déployer le capteur à l’aide de Helm.

  • Votre environnement n'a pas d'affectations de stratégie en conflit empêchant le déploiement de la version en disponibilité générale du capteur.

    Passez en revue les affectations de stratégie qui utilisent l’ID de définition de stratégie suivant et supprimez les affectations en conflit :

    64def556-fbad-4622-930e-72d1d5589bf5

    Pour passer en revue les définitions de stratégie, accédez à Policy dans le portail Azure et recherchez l’ID de définition de stratégie.

Installer le graphique Helm

Defender pour les graphiques Helm de conteneurs sont publiés sur mcr.microsoft.com/azuredefender/microsoft-defender-for-containers.

Le graphique nécessite des valeurs d’identificateur de cluster sous global.cloudIdentifiers. Vous pouvez fournir ces valeurs inline avec --set, comme indiqué dans les exemples suivants, ou à l’aide d’un fichier de valeurs.

Pour installer la dernière version du chart, utilisez la commande d'installation de base de Helm. Fournissez les valeurs requises global.cloudIdentifiers à l’aide d’un fichier de valeurs ou inline avec --set, comme indiqué dans les exemples spécifiques à l’environnement :

helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers

Vous pouvez répertorier les versions publiées en exécutant la commande suivante :

curl https://mcr.microsoft.com/v2/azuredefender/microsoft-defender-for-containers/tags/list

Pour installer une version spécifique, incluez la balise de version :

helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers:<tag>

Pour inspecter les valeurs de graphique configurables, telles que les indicateurs de fonctionnalité ou les limites de ressources de pod, extrayez le graphique et examinez le values.yaml fichier :

helm pull oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers

Pour installer le capteur pour votre environnement :

Pour les clusters AKS standard, utilisez l’espace de noms mdc.

Pour les clusters automatiques AKS, utilisez le namespace kube-system.

Si votre cluster AKS dispose déjà d’un Defender existant pour le déploiement de conteneurs, désactivez le déploiement existant, comme décrit dans Configure Defender pour conteneurs pour Azure et supprimez les ressources restantes en exécutant les commandes suivantes :

kubectl delete crd/policies.defender.microsoft.com || true
kubectl delete crd/runtimepolicies.defender.microsoft.com || true
kubectl delete crd/securityartifactpolicies.defender.microsoft.com || true
kubectl delete ClusterRole defender-admission-controller-cluster-role || true
kubectl delete ClusterRole defender-admission-controller-resource-cluster-role || true
kubectl delete ClusterRoleBinding defender-admission-controller-cluster-role-binding || true
kubectl delete ClusterRoleBinding defender-admission-controller-cluster-resource-role-binding || true

Installez le capteur :

helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers \
    --create-namespace --namespace <namespace> \
    --set global.cloudIdentifiers.Azure.subscriptionId="<cluster-subscription-id>" \
    --set global.cloudIdentifiers.Azure.resourceGroupName="<cluster-resource-group>" \
    --set global.cloudIdentifiers.Azure.clusterName="<cluster-name>" \
    --set global.cloudIdentifiers.Azure.region="<cluster-region>"

Remplacez par <namespace> :

  • mdc pour les clusters AKS standard.
  • kube-system pour les clusters automatiques AKS.

Vérifier l’installation

Vérifiez que l’installation a réussi à l’aide de l’espace de noms que vous avez utilisé pendant l’installation.

helm list --namespace mdc

L’installation réussit si le STATUS champ s’affiche deployed.

Configurer des règles de sécurité pour le déploiement contrôlé

Remarque

Le déploiement contrôlé par Kubernetes est pris en charge sur les clusters AKS Automatique uniquement lorsque le capteur est installé en utilisant Helm dans l’espace de noms kube-system. Le déploiement du module complémentaire n’est pas pris en charge pour ce scénario.

Important

Lorsque vous créez des règles, l’abonnement sélectionné peut s’afficher sous la forme not supported for Gated deployment. Cet état se produit parce que vous avez installé les composants Defender pour conteneurs à l’aide de Helm plutôt que par le biais de l’installation automatique du tableau de bord.

Définissez des règles de sécurité pour contrôler ce que vous pouvez déployer dans vos clusters Kubernetes. Ces règles vous aident à bloquer ou à auditer des images conteneur en fonction des critères de sécurité, tels que les images avec trop de vulnérabilités.

  1. Connectez-vous au portail Azure.

  2. Accédez à Defender pour le cloud>Paramètres d’environnement.

  3. Sélectionnez Règles de sécurité.

  4. Sélectionnez Déploiement contrôlé>Évaluation des vulnérabilités.

  5. Sélectionnez une règle pour la modifier, ou sélectionnez + Ajouter une règle pour en créer une nouvelle.

Gérer les recommandations existantes

Important

Si vous installez le capteur à l'aide de Helm, n'utilisez pas de recommandations Defender for Cloud existantes pour installer le profil Defender ou l'extension Arc pour le même cluster. La correction de ces recommandations peut créer un déploiement en conflit.

Selon votre type de déploiement, les recommandations suivantes peuvent toujours apparaître dans Defender for Cloud :

Mettre à niveau un déploiement Helm existant

Avec le déploiement basé sur Helm, vous gérez les mises à niveau des capteurs. Defender pour Cloud ne les applique pas automatiquement.

Exécutez la commande suivante pour mettre à jour un déploiement Helm existant. Utilisez l’espace de noms que vous avez utilisé pendant l’installation.

helm upgrade defender-k8s \
    oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers \
    --namespace <namespace> \
    --reuse-values

Pour <namespace>, utilisez :

  • mdc pour les clusters AKS, EKS et GKE standard.
  • kube-system pour les clusters automatiques AKS.

Si la mise à niveau échoue en raison de conflits de ressources, ajoutez les options suivantes à la commande de mise à niveau :

--server-side=true --resolve-conflicts