Limitation du trafic des pods à l’aide des politiques réseau Kubernetes - 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.

Limitation du trafic des pods à l’aide des politiques réseau Kubernetes

Par défaut, Kubernetes n’impose aucune restriction concernant les adresses IP, les ports ou les connexions entre les pods d’un même cluster, ni entre vos pods et des ressources situées dans d’autres réseaux. Vous pouvez utiliser une politique réseau Kubernetes pour limiter le trafic réseau vers et depuis vos pods. Pour plus d’informations, consultez Politiques réseau dans la documentation Kubernetes.

Si votre cluster exécute une version 1.13 ou antérieure du plug-in Amazon VPC CNI pour Kubernetes, vous devez utiliser une solution tierce pour appliquer les politiques réseau Kubernetes. À partir de la version 1.14 ou ultérieure du plug-in, il est possible d’implémenter les politiques réseau directement, sans recourir à une solution tierce. Dans cette rubrique, vous apprendrez à configurer votre cluster Amazon EKS pour utiliser les politiques réseau Kubernetes sans module complémentaire tiers.

Les politiques réseau du plug-in Amazon VPC CNI pour Kubernetes sont prises en charge dans les configurations suivantes.

  • Version 1.14 ou ultérieure du plug-in Amazon VPC CNI installée sur votre cluster.

  • Cluster configuré pour les adresses IPv4 ou IPv6.

  • Vous pouvez utiliser les politiques réseau avec des groupes de sécurité pour les pods. Grâce aux stratégies réseau, vous pouvez contrôler toutes les communications au sein du cluster. Grâce aux groupes de sécurité pour pods, vous pouvez contrôler l’accès aux services AWS depuis les applications exécutées à l’intérieur d’un pod.

  • Vous pouvez utiliser les stratégies réseau avec mise en réseau personnalisée et délégation de préfixes.

Considérations

Architecture

  • Lorsque vous appliquez des politiques réseau du plug-in Amazon VPC CNI pour Kubernetes à votre cluster, ces politiques peuvent être appliquées uniquement aux nœuds Linux Amazon EC2. Il n’est pas possible d’appliquer ces politiques aux nœuds Fargate ni aux nœuds Windows.

  • Les politiques réseau ne s’appliquent qu’à une seule famille d’adresses IP, soit IPv4, soit IPv6, mais pas aux deux en même temps. Dans un cluster IPv4, le plug-in VPC CNI attribue des adresses IPv4 aux pods et applique les politiques IPv4 correspondantes. Dans un cluster IPv6, le plug-in VPC CNI attribue des adresses IPv6 aux pods et applique les politiques IPv6 correspondantes. Toute règle de politique réseau IPv4 appliquée à un cluster IPv6 est ignorée. Toute règle de politique réseau IPv6 appliquée à un cluster IPv4 est ignorée.

Politiques réseau

  • Les politiques réseau s’appliquent uniquement aux pods faisant partie d’un déploiement. Les pods autonomes qui n’ont pas de metadata.ownerReferences définies ne peuvent pas se voir appliquer de politique réseau.

  • Il est possible d’appliquer plusieurs politiques réseau à un même pod. Lorsque plusieurs politiques ciblent le même pod, toutes les politiques sont appliquées simultanément.

  • Le nombre maximal de combinaisons de ports et de protocoles pour une même plage d’adresses IP (CIDR) est de 24, toutes politiques réseau confondues. Les sélecteurs tels que namespaceSelector se traduisent par une ou plusieurs plages CIDR. Si plusieurs sélecteurs aboutissent à la même plage CIDR ou si une même plage CIDR directe est spécifiée plusieurs fois, dans une ou plusieurs politiques réseau, chacune de ces occurrences compte dans cette limite.

  • Pour tous les services Kubernetes, le port du service doit être identique au port du conteneur. Si vous utilisez des ports nommés, vous devez employer le même nom dans la spécification du service.

Migration

  • Si votre cluster utilise actuellement une solution tierce pour gérer les politiques réseau Kubernetes, vous pouvez réutiliser ces mêmes politiques avec le plug-in Amazon VPC CNI pour Kubernetes. Cependant, vous devez supprimer la solution existante afin d’éviter qu’elle ne gère les mêmes politiques en parallèle.

Avertissement

Il est recommandé, après avoir supprimé la solution de politique réseau, de remplacer tous les nœuds sur lesquels cette solution était appliquée. Cette mesure permet d’éviter que des règles de trafic résiduelles laissées par un pod de la solution, notamment si celui-ci s’arrête brusquement, ne restent actives sur les nœuds.

Installation

  • La fonctionnalité de stratégie réseau crée et nécessite une définition de ressource personnalisée (CRD) de PolicyEndpoint appelée policyendpoints.networking.k8s.aws. Les objets du PolicyEndpoint de la ressource personnalisée sont gérés par Amazon EKS. Vous ne devez ni modifier ni supprimer ces ressources.

  • Si vous exécutez des pods qui utilisent les informations d'identification IAM du rôle d'instance ou si vous vous connectez à l'IMDS EC2, veillez à vérifier les stratégies réseau susceptibles de bloquer l'accès à l'IMDS EC2. Vous devrez peut-être ajouter une stratégie réseau pour autoriser l'accès à l'IMDS EC2. Pour plus d'informations, consultez Métadonnées d'instance et données utilisateur dans le Guide de l'utilisateur Amazon EC2.

    Les pods qui utilisent des rôles IAM pour les comptes de service ou l’identité du pod EKS n’accèdent pas au service IMDS EC2.

  • Le plug-in Amazon VPC CNI pour Kubernetes n’applique pas les politiques réseau aux interfaces réseau supplémentaires pour chaque pod, mais uniquement à l’interface principale de chaque pod (eth0). Cela concerne les architectures suivantes :

    • IPv6 pods dont la variable ENABLE_V4_EGRESS est définie sur true. Cette variable permet à la fonctionnalité de sortie IPv4 de connecter les pods IPv6 à des points de terminaison IPv4, comme ceux situés en dehors du cluster. La fonctionnalité de sortie IPv4 fonctionne en créant une interface réseau supplémentaire avec une adresse IPv4 de boucle locale.

    • Lorsque vous utilisez des plugins réseau chaînés tels que Multus. Comme ces plug-ins ajoutent des interfaces réseau à chaque pod, les politiques réseau ne sont pas appliquées aux plug-ins réseau chaînés.