Attribution de groupes de sécurité à des pods individuels - Amazon EKS

Aidez à améliorer cette page

Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.

Attribution de groupes de sécurité à des pods individuels

S’applique à : nœuds Linux avec instances Amazon EC2

S’applique à : sous-réseaux privés

Les groupes de sécurité pour les pods intègrent les groupes de sécurité Amazon EC2 aux pods Kubernetes. Vous pouvez utiliser les groupes de sécurité Amazon EC2 pour définir des règles qui autorisent le trafic réseau entrant et sortant vers et depuis les pods que vous déployez sur des nœuds fonctionnant sur de nombreux types d’instances Amazon EC2 et Fargate. Pour une explication détaillée de cette fonctionnalité, consultez l’article de blog Introducing security groups for Pods.

Compatibilité avec les fonctionnalités du module complémentaire plug-in Amazon VPC CNI pour Kubernetes

Vous pouvez utiliser les groupes de sécurité pour les pods avec les fonctionnalités suivantes :

Considérations

Avant de déployer des groupes de sécurité pour les pods, veuillez tenir compte des limitations et conditions suivantes :

  • Les groupes de sécurité pour les pods ne peuvent pas être utilisés avec les nœuds Windows.

  • Les groupes de sécurité pour les pods peuvent être utilisés avec des clusters configurés pour la famille IPv6 qui contiennent des nœuds Amazon EC2 à l’aide de la version 1.16.0 ou ultérieure du plug-in CNI Amazon VPC. Vous pouvez utiliser des groupes de sécurité pour les pods avec des clusters configurés pour la famille IPv6 qui contiennent uniquement des nœuds Fargate à l’aide de la version 1.7.7 ou ultérieure du plug-in CNI Amazon VPC. Pour plus d’informations, consultez Informations sur les adresses IPv6 pour les clusters, pods et services.

  • Les groupes de sécurité pour pods sont pris en charge par la plupart des familles d’instances Amazon EC2 basées sur Nitro, mais pas par toutes les générations d’une famille. Par exemple, les familles et générations d’instances m5, c5, r5, m6g, c6g et r6g sont prises en charge. Aucun type d'instance de la famille t n'est pris en charge. Pour obtenir la liste complète des types d’instances pris en charge, consultez le fichier limits.go sur GitHub. Vos nœuds doivent être l'un des types d'instance répertoriés qui ont IsTrunkingCompatible: true dans ce fichier.

  • Si vous utilisez conjointement un réseau personnalisé et des groupes de sécurité pour les pods, le groupe de sécurité spécifié par les groupes de sécurité pour les pods est utilisé à la place du groupe de sécurité spécifié dans ENIConfig.

  • Si vous utilisez la version 1.10.2 ou antérieure du plug-in CNI Amazon VPC et que vous incluez le paramètre terminationGracePeriodSeconds dans votre spécification de pod, la valeur de ce paramètre ne peut pas être zéro.

  • Si vous utilisez la version 1.10 ou antérieure du plug-in CNI Amazon VPC, ou la version 1.11 avec POD_SECURITY_GROUP_ENFORCING_MODE=strict, qui est le paramètre par défaut, les services Kubernetes de type NodePort et LoadBalancer utilisant des cibles d’instance avec une externalTrafficPolicy définie sur Local ne sont pas pris en charge avec les pods auxquels vous attribuez des groupes de sécurité. Pour plus d'informations sur l'utilisation d'un équilibreur de charge avec des cibles d'instance, consultez Acheminer le trafic TCP et UDP avec des Network Load Balancers.

  • Si vous utilisez la version 1.10 ou antérieure du plug-in CNI Amazon VPC ou la version 1.11 avec POD_SECURITY_GROUP_ENFORCING_MODE=strict, qui est le paramètre par défaut, le NAT source est désactivé pour le trafic sortant des pods auxquels des groupes de sécurité sont attribués, afin que les règles de groupe de sécurité sortantes soient appliquées. Pour accéder à Internet, les pods auxquels des groupes de sécurité sont attribués doivent être lancés sur des nœuds déployés dans un sous-réseau privé configuré avec une passerelle ou une instance NAT. Les pods avec des groupes de sécurité affectés déployés sur des sous-réseaux publics ne sont pas en mesure d'accéder à Internet.

    Si vous utilisez la version 1.11 ou ultérieure du plug-in avec POD_SECURITY_GROUP_ENFORCING_MODE=standard, le trafic des pods destiné à l’extérieur du VPC est traduit en adresse IP de l’interface réseau principale de l’instance. Pour ce trafic, les règles des groupes de sécurité de l’interface réseau principale sont utilisées, plutôt que celles des groupes de sécurité des pods.

  • Pour utiliser la politique réseau Calico avec des pods associés à des groupes de sécurité, vous devez utiliser la version 1.11.0 ou ultérieure du plug-in CNI Amazon VPC et définir POD_SECURITY_GROUP_ENFORCING_MODE=standard. Dans le cas contraire, le trafic entrant et sortant des pods associés à des groupes de sécurité n’est pas soumis à l’application de la politique réseau Calico et est limité à l’application du groupe de sécurité Amazon EC2 uniquement. Pour mettre à jour la version de votre plug-in CNI Amazon VPC, consultez Attribuer des adresses IP aux pods avec Amazon VPC CNI

  • Les pods s’exécutant sur des nœuds Amazon EC2 qui utilisent des groupes de sécurité dans des clusters utilisant NodeLocal DNSCache ne sont pris en charge qu’avec la version 1.11.0 ou ultérieure du plug-in CNI Amazon VPC et avec POD_SECURITY_GROUP_ENFORCING_MODE=standard. Pour mettre à jour la version de votre plug-in CNI Amazon VPC, consultez Attribuer des adresses IP aux pods avec Amazon VPC CNI

  • Les groupes de sécurité pour les pods peuvent entraîner une latence de start-up plus élevée pour les pods à forte rotation. Cela est dû à la limitation du débit dans le contrôleur de ressources.

  • La portée du groupe de sécurité EC2 se situe au niveau du pod. Pour plus d’informations, consultez Groupe de sécurité.

    Si vous définissez POD_SECURITY_GROUP_ENFORCING_MODE=standard et AWS_VPC_K8S_CNI_EXTERNALSNAT=false, le trafic destiné aux points de terminaison en dehors du VPC utilise les groupes de sécurité du nœud, et non ceux du pod.